Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/CircleTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/CircleTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/CircleTest.java	(revision 38288)
@@ -0,0 +1,82 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.primitive;
+
+import junit.framework.Assert;
+
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class CircleTest extends AbstractLibraryAutoInitTestCase {
+	private GeometryManager manager;
+	
+	final static private Logger logger = LoggerFactory.getLogger("org.gvsig");
+
+	protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();		
+	}
+	
+	public void testCreateCircle2D() throws InstantiationException, IllegalAccessException, CreateGeometryException{
+		Circle circle = (Circle)manager.create(TYPES.CIRCLE, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX = new GeneralPathX();
+		Exception e = null;
+		try{
+			circle.setGeneralPath(generalPathX);
+		}catch (UnsupportedOperationException e1){
+			e = e1;
+		}
+		Assert.assertTrue(e instanceof UnsupportedOperationException);
+		
+		Point center = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		center.setCoordinateAt(0, 0);
+		center.setCoordinateAt(1, 0);
+		
+		Point radious = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		radious.setCoordinateAt(0, 1);
+		radious.setCoordinateAt(1, 1);
+				
+		circle.setPoints(center, radious);
+		
+		assertEquals(0.0, circle.getCenter().getX(), 0);
+		assertEquals(0.0, circle.getCenter().getY(), 0);
+		assertEquals(Math.sqrt(2), circle.getRadious(), 0);
+		
+	}	
+}
+
+
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/CircleTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/CurveTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/CurveTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/CurveTest.java	(revision 38288)
@@ -0,0 +1,132 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.primitive;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.PathIterator;
+
+import junit.framework.Assert;
+
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class CurveTest extends AbstractLibraryAutoInitTestCase {
+	private GeometryManager manager;
+	
+	final static private Logger logger = LoggerFactory.getLogger("org.gvsig");
+
+	protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();		
+	}
+	
+	public void testCreateCurve2D() throws InstantiationException, IllegalAccessException, CreateGeometryException{
+		Curve curve = (Curve)manager.create(TYPES.CURVE, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX = new GeneralPathX();
+		generalPathX.moveTo(0, 0);
+		generalPathX.lineTo(1, 1);
+		generalPathX.lineTo(2, 1);		
+		curve.setGeneralPath(generalPathX);	
+		
+		Assert.assertEquals(0.0, curve.getCoordinateAt(0,0),0);
+		Assert.assertEquals(0.0, curve.getCoordinateAt(0,1),0);
+		Assert.assertEquals(1.0, curve.getCoordinateAt(1,0),0);
+		Assert.assertEquals(1.0, curve.getCoordinateAt(1,1),0);
+		Assert.assertEquals(2.0, curve.getCoordinateAt(2,0),0);
+		Assert.assertEquals(1.0, curve.getCoordinateAt(2,1),0);
+		
+		AffineTransform at = new AffineTransform();
+	    at.translate(1, 1);
+		curve.transform(at);
+		
+		Assert.assertEquals(1.0, curve.getCoordinateAt(0,0),0);
+		Assert.assertEquals(1.0, curve.getCoordinateAt(0,1),0);
+		Assert.assertEquals(2.0, curve.getCoordinateAt(1,0),0);
+		Assert.assertEquals(2.0, curve.getCoordinateAt(1,1),0);
+		Assert.assertEquals(3.0, curve.getCoordinateAt(2,0),0);
+		Assert.assertEquals(2.0, curve.getCoordinateAt(2,1),0);
+				
+		PathIterator iterator = curve.getPathIterator(at);
+		double[] coords = new double[3];
+		int i=0;
+		while (!iterator.isDone()){
+			i++;			
+			iterator.currentSegment(coords);		
+			iterator.next();
+		}
+		Assert.assertEquals(3, i);		
+	}
+	
+	public void testCreateCurve2DZ() throws InstantiationException, IllegalAccessException, CreateGeometryException{
+		Curve curve = (Curve)manager.create(TYPES.CURVE, SUBTYPES.GEOM3D);
+		GeneralPathX generalPathX = new GeneralPathX();
+		generalPathX.moveTo(0, 0);
+		generalPathX.lineTo(1, 1);
+		generalPathX.lineTo(2, 1);
+		curve.setGeneralPath(generalPathX);	
+		
+		Assert.assertEquals(0.0, curve.getCoordinateAt(0,0),0);
+		Assert.assertEquals(0.0, curve.getCoordinateAt(0,1),0);
+		Assert.assertEquals(1.0, curve.getCoordinateAt(1,0),0);
+		Assert.assertEquals(1.0, curve.getCoordinateAt(1,1),0);
+		Assert.assertEquals(2.0, curve.getCoordinateAt(2,0),0);
+		Assert.assertEquals(1.0, curve.getCoordinateAt(2,1),0);
+		
+		AffineTransform at = new AffineTransform();
+	    at.translate(1, 1);
+		curve.transform(at);
+		
+		Assert.assertEquals(1.0, curve.getCoordinateAt(0,0),0);
+		Assert.assertEquals(1.0, curve.getCoordinateAt(0,1),0);
+		Assert.assertEquals(2.0, curve.getCoordinateAt(1,0),0);
+		Assert.assertEquals(2.0, curve.getCoordinateAt(1,1),0);
+		Assert.assertEquals(3.0, curve.getCoordinateAt(2,0),0);
+		Assert.assertEquals(2.0, curve.getCoordinateAt(2,1),0);
+				
+		PathIterator iterator = curve.getPathIterator(at);
+		double[] coords = new double[2];
+		int i=0;
+		while (!iterator.isDone()){
+			i++;
+			iterator.currentSegment(coords);
+			iterator.next();
+		}
+		Assert.assertEquals(3, i);		
+
+	}
+}
+
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/CurveTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/ArcTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/ArcTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/ArcTest.java	(revision 38288)
@@ -0,0 +1,88 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.primitive;
+
+import junit.framework.Assert;
+
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class ArcTest extends AbstractLibraryAutoInitTestCase {
+	private GeometryManager manager;
+	
+	final static private Logger logger = LoggerFactory.getLogger("org.gvsig");
+
+	protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();		
+	}
+	
+	public void testCreateArc2D() throws InstantiationException, IllegalAccessException, CreateGeometryException{
+		Arc arc = (Arc)manager.create(TYPES.ARC, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX = new GeneralPathX();
+		Exception e = null;
+		try{
+			arc.setGeneralPath(generalPathX);
+		}catch (UnsupportedOperationException e1){
+			e = e1;
+		}
+		Assert.assertTrue(e instanceof UnsupportedOperationException);
+		
+		Point center = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		center.setCoordinateAt(0, 0);
+		center.setCoordinateAt(1, 0);
+		
+		Point initPoint = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		initPoint.setCoordinateAt(0, 1);
+		initPoint.setCoordinateAt(1, 1);
+		
+		Point endPoint = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		endPoint.setCoordinateAt(0, 0);
+		endPoint.setCoordinateAt(1, 1);
+		
+		arc.setPoints(center, initPoint, endPoint);
+		
+		assertEquals(0.5, arc.getCenterPoint().getX(), 0);
+		assertEquals(0.5, arc.getCenterPoint().getX(), 0);
+		assertEquals(1.0, arc.getInitPoint().getX(), 0);
+		assertEquals(1.0, arc.getInitPoint().getX(), 0);
+		assertEquals(0, arc.getEndPoint().getX(), 0);
+		assertEquals(0, arc.getEndPoint().getX(), 0);
+	}	
+}
+
+
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/ArcTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/SurfaceTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/SurfaceTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/SurfaceTest.java	(revision 38288)
@@ -0,0 +1,92 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.primitive;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.PathIterator;
+
+import junit.framework.Assert;
+
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class SurfaceTest extends AbstractLibraryAutoInitTestCase {
+	private GeometryManager manager;
+	
+	protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();		
+	}
+	
+	public void testCreateSurface2D() throws InstantiationException, IllegalAccessException, CreateGeometryException{
+		Surface surface = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX = new GeneralPathX();
+		generalPathX.moveTo(0, 0);
+		generalPathX.lineTo(1, 1);
+		generalPathX.lineTo(2, 1);
+		surface.setGeneralPath(generalPathX);	
+		
+		Assert.assertEquals(0.0, surface.getCoordinateAt(0,0),0);
+		Assert.assertEquals(0.0, surface.getCoordinateAt(0,1),0);
+		Assert.assertEquals(1.0, surface.getCoordinateAt(1,0),0);
+		Assert.assertEquals(1.0, surface.getCoordinateAt(1,1),0);
+		Assert.assertEquals(2.0, surface.getCoordinateAt(2,0),0);
+		Assert.assertEquals(1.0, surface.getCoordinateAt(2,1),0);
+		
+		AffineTransform at = new AffineTransform();
+	    at.translate(1, 1);
+	    surface.transform(at);
+		
+		Assert.assertEquals(1.0, surface.getCoordinateAt(0,0),0);
+		Assert.assertEquals(1.0, surface.getCoordinateAt(0,1),0);
+		Assert.assertEquals(2.0, surface.getCoordinateAt(1,0),0);
+		Assert.assertEquals(2.0, surface.getCoordinateAt(1,1),0);
+		Assert.assertEquals(3.0, surface.getCoordinateAt(2,0),0);
+		Assert.assertEquals(2.0, surface.getCoordinateAt(2,1),0);
+				
+		PathIterator iterator = surface.getPathIterator(at);
+		double[] coords = new double[2];
+		int i=0;
+		while (!iterator.isDone()){
+			i++;
+			iterator.currentSegment(coords);		
+			iterator.next();
+		}
+		Assert.assertEquals(3, i);		
+
+	}
+}
+
+
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/SurfaceTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/PointTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/PointTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/PointTest.java	(revision 38288)
@@ -0,0 +1,144 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.primitive;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.PathIterator;
+
+import junit.framework.Assert;
+
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+import org.gvsig.tools.locator.LocatorException;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.exception.PersistenceClassNotRegistered;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+import org.gvsig.tools.persistence.exception.PersistenceTypeNotSupportedException;
+import org.gvsig.tools.persistence.exception.PersistenceValidateExceptions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class PointTest extends AbstractLibraryAutoInitTestCase {
+	private GeometryManager manager;
+	
+	final static private Logger logger = LoggerFactory.getLogger("org.gvsig");
+
+
+	protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();
+		
+	}
+	
+	public void testCreatePoint2D() throws InstantiationException, IllegalAccessException, CreateGeometryException{
+		Point point = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		point.setCoordinateAt(0, 1.0);
+		point.setCoordinateAt(1, 2.0);
+		
+		AffineTransform at = new AffineTransform();
+	    at.translate(1, 1);
+		point.transform(at);
+		
+		Assert.assertEquals(2.0, point.getCoordinateAt(0),0);
+		Assert.assertEquals(3.0, point.getCoordinateAt(1),0);
+		
+		PathIterator iterator = point.getPathIterator(at);
+		double[] coords = new double[2];
+		int i=0;
+		while (!iterator.isDone()){
+			i++;
+			iterator.next();
+			iterator.currentSegment(coords);			
+		}
+		Assert.assertEquals(1, i);
+		Assert.assertEquals(3.0, coords[0], 0);
+		Assert.assertEquals(4.0, coords[1] ,0);
+	}
+	
+	public void testPersistencePoint2D() throws CreateGeometryException, PersistenceTypeNotSupportedException, PersistenceClassNotRegistered, PersistenceException, PersistenceValidateExceptions, LocatorException{
+		Point point1 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		point1.setCoordinateAt(0, 1.0);
+		point1.setCoordinateAt(1, 2.0);
+		
+		PersistentState persistentState = ToolsLocator.getPersistenceManager().getState(point1);
+		Point point2 = (Point) ToolsLocator.getPersistenceManager().create(persistentState);
+		
+		Assert.assertEquals(point1.getX(), point2.getX(), 0);
+		Assert.assertEquals(point1.getX(), point2.getX(), 0);
+	}
+	
+	public void testCreatePoint2DZ() throws InstantiationException, IllegalAccessException, CreateGeometryException{
+		Point point = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM3D);
+		point.setCoordinateAt(0, 1.0);
+		point.setCoordinateAt(1, 2.0);
+		point.setCoordinateAt(2, 3.0);
+		
+		AffineTransform at = new AffineTransform();
+	    at.translate(1, 1);
+		point.transform(at);
+		
+		Assert.assertEquals(2.0, point.getCoordinateAt(0),0);
+		Assert.assertEquals(3.0, point.getCoordinateAt(1),0);
+		Assert.assertEquals(3.0, point.getCoordinateAt(2),0);
+		
+		PathIterator iterator = point.getPathIterator(at);
+		double[] coords = new double[2];
+		int i=0;
+		while (!iterator.isDone()){
+			i++;
+			iterator.next();
+			iterator.currentSegment(coords);			
+		}
+		Assert.assertEquals(1, i);
+		Assert.assertEquals(3.0, coords[0], 0);
+		Assert.assertEquals(4.0, coords[1] ,0);
+	}
+	
+	public void testPersistencePoint2DZ() throws CreateGeometryException, PersistenceTypeNotSupportedException, PersistenceClassNotRegistered, PersistenceException, PersistenceValidateExceptions, LocatorException{
+		Point point1 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM3D);
+		point1.setCoordinateAt(0, 1.0);
+		point1.setCoordinateAt(1, 2.0);
+		point1.setCoordinateAt(2, 3.0);
+		
+		PersistentState persistentState = ToolsLocator.getPersistenceManager().getState(point1);
+		Point point2 = (Point) ToolsLocator.getPersistenceManager().create(persistentState);
+		
+		Assert.assertEquals(point1.getX(), point2.getX(), 0);
+		Assert.assertEquals(point1.getX(), point2.getX(), 0);
+		Assert.assertEquals(point1.getCoordinateAt(2), point2.getCoordinateAt(2), 0);
+	}
+
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/PointTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/SplineTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/SplineTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/SplineTest.java	(revision 38288)
@@ -0,0 +1,67 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.primitive;
+
+import junit.framework.Assert;
+
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class SplineTest extends AbstractLibraryAutoInitTestCase {
+	private GeometryManager manager;
+	
+	protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();		
+	}
+	
+	public void testCreateSpline2D() throws InstantiationException, IllegalAccessException, CreateGeometryException{
+		Point point1 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		point1.setCoordinateAt(0, 1.0);
+		point1.setCoordinateAt(1, 2.0);
+		
+		Point point2 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		point2.setCoordinateAt(0, 4.0);
+		point2.setCoordinateAt(1, 5.0);
+	
+		Spline spline = (Spline)manager.create(TYPES.SPLINE, SUBTYPES.GEOM2D);
+		spline.addVertex(point1);
+		spline.addVertex(point2);
+		
+		Assert.assertEquals(1.0, spline.getCoordinateAt(0, 0), 0);
+		Assert.assertEquals(2.0, spline.getCoordinateAt(0, 1), 0);
+		
+	}
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/SplineTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/EllipticArcTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/EllipticArcTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/EllipticArcTest.java	(revision 38288)
@@ -0,0 +1,91 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.primitive;
+
+import junit.framework.Assert;
+
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class EllipticArcTest extends AbstractLibraryAutoInitTestCase {
+	private GeometryManager manager;
+	
+	final static private Logger logger = LoggerFactory.getLogger("org.gvsig");
+
+	protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();		
+	}
+	
+	public void testEllipticArc2D() throws InstantiationException, IllegalAccessException, CreateGeometryException{
+		EllipticArc ellipticArc = (EllipticArc)manager.create(TYPES.ELLIPTICARC, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX = new GeneralPathX();
+		Exception e = null;
+		try{
+			ellipticArc.setGeneralPath(generalPathX);
+		}catch (UnsupportedOperationException e1){
+			e = e1;
+		}
+		Assert.assertTrue(e instanceof UnsupportedOperationException);
+		
+		Point axis1Start = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		axis1Start.setCoordinateAt(0, 0);
+		axis1Start.setCoordinateAt(1, 0);
+		
+		Point axix1End = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		axix1End.setCoordinateAt(0, 1);
+		axix1End.setCoordinateAt(1, 1);
+		
+		double axis2Dist = 1;
+		double angSt = 1;
+		double angExt = 1;
+		
+		ellipticArc.setPoints(axis1Start, axix1End, axis2Dist, angSt, angExt);
+		
+		assertEquals(0, ellipticArc.getAxis1Start().getX(), 0);
+		assertEquals(0, ellipticArc.getAxis1Start().getY(), 0);
+		assertEquals(1, ellipticArc.getAxis1End().getX(), 0);
+		assertEquals(1, ellipticArc.getAxis1End().getY(), 0);
+		assertEquals(1, ellipticArc.getAxis2Dist(), axis2Dist);
+		assertEquals(1, ellipticArc.getAngSt(), angSt);
+		assertEquals(1, ellipticArc.getAngExt(), angExt);
+	}	
+}
+
+
+
+
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/EllipticArcTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/EllipseTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/EllipseTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/EllipseTest.java	(revision 38288)
@@ -0,0 +1,86 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.primitive;
+
+import junit.framework.Assert;
+
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class EllipseTest extends AbstractLibraryAutoInitTestCase {
+	private GeometryManager manager;
+	
+	final static private Logger logger = LoggerFactory.getLogger("org.gvsig");
+
+	protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();		
+	}
+	
+	public void testEllipse2D() throws InstantiationException, IllegalAccessException, CreateGeometryException{
+		Ellipse ellipse = (Ellipse)manager.create(TYPES.ELLIPSE, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX = new GeneralPathX();
+		Exception e = null;
+		try{
+			ellipse.setGeneralPath(generalPathX);
+		}catch (UnsupportedOperationException e1){
+			e = e1;
+		}
+		Assert.assertTrue(e instanceof UnsupportedOperationException);
+		
+		Point initPoint = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		initPoint.setCoordinateAt(0, 0);
+		initPoint.setCoordinateAt(1, 0);
+		
+		Point endPoint = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		endPoint.setCoordinateAt(0, 1);
+		endPoint.setCoordinateAt(1, 1);
+		
+		double axisLength = 1;
+		
+		ellipse.setPoints(initPoint, endPoint, axisLength);
+		
+		assertEquals(0, ellipse.getAxis1Start().getX(), 0);
+		assertEquals(0, ellipse.getAxis1Start().getY(), 0);
+		assertEquals(1, ellipse.getAxis1End().getX(), 0);
+		assertEquals(1, ellipse.getAxis1End().getY(), 0);
+		assertEquals(1, ellipse.getAxis2Dist(), axisLength);
+	;
+	}	
+}
+
+
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/EllipseTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/EnvelopeTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/EnvelopeTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/EnvelopeTest.java	(revision 38288)
@@ -0,0 +1,182 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA  02110-1301, USA.
+*
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+
+package org.gvsig.fmap.geom.primitive;
+
+import junit.framework.Assert;
+
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.exception.CreateEnvelopeException;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+import org.gvsig.tools.locator.LocatorException;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.exception.PersistenceClassNotRegistered;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+import org.gvsig.tools.persistence.exception.PersistenceTypeNotSupportedException;
+import org.gvsig.tools.persistence.exception.PersistenceValidateExceptions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class EnvelopeTest extends AbstractLibraryAutoInitTestCase {
+	private GeometryManager manager;
+
+	final static private Logger logger = LoggerFactory.getLogger("org.gvsig");
+
+	protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();		
+	}
+
+	public void testEnvelope2D() throws InstantiationException,
+			IllegalAccessException, CreateEnvelopeException, CreateGeometryException {
+
+		// Create
+		Envelope env = createEnvelope2D(0, 1, 2, 3);
+		checkEnvelope2D(env, 0, 1, 2, 3, "Create");
+
+		Envelope env2 = createEnvelope2D(1, 2, 3, 4);
+		checkEnvelope2D(env2, 1, 2, 3, 4, "Create 2");
+
+		// Add
+		env.add(env2);
+		checkEnvelope2D(env, 0, 1, 3, 4, "Add");
+
+		// Contains
+		assertTrue("Contains", env.contains(env2));
+		env2 = createEnvelope2D(1, 1, 2, 2);
+		assertTrue("Contains 2", env.contains(env2));
+		env2 = createEnvelope2D(1, 1, 6, 6);
+		assertFalse("Contains 3", env.contains(env2));
+		env2 = createEnvelope2D(-1, -1, -6, -6);
+		assertFalse("Contains 4", env.contains(env2));
+
+		// Intersets
+		env2 = createEnvelope2D(1, 1, 2, 2);
+		assertTrue("Intersets", env.intersects(env2));
+		env2 = createEnvelope2D(-1, -1, 2, 2);
+		assertTrue("Intersets 2", env.intersects(env2));
+		env2 = createEnvelope2D(1, 1, 6, 6);
+		assertTrue("Intersets 3", env.intersects(env2));
+		env2 = createEnvelope2D(-5, -5, 6, 6);
+		assertTrue("Intersets 3", env.intersects(env2));
+		env2 = createEnvelope2D(-1, -1, -6, -6);
+		assertFalse("Intersets 4", env.intersects(env2));
+		env2 = createEnvelope2D(5, 5, 9, 9);
+		assertFalse("Intersets 4", env.intersects(env2));
+	}
+
+	private Envelope createEnvelope2D(double minx, double miny, double maxx,
+			double maxy) throws InstantiationException, IllegalAccessException, CreateEnvelopeException, CreateGeometryException {
+		Envelope envelope = manager.createEnvelope(SUBTYPES.GEOM2D);
+		Point min = (Point) manager.create(TYPES.POINT,SUBTYPES.GEOM2D);
+		Point max = (Point) manager.create(TYPES.POINT,SUBTYPES.GEOM2D);
+		min.setX(minx);
+		min.setY(miny);
+
+		max.setX(maxx);
+		max.setY(maxy);
+		envelope.setLowerCorner(min);
+		envelope.setUpperCorner(max);
+
+		return envelope;
+	}
+
+	private void checkEnvelope2D(Envelope env, double minx, double miny,
+			double maxx, double maxy, String info) {
+
+		Assert.assertTrue(info + ": minx : expected " + minx + " but has "
+				+ env.getMinimum(0), env.getMinimum(0) - minx < 0.000000001);
+		Assert.assertTrue(info + ": miny : expected " + miny + " but has "
+				+ env.getMinimum(1), env.getMinimum(1) - miny < 0.000000001);
+		Assert.assertTrue(info + ": maxx : expected " + maxx + " but has "
+				+ env.getMaximum(0), env.getMaximum(0) - maxx < 0.000000001);
+		Assert.assertTrue(info + ": maxy : expected " + maxy + " but has "
+				+ env.getMaximum(1), env.getMaximum(1) - maxy < 0.000000001);
+
+		Assert.assertTrue(info + ": lower conrner x : expected " + minx
+				+ "but has " + env.getLowerCorner().getX(),
+				env.getLowerCorner().getX() - minx < 0.000000001);
+		Assert.assertTrue(info + ": lower conrner y : expected " + miny
+				+ "but has " + env.getLowerCorner().getY(),
+				env.getLowerCorner().getY() - miny < 0.000000001);
+		Assert.assertTrue(info + ": upper conrner x : expected " + maxx
+				+ "but has " + env.getUpperCorner().getX(),
+				env.getUpperCorner().getX() - maxx < 0.000000001);
+		Assert.assertTrue(info + ": upper conrner y : expected " + maxy
+				+ "but has " + env.getUpperCorner().getY(),
+				env.getUpperCorner().getY() - maxy < 0.000000001);
+
+		double lengthx = 0, lengthy = 0;
+		double midx = 0, midy = 0;
+		try {
+			lengthx = maxx - minx;
+			midx = ( lengthx/ 2) + minx;
+		} catch (Exception e) {
+			// Nonthing to do
+		}
+		try {
+			lengthy = maxy - miny;
+			midy = (lengthy / 2) + miny;
+		} catch (Exception e) {
+			// Nonthing to do
+		}
+
+		Assert.assertTrue(info + ": center x : expected " + midx + "but has "
+				+ env.getCenter(0),
+				env.getCenter(0) - midx < 0.000000001);
+		Assert.assertTrue(info + ": center y : expected " + midy + "but has "
+				+ env.getCenter(1), env.getCenter(1) - midy < 0.000000001);
+
+		Assert.assertTrue(info + ": length x : expected " + lengthx
+				+ "but has " + env.getLength(0),
+				env.getLength(0) - lengthx < 0.000000001);
+		Assert.assertTrue(info + ": length y : expected " + lengthy
+				+ "but has " + env.getLength(1),
+				env.getLength(1) - lengthy < 0.000000001);
+	}	
+	
+	public void testPersistenceEnvelope2D() throws CreateGeometryException, CreateEnvelopeException, InstantiationException, IllegalAccessException, PersistenceTypeNotSupportedException, PersistenceClassNotRegistered, PersistenceException, PersistenceValidateExceptions, LocatorException{
+		Envelope envelope1 = createEnvelope2D(0, 1, 2, 3);
+		
+		PersistentState persistentState = ToolsLocator.getPersistenceManager().getState(envelope1);
+		Envelope envelope2 = (Envelope) ToolsLocator.getPersistenceManager().create(persistentState);
+		
+		Assert.assertEquals(envelope1.getLowerCorner().getX(), envelope2.getLowerCorner().getX(), 0);
+		Assert.assertEquals(envelope1.getLowerCorner().getY(), envelope2.getLowerCorner().getY(), 0);
+		Assert.assertEquals(envelope1.getUpperCorner().getX(), envelope2.getUpperCorner().getX(), 0);
+		Assert.assertEquals(envelope1.getUpperCorner().getY(), envelope2.getUpperCorner().getY(), 0);
+	}
+}	
+
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/primitive/EnvelopeTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/DummyPoint2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/DummyPoint2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/DummyPoint2D.java	(revision 38288)
@@ -0,0 +1,49 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2008 {{Company}}   {{Task}}
+*/
+ 
+package org.gvsig.fmap.geom;
+
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.impl.Point2D;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+
+public class DummyPoint2D extends Point2D implements Point {
+
+	/**
+	 * @param geometryType
+	 */
+	public DummyPoint2D(GeometryType geometryType) {
+		super(geometryType);
+		// TODO Auto-generated constructor stub
+	}
+
+	private static final long serialVersionUID = 4449552637882072964L;
+
+	
+
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/tojts/toJTSTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/tojts/toJTSTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/tojts/toJTSTest.java	(revision 38288)
@@ -0,0 +1,214 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.operation.tojts;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.aggregate.MultiCurve;
+import org.gvsig.fmap.geom.aggregate.MultiPoint;
+import org.gvsig.fmap.geom.aggregate.MultiSurface;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class toJTSTest extends AbstractLibraryAutoInitTestCase {
+	final static private Logger logger = LoggerFactory.getLogger("org.gvsig");
+	private GeometryManager manager;
+
+    protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();
+		manager.registerGeometryOperation(ToJTS.NAME, new Point2DToJTS(), TYPES.POINT, SUBTYPES.GEOM2D);
+		manager.registerGeometryOperation(ToJTS.NAME, new Curve2DToJTS(), TYPES.CURVE, SUBTYPES.GEOM2D);
+		manager.registerGeometryOperation(ToJTS.NAME, new Curve2DToJTS(), TYPES.ARC, SUBTYPES.GEOM2D);
+
+		manager.registerGeometryOperation(ToJTS.NAME, new Surface2DToJTS(), TYPES.SURFACE, SUBTYPES.GEOM2D);
+		manager.registerGeometryOperation(ToJTS.NAME, new Surface2DToJTS(), TYPES.CIRCLE, SUBTYPES.GEOM2D);
+		manager.registerGeometryOperation(ToJTS.NAME, new Surface2DToJTS(), TYPES.ELLIPSE, SUBTYPES.GEOM2D);
+		
+		manager.registerGeometryOperation(ToJTS.NAME, new MultiPointToJTS(), TYPES.MULTIPOINT, SUBTYPES.GEOM2D);
+
+		manager.registerGeometryOperation(ToJTS.NAME, new MultiCurveToJTS(), TYPES.MULTICURVE, SUBTYPES.GEOM2D);
+
+		manager.registerGeometryOperation(ToJTS.NAME, new MultiSurfaceToJTS(), TYPES.MULTISURFACE, SUBTYPES.GEOM2D);
+	}
+
+	public void testPoint() throws CreateGeometryException, GeometryOperationNotSupportedException, GeometryOperationException{
+		Point point = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		point.setCoordinateAt(0, 1.0);
+		point.setCoordinateAt(1, 2.0);
+
+		JTSGeometryOperationContext ctx = new JTSGeometryOperationContext(-1);
+
+		Object obj = point.invokeOperation(ToJTS.CODE, ctx);
+		assertNotNull(obj);
+		assertTrue(obj instanceof com.vividsolutions.jts.geom.Point);
+		assertEquals(1.0, ((com.vividsolutions.jts.geom.Point)obj).getX(), 0.0);
+		assertEquals(2.0, ((com.vividsolutions.jts.geom.Point)obj).getY(), 0.0);
+	}
+	
+	public void testMultiPoint() throws GeometryOperationNotSupportedException, GeometryOperationException, CreateGeometryException{
+		Point point1 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM3D);
+		point1.setCoordinateAt(0, 1.0);
+		point1.setCoordinateAt(1, 2.0);
+		point1.setCoordinateAt(2, 3.0);
+		
+		Point point2 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM3D);
+		point2.setCoordinateAt(0, 4.0);
+		point2.setCoordinateAt(1, 5.0);
+		point2.setCoordinateAt(2, 6.0);
+		
+		MultiPoint multiPoint = (MultiPoint)manager.create(TYPES.MULTIPOINT, SUBTYPES.GEOM2D);
+		multiPoint.addPoint(point1);
+		multiPoint.addPoint(point2);
+		
+		JTSGeometryOperationContext ctx = new JTSGeometryOperationContext(-1);
+
+		Object obj = multiPoint.invokeOperation(ToJTS.CODE, ctx);
+		assertNotNull(obj);
+		assertTrue(obj instanceof com.vividsolutions.jts.geom.MultiPoint);
+		com.vividsolutions.jts.geom.MultiPoint gtMultiPoint = (com.vividsolutions.jts.geom.MultiPoint)obj;
+		assertEquals(2, (int)gtMultiPoint.getNumGeometries());
+	}
+
+	public void testLineString() throws GeometryOperationNotSupportedException, GeometryOperationException, CreateGeometryException{
+		Curve lineString = (Curve)manager.create(TYPES.CURVE, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX = new GeneralPathX();
+		generalPathX.moveTo(0, 0);
+		generalPathX.lineTo(1, 1);
+		generalPathX.lineTo(2, 1);		
+		lineString.setGeneralPath(generalPathX);	
+
+		JTSGeometryOperationContext ctx = new JTSGeometryOperationContext(-1);
+
+		Object obj = lineString.invokeOperation(ToJTS.CODE, ctx);
+		assertNotNull(obj);
+		assertTrue(obj instanceof com.vividsolutions.jts.geom.LineString);
+		com.vividsolutions.jts.geom.LineString gtLineString = (com.vividsolutions.jts.geom.LineString)obj;
+		assertEquals(0, gtLineString.getCoordinates()[0].x, 0.0);
+		assertEquals(0, gtLineString.getCoordinates()[0].y, 0.0);
+		assertEquals(0, gtLineString.getCoordinates()[1].x, 1.0);
+		assertEquals(0, gtLineString.getCoordinates()[1].y, 1.0);
+		assertEquals(0, gtLineString.getCoordinates()[2].x, 2.0);
+		assertEquals(0, gtLineString.getCoordinates()[2].y, 2.0);
+	}
+
+	public void testPolygon() throws CreateGeometryException, GeometryOperationNotSupportedException, GeometryOperationException{
+		Surface polygon = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX = new GeneralPathX();
+		generalPathX.moveTo(0, 0);
+		generalPathX.lineTo(1, 1);
+		generalPathX.lineTo(2, 1);
+		polygon.setGeneralPath(generalPathX);	
+
+		JTSGeometryOperationContext ctx = new JTSGeometryOperationContext(-1);
+
+		Object obj = polygon.invokeOperation(ToJTS.CODE, ctx);
+		assertNotNull(obj);
+		assertTrue(obj instanceof com.vividsolutions.jts.geom.Polygon);
+		com.vividsolutions.jts.geom.Polygon gtPolygon = (com.vividsolutions.jts.geom.Polygon)obj;
+		assertEquals(0, gtPolygon.getCoordinates()[0].x, 0.0);
+		assertEquals(0, gtPolygon.getCoordinates()[0].y, 0.0);
+		assertEquals(0, gtPolygon.getCoordinates()[1].x, 1.0);
+		assertEquals(0, gtPolygon.getCoordinates()[1].y, 1.0);
+		assertEquals(0, gtPolygon.getCoordinates()[2].x, 2.0);
+		assertEquals(0, gtPolygon.getCoordinates()[2].y, 2.0);
+	}
+
+	public void testMultiLineString() throws CreateGeometryException, GeometryOperationNotSupportedException, GeometryOperationException{
+		Curve curve1 = (Curve)manager.create(TYPES.CURVE, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX1 = new GeneralPathX();
+		generalPathX1.moveTo(0, 0);
+		generalPathX1.lineTo(1, 1);
+		generalPathX1.lineTo(2, 1);		
+		curve1.setGeneralPath(generalPathX1);	
+
+		Curve curve2 = (Curve)manager.create(TYPES.CURVE, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX2 = new GeneralPathX();
+		generalPathX2.moveTo(0, 0);
+		generalPathX2.lineTo(1, 1);
+		generalPathX2.lineTo(2, 1);		
+		curve2.setGeneralPath(generalPathX2);	
+
+		MultiCurve multiCurve = (MultiCurve)manager.create(TYPES.MULTICURVE, SUBTYPES.GEOM2D);
+		multiCurve.addCurve(curve1);
+		multiCurve.addCurve(curve2);
+
+		JTSGeometryOperationContext ctx = new JTSGeometryOperationContext(-1);
+
+		Object obj = multiCurve.invokeOperation(ToJTS.CODE, ctx);
+		assertNotNull(obj);
+		assertTrue(obj instanceof com.vividsolutions.jts.geom.MultiLineString);
+		com.vividsolutions.jts.geom.MultiLineString gtMultiLineString = (com.vividsolutions.jts.geom.MultiLineString)obj;
+		assertEquals(2, (int)gtMultiLineString.getNumGeometries());
+	}
+	
+	public void testMultiPlygon() throws CreateGeometryException, GeometryOperationNotSupportedException, GeometryOperationException{
+		Surface surface1 = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX1 = new GeneralPathX();
+		generalPathX1.moveTo(0, 0);
+		generalPathX1.lineTo(1, 1);
+		generalPathX1.lineTo(2, 1);		
+		surface1.setGeneralPath(generalPathX1);	
+		
+		Surface surface2 = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM2D);		
+		GeneralPathX generalPathX2 = new GeneralPathX();
+		generalPathX2.moveTo(0, 0);
+		generalPathX2.lineTo(1, 1);
+		generalPathX2.lineTo(2, 1);		
+		surface2.setGeneralPath(generalPathX2);	
+		
+		MultiSurface multiPolygon = (MultiSurface)manager.create(TYPES.MULTISURFACE, SUBTYPES.GEOM2D);
+		multiPolygon.addSurface(surface1);
+		multiPolygon.addSurface(surface2);
+
+		JTSGeometryOperationContext ctx = new JTSGeometryOperationContext(-1);
+
+		Object obj = multiPolygon.invokeOperation(ToJTS.CODE, ctx);
+		assertNotNull(obj);
+		assertTrue(obj instanceof com.vividsolutions.jts.geom.MultiPolygon);
+		com.vividsolutions.jts.geom.MultiPolygon gtMultiPolygon = (com.vividsolutions.jts.geom.MultiPolygon)obj;
+		assertEquals(2, (int)gtMultiPolygon.getNumGeometries());
+		assertEquals(0, gtMultiPolygon.getCoordinates()[0].x, 0.0);
+		assertEquals(0, gtMultiPolygon.getCoordinates()[0].x, 0.0);
+	}
+
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/tojts/toJTSTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/println/PrintMultiPoint.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/println/PrintMultiPoint.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/println/PrintMultiPoint.java	(revision 38288)
@@ -0,0 +1,96 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.operation.println;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.aggregate.MultiPoint;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException;
+import org.gvsig.fmap.geom.type.GeometryTypeNotValidException;
+import org.gvsig.tools.locator.LocatorException;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class PrintMultiPoint extends GeometryOperation {
+
+	public PrintMultiPoint() {
+		super();
+		// TODO Auto-generated constructor stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex()
+	 */
+	public int getOperationIndex() {
+		try {
+			return GeometryLocator.getGeometryManager()
+			.registerGeometryOperation("println", new PrintPoint(), TYPES.MULTIPOINT, SUBTYPES.GEOM2D);
+		} catch (LocatorException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (GeometryTypeNotSupportedException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (GeometryTypeNotValidException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return -1;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invoke(Geometry geom, GeometryOperationContext ctx)
+			throws GeometryOperationException {
+		MultiPoint multiPoint = (MultiPoint)geom;
+		System.out.println("MultiPoint");
+		for (int i=0 ; i<multiPoint.getPrimitivesNumber() ; i++){
+			try {
+				System.out.print(" - ");
+				multiPoint.getPointAt(i).invokeOperation(getOperationIndex(), ctx);
+			} catch (GeometryOperationNotSupportedException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+		return "println-multipoint";
+	}	
+	
+	
+}
+
+
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/println/PrintMultiPoint.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/println/PrintPoint.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/println/PrintPoint.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/println/PrintPoint.java	(revision 38288)
@@ -0,0 +1,79 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.operation.println;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException;
+import org.gvsig.fmap.geom.type.GeometryTypeNotValidException;
+import org.gvsig.tools.locator.LocatorException;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class PrintPoint extends GeometryOperation {
+	
+	
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex()
+	 */
+	public int getOperationIndex() {
+		try {
+			return GeometryLocator.getGeometryManager()
+			.registerGeometryOperation("println", new PrintPoint(), TYPES.POINT, SUBTYPES.GEOM2D);
+		} catch (LocatorException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (GeometryTypeNotSupportedException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (GeometryTypeNotValidException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return -1;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invoke(Geometry geom, GeometryOperationContext ctx)
+			throws GeometryOperationException {
+		Point point = (Point)geom;
+		System.out.println("Point, X=" + point.getX() + " Y=" + point.getY());
+		return "println-point";
+	}
+	
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/println/PrintPoint.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/println/PrintlnOperationTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/println/PrintlnOperationTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/println/PrintlnOperationTest.java	(revision 38288)
@@ -0,0 +1,85 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.operation.println;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.aggregate.MultiPoint;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class PrintlnOperationTest extends AbstractLibraryAutoInitTestCase {
+	final static private Logger logger = LoggerFactory.getLogger("org.gvsig");
+	private GeometryManager manager;
+	
+    protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();
+		manager.registerGeometryOperation("println", new PrintPoint(), TYPES.POINT, SUBTYPES.GEOM2D);
+		manager.registerGeometryOperation("println", new PrintMultiPoint(), TYPES.MULTIPOINT, SUBTYPES.GEOM2D);
+	}
+	
+	public void testPoint() throws InstantiationException, IllegalAccessException, GeometryOperationNotSupportedException, GeometryOperationException, CreateGeometryException{
+		Point point = (Point) manager.create(TYPES.POINT, SUBTYPES.GEOM2D);		
+		assertEquals((String)manager.invokeOperation("println", point, null), "println-point");		
+	}
+	
+	public void testMultiPoint() throws InstantiationException, IllegalAccessException, GeometryOperationNotSupportedException, GeometryOperationException, CreateGeometryException{
+		Point point1 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		point1.setCoordinateAt(0, 1.0);
+		point1.setCoordinateAt(1, 2.0);
+		
+		Point point2 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		point2.setCoordinateAt(0, 4.0);
+		point2.setCoordinateAt(1, 5.0);
+			
+		MultiPoint multiPoint = (MultiPoint)manager.create(TYPES.MULTIPOINT, SUBTYPES.GEOM2D);
+		multiPoint.addPoint(point1);
+		multiPoint.addPoint(point2);
+		
+		assertEquals((String)manager.invokeOperation("println", multiPoint, null), "println-multipoint");	
+		assertEquals((String)manager.invokeOperation("println", point1, null), "println-point");	
+		assertEquals((String)manager.invokeOperation("println", point2, null), "println-point");			
+						
+		assertEquals((String)point1.invokeOperation("println", null), "println-point");	
+		
+	}
+}
+
+
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/println/PrintlnOperationTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/towkb/WKBNativeTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/towkb/WKBNativeTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/towkb/WKBNativeTest.java	(revision 38288)
@@ -0,0 +1,156 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.operation.towkb;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.fromwkb.FromWKB;
+import org.gvsig.fmap.geom.operation.fromwkb.FromWKBGeometryOperationContext;
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class WKBNativeTest extends AbstractLibraryAutoInitTestCase {
+    private GeometryManager manager;
+    private GeometryOperation toWkb2d;
+    private GeometryOperation fromWkb2d;
+    private FromWKBGeometryOperationContext fromWkbContext;
+
+    protected void doSetUp() throws Exception {
+        manager = GeometryLocator.getGeometryManager();
+        fromWkbContext = new FromWKBGeometryOperationContext();
+    }
+
+    public void testPoint() throws Exception{
+        Point point = (Point) manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+        point.setX(1);
+        point.setY(2);
+        toWkb2d =
+            manager.getGeometryOperation(ToWKBNative.CODE,
+                Geometry.TYPES.POINT, Geometry.SUBTYPES.GEOM2D);
+        fromWkb2d =
+            manager.getGeometryOperation(FromWKB.CODE, Geometry.TYPES.POINT,
+                Geometry.SUBTYPES.GEOM2D);
+        byte[] wkb = (byte[]) toWkb2d.invoke(point,
+            null);
+        fromWkbContext.setData(wkb);
+        Geometry geom = (Geometry) fromWkb2d.invoke(null,
+            fromWkbContext);
+
+        assertEquals(point, geom);
+    }
+
+    public void testCurve() throws Exception {
+
+        GeneralPathX gp = new GeneralPathX();
+
+        gp.moveTo(0.0, 0.0);
+        gp.lineTo(1.0, 1.0);
+        gp.lineTo(2.0, 2.0);
+        gp.lineTo(3.0, 3.0);
+        toWkb2d =
+            manager.getGeometryOperation(ToWKBNative.CODE,
+                Geometry.TYPES.CURVE, Geometry.SUBTYPES.GEOM2D);
+        fromWkb2d =
+            manager.getGeometryOperation(FromWKB.CODE, Geometry.TYPES.CURVE,
+                Geometry.SUBTYPES.GEOM2D);
+        Curve curve = (Curve) manager.create(TYPES.CURVE, SUBTYPES.GEOM2D);
+        curve.setGeneralPath(gp);
+        byte[] wkb = (byte[]) toWkb2d.invoke(curve,
+            null);
+        fromWkbContext.setData(wkb);
+        Geometry geom = (Geometry) fromWkb2d.invoke(null,
+            fromWkbContext);
+        assertTrue(curve.equals(geom));
+    }
+
+    public void testPolygon() throws Exception {
+        GeneralPathX gp = new GeneralPathX();
+        gp.moveTo(1.0, 1.0);
+        gp.lineTo(2.0, 2.0);
+        gp.lineTo(3.0, 3.0);
+        gp.lineTo(4.0, 4.0);
+        gp.lineTo(5.0, 5.0);
+        gp.closePath();
+
+        toWkb2d =
+            manager.getGeometryOperation(ToWKBNative.CODE,
+                Geometry.TYPES.SURFACE, Geometry.SUBTYPES.GEOM2D);
+        fromWkb2d =
+            manager.getGeometryOperation(FromWKB.CODE, Geometry.TYPES.SURFACE,
+                Geometry.SUBTYPES.GEOM2D);
+
+        Surface surface = manager.createSurface(gp, SUBTYPES.GEOM2D);
+
+        byte[] wkb = (byte[]) toWkb2d.invoke(surface, null);
+        fromWkbContext.setData(wkb);
+        Geometry geom = (Geometry) fromWkb2d.invoke(null, fromWkbContext);
+        assertTrue(surface.equals(geom));
+    }
+
+//    public void testPolygonWithZ() throws Exception {
+//        Surface surface = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM3D);
+//
+//        Point point = manager.createPoint(1, 1, SUBTYPES.GEOM3D);
+//        point.setCoordinateAt(DIMENSIONS.Z, 1);
+//        surface.addMoveToVertex(point);
+//        
+//        point = manager.createPoint(2, 2, SUBTYPES.GEOM3D);
+//        point.setCoordinateAt(DIMENSIONS.Z, 2);
+//        surface.addVertex(point);
+//        
+//        point = manager.createPoint(3, 3, SUBTYPES.GEOM3D);
+//        point.setCoordinateAt(DIMENSIONS.Z, 3);
+//        surface.addVertex(point);
+//        
+//        point = manager.createPoint(4, 4, SUBTYPES.GEOM3D);
+//        point.setCoordinateAt(DIMENSIONS.Z, 4);
+//        surface.addVertex(point);
+//        
+//        point = manager.createPoint(5, 5, SUBTYPES.GEOM3D);
+//        point.setCoordinateAt(DIMENSIONS.Z, 5);
+//        surface.addVertex(point);       
+//
+//        surface.closePrimitive();
+//        
+//        byte[] wkb = (byte[]) toWkb2d.invoke(surface, null);
+//        fromWkbContext.setData(wkb);
+//        Geometry geom = (Geometry) fromWkb2d.invoke(null, fromWkbContext);
+//        assertTrue(surface.equals(geom));
+//    }
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/towkb/WKBNativeTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/towkb/WKBTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/towkb/WKBTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/towkb/WKBTest.java	(revision 38288)
@@ -0,0 +1,55 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.operation.towkb;
+
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class WKBTest extends AbstractLibraryAutoInitTestCase {
+	private GeometryManager manager;
+
+    protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();
+	}
+	
+	public void testPoint() throws InstantiationException, IllegalAccessException, GeometryOperationNotSupportedException, GeometryOperationException, CreateGeometryException{
+		Point point = (Point) manager.create(TYPES.POINT, SUBTYPES.GEOM2D);		
+		manager.invokeOperation("toWKB", point, null);		
+	}
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/operation/towkb/WKBTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/impl/DefaultGeometryManagerTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/impl/DefaultGeometryManagerTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/impl/DefaultGeometryManagerTest.java	(revision 38288)
@@ -0,0 +1,405 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {}  {{Task}}
+*/
+package org.gvsig.fmap.geom.impl;
+
+import java.awt.Rectangle;
+import java.awt.Shape;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+
+import junit.framework.TestCase;
+
+import org.cresques.cts.ICoordTrans;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * Unit tests for the class {@link DefaultGeometryManager}.
+ * 
+ * @author 2009- <a href="cordinyana@gvsig.org">C�sar Ordi�ana</a> - gvSIG team
+ */
+public class DefaultGeometryManagerTest extends TestCase {
+
+	private DefaultGeometryManager manager;
+
+	protected void setUp() throws Exception {
+		super.setUp();
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.gvsig.fmap.geom.impl.DefaultGeometryManager#registerGeometryType(int, int)}
+	 * and
+	 * {@link org.gvsig.fmap.geom.impl.DefaultGeometryManager#getGeometryType(int, int)
+	 * .
+	 */
+	public void testRegisterGetGeometryType() throws Exception {
+		manager = new DefaultGeometryManager(1, 1);
+		manager.registerGeometryType(TestGeometry.class,
+				Geometry.TYPES.GEOMETRY, Geometry.SUBTYPES.GEOM2D);
+		manager.registerGeometryType(TestGeometry.class,
+				Geometry.TYPES.GEOMETRY, Geometry.SUBTYPES.GEOM3D);
+		manager.registerGeometryType(TestGeometry.class,
+				Geometry.TYPES.MULTISOLID, Geometry.SUBTYPES.GEOM2D);
+		manager.registerGeometryType(TestGeometry.class, Geometry.TYPES.ARC,
+				Geometry.SUBTYPES.GEOM3DM);
+
+		assertNotNull(manager.getGeometryType(Geometry.TYPES.GEOMETRY,
+				Geometry.SUBTYPES.GEOM2D));
+
+		assertNotNull(manager.getGeometryType(Geometry.TYPES.GEOMETRY,
+				Geometry.SUBTYPES.GEOM3D));
+
+		assertNotNull(manager.getGeometryType(Geometry.TYPES.MULTISOLID,
+				Geometry.SUBTYPES.GEOM2D));
+
+		assertNotNull(manager.getGeometryType(Geometry.TYPES.ARC,
+				Geometry.SUBTYPES.GEOM3DM));
+	}
+
+	/**
+	 * Test method for
+	 * {@link org.gvsig.fmap.geom.impl.DefaultGeometryManager#create(int, int)}.
+	 */
+	public void testCreateIntInt() throws Exception {
+		manager = new DefaultGeometryManager();
+		manager.registerGeometryType(TestGeometry.class,
+				Geometry.TYPES.GEOMETRY, Geometry.SUBTYPES.GEOM2D);
+		manager.registerGeometryType(TestGeometry.class,
+				Geometry.TYPES.GEOMETRY, Geometry.SUBTYPES.GEOM3D);
+		manager.registerGeometryType(TestGeometry.class,
+				Geometry.TYPES.MULTISOLID, Geometry.SUBTYPES.GEOM2D);
+		manager.registerGeometryType(TestGeometry.class, Geometry.TYPES.ARC,
+				Geometry.SUBTYPES.GEOM3DM);
+
+		assertGeometry(manager.create(Geometry.TYPES.GEOMETRY,
+				Geometry.SUBTYPES.GEOM2D));
+
+		assertGeometry(manager.create(Geometry.TYPES.GEOMETRY,
+				Geometry.SUBTYPES.GEOM3D));
+
+		assertGeometry(manager.create(Geometry.TYPES.MULTISOLID,
+				Geometry.SUBTYPES.GEOM2D));
+
+		assertGeometry(manager.create(Geometry.TYPES.ARC,
+				Geometry.SUBTYPES.GEOM3DM));
+	}
+
+	private void assertGeometry(Geometry geom) {
+		assertNotNull(geom);
+		assertEquals(TestGeometry.class, geom.getClass());
+	}
+
+	public static class TestGeometry implements Geometry {
+
+		private final GeometryType geometryType;
+
+		public TestGeometry(GeometryType geometryType) {
+			this.geometryType = geometryType;
+		}
+
+		public Geometry cloneGeometry() {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public boolean fastIntersects(double x, double y, double w, double h) {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public Rectangle2D getBounds2D() {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public int getDimension() {
+			// TODO Auto-generated method stub
+			return 0;
+		}
+
+		public Envelope getEnvelope() {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public GeneralPathX getGeneralPath() {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public GeometryType getGeometryType() {
+			return geometryType;
+		}
+
+		public Handler[] getHandlers(int type) {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public Shape getInternalShape() {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public PathIterator getPathIterator(AffineTransform at) {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public PathIterator getPathIterator(AffineTransform at, double flatness) {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public int getType() {
+			return 0;
+		}
+
+		public boolean intersects(Rectangle2D r) {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public Object invokeOperation(int index, GeometryOperationContext ctx)
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public Object invokeOperation(String opName,
+				GeometryOperationContext ctx)
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public boolean isSimple() {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public void reProject(ICoordTrans ct) {
+			// TODO Auto-generated method stub
+
+		}
+
+		public void transform(AffineTransform at) {
+			// TODO Auto-generated method stub
+
+		}
+
+		public boolean contains(Point2D p) {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public boolean contains(Rectangle2D r) {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public boolean contains(double x, double y) {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public boolean contains(double x, double y, double w, double h) {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public Rectangle getBounds() {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public boolean intersects(double x, double y, double w, double h) {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public int compareTo(Object arg0) {
+			// TODO Auto-generated method stub
+			return 0;
+		}
+
+		public Geometry buffer(double distance)
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public boolean contains(Geometry geometry)
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public byte[] convertToWKB()
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public String convertToWKT()
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public Geometry convexHull()
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public boolean coveredBy(Geometry geometry)
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public boolean crosses(Geometry geometry)
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public Geometry difference(Geometry other)
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public boolean disjoint(Geometry geometry)
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public double distance(Geometry geometry)
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return 0;
+		}
+
+		public Geometry intersection(Geometry other)
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public boolean intersects(Geometry geometry)
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public boolean overlaps(Geometry geometry)
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public boolean touches(Geometry geometry)
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public Geometry union(Geometry other)
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public boolean within(Geometry geometry)
+				throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return false;
+		}
+
+		public Point centroid() throws GeometryOperationNotSupportedException,
+				GeometryOperationException {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+        public double area() throws GeometryOperationNotSupportedException,
+            GeometryOperationException {
+            // TODO Auto-generated method stub
+            return 0;
+        }
+
+        public double perimeter()
+            throws GeometryOperationNotSupportedException,
+            GeometryOperationException {
+            // TODO Auto-generated method stub
+            return 0;
+        }
+
+        public Shape getShape() {
+            // TODO Auto-generated method stub
+            return null;
+        }
+
+        public Shape getShape(AffineTransform affineTransform) {
+            // TODO Auto-generated method stub
+            return null;
+        }
+
+	}
+}
\ No newline at end of file
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/GeometryManagerTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/GeometryManagerTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/GeometryManagerTest.java	(revision 38288)
@@ -0,0 +1,272 @@
+package org.gvsig.fmap.geom;
+
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.operation.ensureOrientation.EnsureOrientation;
+import org.gvsig.fmap.geom.operation.flip.Flip;
+import org.gvsig.fmap.geom.operation.isCCW.IsCCW;
+import org.gvsig.fmap.geom.operation.tojts.ToJTS;
+import org.gvsig.fmap.geom.operation.towkb.ToWKB;
+import org.gvsig.fmap.geom.primitive.Arc;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.impl.Arc2D;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException;
+import org.gvsig.fmap.geom.type.GeometryTypeNotValidException;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class GeometryManagerTest extends AbstractLibraryAutoInitTestCase {
+
+	final static private Logger logger = LoggerFactory.getLogger("org.gvsig");
+
+	private GeometryManager manager;
+
+	protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();		
+	}
+
+	public void testRegister() throws Exception {
+		logger.debug("--------- testRegister() START ----------");
+
+		Point p2d = (Point) manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		assertNotNull(p2d);
+		p2d.setCoordinateAt(0, 0);
+		p2d.setCoordinateAt(1, 0);
+
+		java.awt.geom.Point2D pt1 = new java.awt.geom.Point2D.Float(0,1);
+		java.awt.geom.Point2D pt2 = new java.awt.geom.Point2D.Float(1,1);
+		java.awt.geom.Point2D pt3 = new java.awt.geom.Point2D.Float(1,0);
+		Arc2D c2d = (Arc2D) manager.create(TYPES.ARC, SUBTYPES.GEOM2D);
+		assertNotNull(c2d);
+		
+		GeometryType geomType1 = manager.getGeometryType(TYPES.POINT, SUBTYPES.GEOM2D);
+		GeometryType geomType2 = manager.getGeometryType(TYPES.ARC, SUBTYPES.GEOM2D);
+
+		assertEquals(p2d.getGeometryType(), geomType1);
+		assertEquals(c2d.getGeometryType(), geomType2);
+
+//		int op1 = manager.registerGeometryOperation("toJTS", new ToJTS(), geomType1);
+//		logger.debug("op1=" + op1);
+//
+//		int op2 = -1;
+//		try {
+//			op2 = manager.registerGeometryOperation("toJTS", new ToJTS(), geomType1);
+//			logger.debug("op2=" + op2);
+//		} catch (Exception e) {
+//			logger.error("Error registrando operaci�n: ", e);
+//		}
+
+		int op3 = manager.registerGeometryOperation("toWKB", new ToWKB(),geomType1);
+		int op4 = manager.registerGeometryOperation("toWKB", new ToWKB(),geomType2);
+
+		logger.debug("op3=" + op3);
+
+//		assertTrue("FALLO: op1 != op2", op1 == op2);
+//		assertTrue("FALLO: op1 == op3", op1 != op3);
+//		assertFalse("FALLO: op4 == op", op4 == op1);
+
+		//Point p = (Point) factory.createPoint2D(1, 2);
+		Point p = (Point) manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+
+		// TODO: implement again with the needed context for each operation
+
+		// GeometryOperationContext ctx = new GeometryOperationContext();
+		// ctx.setAttribute("dummy", "DummyValue");
+		// p.invokeOperation(ToWKB.CODE, ctx);
+		// p.invokeOperation(ToJTS.CODE, ctx);
+		// p.invokeOperation(Flip.CODE, ctx);
+
+		Geometry sol = manager.create(TYPES.SOLID, SUBTYPES.GEOM3D);
+		assertNotNull(sol);
+		//logger.debug(sol);
+
+		logger.debug("--------- testRegister() END ----------");
+	}
+
+	public void testGeneralPathXOperations() throws InstantiationException, IllegalAccessException, CreateGeometryException{
+		logger.debug("--------- Test GeneralPathX Operation START ----------");
+
+		//Registering the operation Flip() to all the geometries...
+		manager.registerGeometryOperation("flip", new Flip());
+
+		//Registering the operation ensureOrientation() to all the geometries...
+		manager.registerGeometryOperation("ensureOrientation", new EnsureOrientation());
+
+		//Registering the operation isCCW() to all the geometries...
+		manager.registerGeometryOperation("isCCW", new IsCCW());
+
+		//Building the Points for a curve...
+//		java.awt.geom.Point2D p1 = new java.awt.geom.Point2D.Double(1,2);
+//		java.awt.geom.Point2D p2 = new java.awt.geom.Point2D.Double(2,1);
+//		java.awt.geom.Point2D p3 = new java.awt.geom.Point2D.Double(3,3);
+
+		Point p1 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		p1.setCoordinateAt(0, 1);
+		p1.setCoordinateAt(1, 2);
+
+		Point p2 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		p2.setCoordinateAt(0, 2);
+		p2.setCoordinateAt(1, 1);
+
+		Point p3 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		p3.setCoordinateAt(0, 3);
+		p3.setCoordinateAt(1, 3);
+
+		//Build a curve to get the operation invoked with the registered operation.
+		//Geometry curve = (Curve) factory.createArc(p1, p2, p3);
+		Arc arc = (Arc) manager.create(TYPES.ARC, SUBTYPES.GEOM2D);
+        arc.setPoints(p1, p2, p3);
+
+		try {
+			arc.invokeOperation(Flip.CODE, null);
+		} catch (GeometryOperationNotSupportedException e) {
+			logger.error("Operation doesn't be registered for this geometry. \n", e);
+		} catch (GeometryOperationException e) {
+			logger.error("An error produced while the Operation was running. \n", e);
+		}
+		GeometryOperationContext ctx = new GeometryOperationContext();
+		ctx.setAttribute("bCCW",new Boolean(true));
+		Boolean aux1 = null;
+		try {
+			aux1 = (Boolean) arc.invokeOperation(EnsureOrientation.CODE, ctx);
+		} catch (GeometryOperationNotSupportedException e) {
+			logger.error("Operation doesn't be registered for this geometry. \n", e);
+		} catch (GeometryOperationException e) {
+			// TODO Auto-generated catch block
+			logger.error("An error produced while the Operation was running. \n", e);
+		}
+		//True si es exterior, le ha dado la vuelta.
+		assertTrue(aux1.booleanValue());
+
+		Boolean aux2 = null;
+		try {
+			aux2 = (Boolean) arc.invokeOperation(IsCCW.CODE, null);
+		} catch (GeometryOperationNotSupportedException e) {
+			logger.error("Operation doesn't be registered for this geometry. \n", e);
+		} catch (GeometryOperationException e) {
+			// TODO Auto-generated catch block
+			logger.error("An error produced while the Operation was running. \n", e);
+		}
+		//True si es CCW.
+		assertTrue(aux2.booleanValue());
+
+		logger.debug("--------- Test GeneralPathX Operation END ----------");
+	}
+
+	// TODO: implement again with the needed context for each operation
+	// public void testInvoke() throws InstantiationException,
+	// IllegalAccessException, CreateGeometryException {
+	// int size = 100000;
+	//
+	// // Fill the operation context with required params
+	// GeometryOperationContext ctx = new GeometryOperationContext();
+	// GeometryOperationContext var = new GeometryOperationContext();
+	// var.setAttribute("bCCW",new Boolean(true));
+	//
+	// logger.debug("ToJTS.-");
+	// indirectInvoke(ToJTS.CODE, ctx, size);
+	// directInvoke(ToJTS.CODE, ctx, size);
+	// logger.debug("ToWKB.-");
+	// indirectInvoke(ToWKB.CODE, null, size);
+	// directInvoke(ToWKB.CODE, null, size);
+	// logger.debug("Flip.-");
+	// indirectInvoke(Flip.CODE, ctx, size);
+	// directInvoke(Flip.CODE, ctx, size);
+	// logger.debug("EnsureOrientation.-");
+	// //indirectInvoke(EnsureOrientation.CODE, var, size);
+	// directInvoke(EnsureOrientation.CODE, var, size);
+	// logger.debug("isCCW.-");
+	// //indirectInvoke(IsCCW.CODE, ctx, size);
+	// directInvoke(IsCCW.CODE, ctx, size);
+	//
+	// }
+
+	private Geometry[] createGeometryArray(int size) throws InstantiationException, IllegalAccessException, CreateGeometryException {
+		Geometry[] geom = new Geometry[size];
+		for (int i = 0; i < size; i++) {
+			//geom[i] = factory.createPoint2D(Math.log(1 - i), Math.log(i + 1));
+			geom[i] = manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		}
+		return geom;
+	}
+
+	private long directInvoke(int opCode, GeometryOperationContext ctx, int size) throws InstantiationException, IllegalAccessException, CreateGeometryException {
+		Geometry[] geoms = createGeometryArray(size);
+
+		long t0 = System.currentTimeMillis();
+
+		GeometryOperation geomOp = null;
+		try {
+			geomOp = manager.getGeometryOperation(ToJTS.CODE, TYPES.POINT, SUBTYPES.GEOM2D);
+		} catch (GeometryTypeNotSupportedException gtnse) {
+			logger.error("Error:", gtnse);
+		} catch (GeometryOperationNotSupportedException gonse) {
+			logger.error("Error:", gonse);
+		} catch (GeometryTypeNotValidException e) {
+			logger.error("Error:", e);
+		}
+
+		// Here is the main loop where you call the operation
+		try {
+			for (int i = 0; i < geoms.length; i++) {
+				Object result = geomOp.invoke(geoms[i], ctx);
+				// if(i%100 == 99) logger.debug(result);
+			}
+
+		} catch (GeometryOperationException goe) {
+			logger.error("Error:", goe);
+		}
+		long t1 = System.currentTimeMillis();
+		long t = t1 - t0;
+		logger.debug("Milliseconds (direct): " + t);
+		return t;
+	}
+
+	private long indirectInvoke(int opCode, GeometryOperationContext ctx,
+			int size) throws InstantiationException, IllegalAccessException, CreateGeometryException {
+		Geometry[] geoms = createGeometryArray(size);
+
+		long t0 = System.currentTimeMillis();
+
+		// Here is the main loop where you call the operation
+		try {
+			for (int i = 0; i < geoms.length; i++) {
+				Object result = (geoms[i]).invokeOperation(opCode,
+						ctx);
+				// if(i%100 == 99) logger.debug(result);
+			}
+		} catch (GeometryOperationNotSupportedException gonse) {
+			logger.error("Error:", gonse);
+		} catch (GeometryOperationException goe) {
+			logger.error("Error:", goe);
+		}
+		long t1 = System.currentTimeMillis();
+		long t = t1 - t0;
+		logger.debug("Milliseconds (indirect): " + t);
+		return t;
+	}
+
+//	public void testRegisterBasicGeometryType() {
+//		GeometryType gt = GeometryLocator.getGeometryManager()
+//		.registerGeometryType(DummyPoint2D.class, "DummyPoint2D", TYPES.ELLIPSE,  SUBTYPES.GEOM2DZ);
+//
+//		logger.debug(String.valueOf(gt.getType()));
+//
+//		GeometryLocator.getGeometryManager().unregisterGeometryType(DummyPoint2D.class);
+//
+//		gt = GeometryLocator.getGeometryManager()
+//		.registerGeometryType(DummyPoint2D.class, "DummyPoint2D", TYPES.POINT, SUBTYPES.GEOM2D);
+//
+//		logger.debug(String.valueOf(gt.getType()));
+//		GeometryLocator.getGeometryManager().unregisterGeometryType(
+//				DummyPoint2D.class);
+//		
+//	}
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiCurveTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiCurveTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiCurveTest.java	(revision 38288)
@@ -0,0 +1,91 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.aggregate;
+
+import junit.framework.Assert;
+
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class MultiCurveTest extends AbstractLibraryAutoInitTestCase {
+	private GeometryManager manager;
+	
+	final static private Logger logger = LoggerFactory.getLogger("org.gvsig");
+
+	protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();		
+	}
+	
+	public void testCreateMultiCurve2D() throws InstantiationException, IllegalAccessException, CreateGeometryException{
+		Curve curve1 = (Curve)manager.create(TYPES.CURVE, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX1 = new GeneralPathX();
+		generalPathX1.moveTo(0, 0);
+		generalPathX1.lineTo(1, 1);
+		generalPathX1.lineTo(2, 1);		
+		curve1.setGeneralPath(generalPathX1);	
+		
+		Curve curve2 = (Curve)manager.create(TYPES.CURVE, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX2 = new GeneralPathX();
+		generalPathX2.moveTo(0, 0);
+		generalPathX2.lineTo(1, 1);
+		generalPathX2.lineTo(2, 1);		
+		curve2.setGeneralPath(generalPathX2);	
+		
+		MultiCurve multiCurve = (MultiCurve)manager.create(TYPES.MULTICURVE, SUBTYPES.GEOM2D);
+		multiCurve.addCurve(curve1);
+		multiCurve.addCurve(curve2);
+				
+		Assert.assertEquals(2, multiCurve.getPrimitivesNumber());
+		Assert.assertEquals(0.0, ((Curve)multiCurve.getPrimitiveAt(0)).getCoordinateAt(0, 0), 0);
+		Assert.assertEquals(0.0, ((Curve)multiCurve.getPrimitiveAt(0)).getCoordinateAt(0, 1), 0);
+		Assert.assertEquals(1.0, ((Curve)multiCurve.getPrimitiveAt(0)).getCoordinateAt(1, 0), 1);
+		Assert.assertEquals(1.0, ((Curve)multiCurve.getPrimitiveAt(0)).getCoordinateAt(1, 1), 1);
+		Assert.assertEquals(2.0, ((Curve)multiCurve.getPrimitiveAt(0)).getCoordinateAt(2, 0), 2);
+		Assert.assertEquals(1.0, ((Curve)multiCurve.getPrimitiveAt(0)).getCoordinateAt(2, 1), 1);
+		
+		Assert.assertEquals(2, multiCurve.getPrimitivesNumber());
+		Assert.assertEquals(0.0, ((Curve)multiCurve.getPrimitiveAt(1)).getCoordinateAt(0, 0), 0);
+		Assert.assertEquals(0.0, ((Curve)multiCurve.getPrimitiveAt(1)).getCoordinateAt(0, 1), 0);
+		Assert.assertEquals(1.0, ((Curve)multiCurve.getPrimitiveAt(1)).getCoordinateAt(1, 0), 1);
+		Assert.assertEquals(1.0, ((Curve)multiCurve.getPrimitiveAt(1)).getCoordinateAt(1, 1), 1);
+		Assert.assertEquals(2.0, ((Curve)multiCurve.getPrimitiveAt(1)).getCoordinateAt(2, 0), 2);
+		Assert.assertEquals(1.0, ((Curve)multiCurve.getPrimitiveAt(1)).getCoordinateAt(2, 1), 1);
+	}	
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiCurveTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiPrimitiveTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiPrimitiveTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiPrimitiveTest.java	(revision 38288)
@@ -0,0 +1,115 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.aggregate;
+
+import junit.framework.Assert;
+
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class MultiPrimitiveTest extends AbstractLibraryAutoInitTestCase {
+	private GeometryManager manager;
+	
+	final static private Logger logger = LoggerFactory.getLogger("org.gvsig");
+
+	protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();		
+	}
+	
+	public void testCreateMultiGeometry() throws InstantiationException, IllegalAccessException, CreateGeometryException{
+		Curve curve1 = (Curve)manager.create(TYPES.CURVE, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX1 = new GeneralPathX();
+		generalPathX1.moveTo(0, 0);
+		generalPathX1.lineTo(1, 1);
+		generalPathX1.lineTo(2, 1);		
+		curve1.setGeneralPath(generalPathX1);	
+		
+		Curve curve2 = (Curve)manager.create(TYPES.CURVE, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX2 = new GeneralPathX();
+		generalPathX2.moveTo(0, 0);
+		generalPathX2.lineTo(1, 1);
+		generalPathX2.lineTo(2, 1);		
+		curve2.setGeneralPath(generalPathX2);	
+		
+		Point point = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		point.setCoordinateAt(0, 1.0);
+		point.setCoordinateAt(1, 2.0);
+		
+		Surface surface = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX = new GeneralPathX();
+		generalPathX.moveTo(0, 0);
+		generalPathX.lineTo(1, 1);
+		generalPathX.lineTo(2, 1);
+		surface.setGeneralPath(generalPathX);	
+		
+		MultiPrimitive multiPrimitive = (MultiPrimitive)manager.create(TYPES.AGGREGATE, SUBTYPES.GEOM2D);
+		multiPrimitive.addPrimitive(curve1);
+		multiPrimitive.addPrimitive(point);
+		multiPrimitive.addPrimitive(surface);
+		multiPrimitive.addPrimitive(curve2);
+						
+		Assert.assertEquals(4, multiPrimitive.getPrimitivesNumber());
+		Assert.assertEquals(0.0, ((Curve)multiPrimitive.getPrimitiveAt(0)).getCoordinateAt(0, 0), 0);
+		Assert.assertEquals(0.0, ((Curve)multiPrimitive.getPrimitiveAt(0)).getCoordinateAt(0, 1), 0);
+		Assert.assertEquals(1.0, ((Curve)multiPrimitive.getPrimitiveAt(0)).getCoordinateAt(1, 0), 1);
+		Assert.assertEquals(1.0, ((Curve)multiPrimitive.getPrimitiveAt(0)).getCoordinateAt(1, 1), 1);
+		Assert.assertEquals(2.0, ((Curve)multiPrimitive.getPrimitiveAt(0)).getCoordinateAt(2, 0), 2);
+		Assert.assertEquals(1.0, ((Curve)multiPrimitive.getPrimitiveAt(0)).getCoordinateAt(2, 1), 1);
+		
+		Assert.assertEquals(1.0, ((Point)multiPrimitive.getPrimitiveAt(1)).getX(), 0);
+		Assert.assertEquals(2.0, ((Point)multiPrimitive.getPrimitiveAt(1)).getY(), 0);
+		
+		Assert.assertEquals(0.0, ((Surface)multiPrimitive.getPrimitiveAt(2)).getCoordinateAt(0, 0), 0);
+		Assert.assertEquals(0.0, ((Surface)multiPrimitive.getPrimitiveAt(2)).getCoordinateAt(0, 1), 0);
+		Assert.assertEquals(1.0, ((Surface)multiPrimitive.getPrimitiveAt(2)).getCoordinateAt(1, 0), 1);
+		Assert.assertEquals(1.0, ((Surface)multiPrimitive.getPrimitiveAt(2)).getCoordinateAt(1, 1), 1);
+		Assert.assertEquals(2.0, ((Surface)multiPrimitive.getPrimitiveAt(2)).getCoordinateAt(2, 0), 2);
+		Assert.assertEquals(1.0, ((Surface)multiPrimitive.getPrimitiveAt(2)).getCoordinateAt(2, 1), 1);
+
+		Assert.assertEquals(0.0, ((Curve)multiPrimitive.getPrimitiveAt(3)).getCoordinateAt(0, 0), 0);
+		Assert.assertEquals(0.0, ((Curve)multiPrimitive.getPrimitiveAt(3)).getCoordinateAt(0, 1), 0);
+		Assert.assertEquals(1.0, ((Curve)multiPrimitive.getPrimitiveAt(3)).getCoordinateAt(1, 0), 1);
+		Assert.assertEquals(1.0, ((Curve)multiPrimitive.getPrimitiveAt(3)).getCoordinateAt(1, 1), 1);
+		Assert.assertEquals(2.0, ((Curve)multiPrimitive.getPrimitiveAt(3)).getCoordinateAt(2, 0), 2);
+		Assert.assertEquals(1.0, ((Curve)multiPrimitive.getPrimitiveAt(3)).getCoordinateAt(2, 1), 1);
+	}	
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiPrimitiveTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiSurfaceTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiSurfaceTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiSurfaceTest.java	(revision 38288)
@@ -0,0 +1,90 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.aggregate;
+
+import junit.framework.Assert;
+
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class MultiSurfaceTest extends AbstractLibraryAutoInitTestCase {
+	private GeometryManager manager;
+	
+	final static private Logger logger = LoggerFactory.getLogger("org.gvsig");
+
+	protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();		
+	}
+	
+	public void testCreateMultiSurface2D() throws InstantiationException, IllegalAccessException, CreateGeometryException{
+		Surface surface1 = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM2D);
+		GeneralPathX generalPathX1 = new GeneralPathX();
+		generalPathX1.moveTo(0, 0);
+		generalPathX1.lineTo(1, 1);
+		generalPathX1.lineTo(2, 1);		
+		surface1.setGeneralPath(generalPathX1);	
+		
+		Surface surface2 = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM2D);		
+		GeneralPathX generalPathX2 = new GeneralPathX();
+		generalPathX2.moveTo(0, 0);
+		generalPathX2.lineTo(1, 1);
+		generalPathX2.lineTo(2, 1);		
+		surface2.setGeneralPath(generalPathX2);	
+		
+		MultiSurface multiSurface = (MultiSurface)manager.create(TYPES.MULTISURFACE, SUBTYPES.GEOM2D);
+		multiSurface.addSurface(surface1);
+		multiSurface.addSurface(surface2);
+				
+		Assert.assertEquals(2, multiSurface.getPrimitivesNumber());
+		Assert.assertEquals(0.0, ((Surface)multiSurface.getPrimitiveAt(0)).getCoordinateAt(0, 0), 0);
+		Assert.assertEquals(0.0, ((Surface)multiSurface.getPrimitiveAt(0)).getCoordinateAt(0, 1), 0);
+		Assert.assertEquals(1.0, ((Surface)multiSurface.getPrimitiveAt(0)).getCoordinateAt(1, 0), 1);
+		Assert.assertEquals(1.0, ((Surface)multiSurface.getPrimitiveAt(0)).getCoordinateAt(1, 1), 1);
+		Assert.assertEquals(2.0, ((Surface)multiSurface.getPrimitiveAt(0)).getCoordinateAt(2, 0), 2);
+		Assert.assertEquals(1.0, ((Surface)multiSurface.getPrimitiveAt(0)).getCoordinateAt(2, 1), 1);
+		
+		Assert.assertEquals(0.0, ((Surface)multiSurface.getPrimitiveAt(1)).getCoordinateAt(0, 0), 0);
+		Assert.assertEquals(0.0, ((Surface)multiSurface.getPrimitiveAt(1)).getCoordinateAt(0, 1), 0);
+		Assert.assertEquals(1.0, ((Surface)multiSurface.getPrimitiveAt(1)).getCoordinateAt(1, 0), 1);
+		Assert.assertEquals(1.0, ((Surface)multiSurface.getPrimitiveAt(1)).getCoordinateAt(1, 1), 1);
+		Assert.assertEquals(2.0, ((Surface)multiSurface.getPrimitiveAt(1)).getCoordinateAt(2, 0), 2);
+		Assert.assertEquals(1.0, ((Surface)multiSurface.getPrimitiveAt(1)).getCoordinateAt(2, 1), 1);
+	}	
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiSurfaceTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiPointTest.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiPointTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiPointTest.java	(revision 38288)
@@ -0,0 +1,80 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.aggregate;
+
+import junit.framework.Assert;
+
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class MultiPointTest extends AbstractLibraryAutoInitTestCase {
+	private GeometryManager manager;
+	
+	final static private Logger logger = LoggerFactory.getLogger("org.gvsig");
+
+	protected void doSetUp() throws Exception {
+		manager = GeometryLocator.getGeometryManager();		
+	}
+	
+	public void testCreateMultiPoint2D() throws InstantiationException, IllegalAccessException, CreateGeometryException{
+		Point point1 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM3D);
+		point1.setCoordinateAt(0, 1.0);
+		point1.setCoordinateAt(1, 2.0);
+		point1.setCoordinateAt(2, 3.0);
+		
+		Point point2 = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM3D);
+		point2.setCoordinateAt(0, 4.0);
+		point2.setCoordinateAt(1, 5.0);
+		point2.setCoordinateAt(2, 6.0);
+		
+		MultiPoint multiPoint = (MultiPoint)manager.create(TYPES.MULTIPOINT, SUBTYPES.GEOM2D);
+		multiPoint.addPoint(point1);
+		multiPoint.addPoint(point2);
+		
+		Assert.assertEquals(2, multiPoint.getPrimitivesNumber());
+		Assert.assertEquals(1.0, ((Point)multiPoint.getPrimitiveAt(0)).getX(), 0);
+		Assert.assertEquals(2.0, ((Point)multiPoint.getPrimitiveAt(0)).getY(), 0);
+		Assert.assertEquals(3.0, ((Point)multiPoint.getPrimitiveAt(0)).getCoordinateAt(2), 0);
+		Assert.assertEquals(4.0, ((Point)multiPoint.getPrimitiveAt(1)).getX(), 0);
+		Assert.assertEquals(5.0, ((Point)multiPoint.getPrimitiveAt(1)).getY(), 0);
+		Assert.assertEquals(6.0, ((Point)multiPoint.getPrimitiveAt(1)).getCoordinateAt(2), 0);
+		
+	}
+	
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src-test/org/gvsig/fmap/geom/aggregate/MultiPointTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/GeometryLocator.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/GeometryLocator.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/GeometryLocator.java	(revision 38288)
@@ -0,0 +1,96 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom;
+
+import org.gvsig.tools.locator.AbstractLocator;
+import org.gvsig.tools.locator.Locator;
+import org.gvsig.tools.locator.LocatorException;
+
+/**
+ * This Locator provides the entry point for the gvSIG 
+ * {@link GeometryManager}. 
+ * @see {@link Locator}
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class GeometryLocator extends AbstractLocator {
+
+	private static final String LOCATOR_NAME = "GeometryLocator";
+	
+	/**
+	 * GeometryManager name used by the locator to access the instance
+	 */
+	public static final String GEOMETRY_MANAGER_NAME = "GeometryManager";
+	
+	private static final String GEOMETRY_MANAGER_DESCRIPTION = "GeometryManager of gvSIG";
+	
+	/**
+	 * Unique instance.
+	 */
+	private static final GeometryLocator instance = new GeometryLocator();
+
+	/**
+	 * Return the singleton instance.
+	 *
+	 * @return the singleton instance
+	 */
+	public static GeometryLocator getInstance() {
+		return instance;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.gvsig.tools.locator.Locator#getLocatorName()
+	 */
+	public String getLocatorName() {
+		return LOCATOR_NAME;
+	}
+	
+	/**
+	 * Return a reference to {@link GeometryManager}.
+	 *
+	 * @return a reference to GeometryManager
+	 * @throws LocatorException
+	 *             if there is no access to the class or the class cannot be
+	 *             instantiated
+	 * @see Locator#get(String)
+	 */
+	public static GeometryManager getGeometryManager() throws LocatorException {
+		return (GeometryManager) getInstance().get(GEOMETRY_MANAGER_NAME);
+	}
+	
+	/**
+	 * Registers the Class implementing the {@link GeometryManager} interface.
+	 *
+	 * @param clazz
+	 *            implementing the GeometryManager interface
+	 */
+	public static void registerGeometryManager(Class clazz) {
+		getInstance().register(GEOMETRY_MANAGER_NAME, GEOMETRY_MANAGER_DESCRIPTION,
+				clazz);
+	}
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/GeometryLocator.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/GeometryLibrary.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/GeometryLibrary.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/GeometryLibrary.java	(revision 38288)
@@ -0,0 +1,71 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom;
+
+import org.cresques.ProjectionLibrary;
+
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.tools.ToolsLibrary;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dataTypes.DataTypesManager;
+import org.gvsig.tools.library.AbstractLibrary;
+import org.gvsig.tools.library.LibraryException;
+import org.gvsig.tools.locator.ReferenceNotRegisteredException;
+
+/**
+ * Registers the default implementation for {@link GeometryManager}.
+ * 
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class GeometryLibrary extends AbstractLibrary {
+
+    public void doRegistration() {
+        registerAsAPI(GeometryLibrary.class);
+        require(ToolsLibrary.class);
+        require(ProjectionLibrary.class);
+    }
+
+    protected void doInitialize() throws LibraryException {
+    }
+
+    protected void doPostInitialize() throws LibraryException {
+        // Validate there is any implementation registered.
+        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
+        if (geometryManager == null) {
+            throw new ReferenceNotRegisteredException(
+                GeometryLocator.GEOMETRY_MANAGER_NAME,
+                GeometryLocator.getInstance());
+        }
+        DataTypesManager dataTypesManager = ToolsLocator.getDataTypesManager();
+        dataTypesManager.addtype(DataTypes.GEOMETRY, "Geometry", "Geometry",
+            Geometry.class, null);
+        dataTypesManager.addtype(DataTypes.ENVELOPE, "Envelope", "Envelope",
+            Envelope.class, null);
+
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/GeometryLibrary.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkb/FromWKBGeometryOperationContext.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkb/FromWKBGeometryOperationContext.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkb/FromWKBGeometryOperationContext.java	(revision 38288)
@@ -0,0 +1,14 @@
+package org.gvsig.fmap.geom.operation.fromwkb;
+
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+
+public class FromWKBGeometryOperationContext extends GeometryOperationContext{
+	
+	public byte[] getData() {
+		return (byte[])super.getAttribute("data");
+	}
+
+	public void setData(byte[] data) {
+		super.setAttribute("data", data);
+	}
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkb/WKBParser2.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkb/WKBParser2.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkb/WKBParser2.java	(revision 38288)
@@ -0,0 +1,430 @@
+/*
+ * WKBParser.java
+ * Based in
+ * PostGIS extension for PostgreSQL JDBC driver - Binary Parser
+ *
+ * NOTA: Es posible que lo mejor sea crear un PostGisGeometry que implemente
+ * la interfaz IGeometry, y as� nos sirve de base para tener IGeometries
+ * que encapsulan otras posibles geometr�as. Por ejemplo, un JTSGeometry.
+ * De esta forma, un driver no necesitar�a reescribirse.
+ *
+ * (C) 2005 Markus Schaber, schabios@logi-track.com
+ *
+ * This library is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation, either version 2.1 of the License.
+ *
+ * This library is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at
+ * http://www.gnu.org.
+ *
+ * $Id: WKBParser2.java 15669 2007-10-30 16:19:37Z vcaballero $
+ */
+package org.gvsig.fmap.geom.operation.fromwkb;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+
+import com.vividsolutions.jts.io.WKBConstants;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.aggregate.MultiPoint;
+import org.gvsig.fmap.geom.aggregate.MultiPrimitive;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.OrientablePrimitive;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.Primitive;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.fmap.geom.primitive.impl.Point2D;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException;
+import org.gvsig.fmap.geom.type.GeometryTypeNotValidException;
+
+/**
+ * Parse binary representation of geometries. Currently, only text rep (hexed)
+ * implementation is tested.
+ *
+ * It should be easy to add char[] and CharSequence ByteGetter instances,
+ * although the latter one is not compatible with older jdks.
+ *
+ * I did not implement real unsigned 32-bit integers or emulate them with long,
+ * as both java Arrays and Strings currently can have only 2^31-1 elements
+ * (bytes), so we cannot even get or build Geometries with more than approx.
+ * 2^28 coordinates (8 bytes each).
+ *
+ * @author markus.schaber@logi-track.com
+ *
+ */
+public class WKBParser2 {
+
+    private static final Logger LOG = LoggerFactory.getLogger(WKBParser2.class);
+
+	private GeometryManager geomManager = GeometryLocator.getGeometryManager();
+    private boolean gHaveM, gHaveZ, gHaveS; // M, Z y SRID
+    private GeometryType[] pointGeometryTypes;
+
+    /**
+     * @throws GeometryTypeNotValidException
+     * @throws GeometryTypeNotSupportedException
+     * 
+     */
+    public WKBParser2() {
+        pointGeometryTypes =
+            new GeometryType[] {
+                loadPointGeometryType(Geometry.SUBTYPES.GEOM2D, "2D"),
+                loadPointGeometryType(Geometry.SUBTYPES.GEOM3D, "3D"),
+                loadPointGeometryType(Geometry.SUBTYPES.GEOM2DM, "2DM"),
+                loadPointGeometryType(Geometry.SUBTYPES.GEOM3DM, "3DM") };
+    }
+
+    private GeometryType loadPointGeometryType(int subtype, String subTypeName) {
+        try {
+            return geomManager.getGeometryType(Geometry.TYPES.POINT, subtype);
+        } catch (Exception e) {
+            LOG.warn("Unable to get a reference to the geometry "
+                + "type Point{}, to be cached", subTypeName);
+            return null;
+        }
+    }
+
+    /**
+     * Parse a binary encoded geometry.
+     * 
+     * Is synchronized to protect offset counter. (Unfortunately, Java does not
+     * have neither call by reference nor multiple return values.)
+     * 
+     * @throws CreateGeometryException
+     */
+    public synchronized Geometry parse(byte[] value) throws CreateGeometryException {
+        // BinaryByteGetter bytes = new ByteGetter.BinaryByteGetter(value);
+        ByteBuffer buf = ByteBuffer.wrap(value);
+        return parseGeometry(buf);
+    }
+
+    protected void parseTypeAndSRID(ByteBuffer data)
+    {
+        byte endian = data.get(); //skip and test endian flag
+        /* if (endian != data.endian) {
+            throw new IllegalArgumentException("Endian inconsistency!");
+        } */
+        int typeword = data.getInt();
+
+        int realtype = typeword & 0x1FFFFFFF; //cut off high flag bits
+
+        gHaveZ = (typeword & 0x80000000) != 0;
+        gHaveM = (typeword & 0x40000000) != 0;
+        gHaveS = (typeword & 0x20000000) != 0;
+
+        int srid = -1;
+
+        if (gHaveS) {
+            srid = data.getInt();
+        }
+
+    }
+
+
+    /** Parse a geometry starting at offset. 
+     * @throws CreateGeometryException */
+    protected Geometry parseGeometry(ByteBuffer data) throws CreateGeometryException {
+        byte endian = data.get(); //skip and test endian flag
+        if (endian == 1)
+        {
+        	data.order(ByteOrder.LITTLE_ENDIAN);
+        }
+        /* if (endian != data.endian) {
+            throw new IllegalArgumentException("Endian inconsistency!");
+        } */
+        int typeword = data.getInt();
+
+        int realtype = typeword & 0x1FFFFFFF; //cut off high flag bits
+
+        boolean haveZ = (typeword & 0x80000000) != 0;
+        boolean haveM = (typeword & 0x40000000) != 0;
+        boolean haveS = (typeword & 0x20000000) != 0;
+
+        int srid = -1;
+
+        if (haveS) {
+            srid = data.getInt();
+        }
+        Geometry result1;
+        switch (realtype) {
+        case WKBConstants.wkbPoint :
+        	result1 = parsePoint(data, haveZ, haveM);
+            break;
+        case WKBConstants.wkbLineString :
+            result1 = parseLineString(data, haveZ, haveM);
+            break;
+        case WKBConstants.wkbPolygon :
+            result1 = parsePolygon(data, haveZ, haveM);
+            break;
+        case WKBConstants.wkbMultiPoint:
+            result1 = parseMultiPoint(data);
+            break;
+        case WKBConstants.wkbMultiLineString:
+            result1 = parseMultiLineString(data);
+            break;
+        case WKBConstants.wkbMultiPolygon:
+            result1 = parseMultiPolygon(data);
+            break;
+        case WKBConstants.wkbGeometryCollection :
+            result1 = parseCollection(data);
+            break;
+        default :
+            throw new IllegalArgumentException("Unknown Geometry Type!");
+        }
+
+        /*Geometry result = result1;
+
+        if (haveS) {
+            result.setSrid(srid);
+        } */
+        return result1;
+    }
+
+    private Point parsePoint(ByteBuffer data, boolean haveZ, boolean haveM)
+        throws CreateGeometryException {
+        double x = data.getDouble();
+        double y = data.getDouble();
+        Point point;
+
+        int subtype = getSubType(haveZ, haveM);
+
+        // If we have a cached GeometryType use it, otherwise call the manager
+        point =
+            (Point) (pointGeometryTypes[subtype] == null ? geomManager.create(
+                Geometry.TYPES.POINT, subtype) : pointGeometryTypes[subtype]
+                .create());
+        point.setX(x);
+        point.setY(y);
+
+        // Other dimensions
+        if (haveZ) {
+            point.setCoordinateAt(Geometry.DIMENSIONS.Z, data.getDouble());
+            if (haveM) {
+                point.setCoordinateAt(Geometry.DIMENSIONS.Z + 1,
+                    data.getDouble());
+            }
+        } else {
+            if (haveM) {
+                point.setCoordinateAt(Geometry.DIMENSIONS.Y + 1,
+                    data.getDouble());
+            }
+        }
+
+        return point;
+    }
+
+    /**
+     * @param haveZ
+     * @param haveM
+     * @return
+     */
+    private int getSubType(boolean haveZ, boolean haveM) {
+        int subtype =
+            haveZ ? (haveM ? Geometry.SUBTYPES.GEOM3DM
+                : Geometry.SUBTYPES.GEOM3D) : (haveM
+                ? Geometry.SUBTYPES.GEOM2DM : Geometry.SUBTYPES.GEOM2D);
+        return subtype;
+    }
+
+    /** Parse an Array of "full" Geometries 
+     * @throws CreateGeometryException */
+    private void parseGeometryArray(ByteBuffer data, Geometry[] container) throws CreateGeometryException {
+        for (int i = 0; i < container.length; i++) {
+            container[i] = parseGeometry(data);
+        }
+    }
+
+    /**
+     * Parse an Array of "slim" Points (without endianness and type, part of
+     * LinearRing and Linestring, but not MultiPoint!
+     * 
+     * @param haveZ
+     * @param haveM
+     * @throws CreateGeometryException
+     */
+    private Point[] parsePointArray(ByteBuffer data, boolean haveZ,
+        boolean haveM) throws CreateGeometryException {
+        int count = data.getInt();
+        Point[] result = new Point[count];
+        for (int i = 0; i < count; i++) {
+            result[i] = parsePoint(data, haveZ, haveM);
+        }
+        return result;
+    }
+
+    private double[][] parsePointsAsDoubleArray(ByteBuffer data, boolean haveZ,
+        boolean haveM) throws CreateGeometryException {
+        int count = data.getInt();
+        double points[][] = null;
+        int subtype = getSubType(haveZ, haveM);
+
+        switch (subtype) {
+        case Geometry.SUBTYPES.GEOM2D:
+            points = new double[count][2];
+            break;
+        case Geometry.SUBTYPES.GEOM3D:
+        case Geometry.SUBTYPES.GEOM2DM:
+            points = new double[count][3];
+            break;
+        case Geometry.SUBTYPES.GEOM3DM:
+            points = new double[count][4];
+            break;
+        default:
+            break;
+        }
+
+        for (int i = 0; i < count; i++) {
+            points[i][0] = data.getDouble(); // x
+            points[i][1] = data.getDouble(); // y
+            switch (subtype) {
+            case Geometry.SUBTYPES.GEOM3D:
+            case Geometry.SUBTYPES.GEOM2DM:
+                points[i][2] = data.getDouble(); // z or m
+                break;
+            case Geometry.SUBTYPES.GEOM3DM:
+                points[i][2] = data.getDouble(); // z
+                points[i][3] = data.getDouble(); // m
+                break;
+            default:
+                break;
+            }
+        }
+        return points;
+    }
+
+    private MultiPoint parseMultiPoint(ByteBuffer data) throws CreateGeometryException {
+    	MultiPoint multipoint = (MultiPoint) geomManager.create(TYPES.MULTIPOINT, SUBTYPES.GEOM2D);
+    	Point2D[] points = new Point2D[data.getInt()];
+        for (int i=0; i < points.length; i++)
+        {
+        	parseTypeAndSRID(data);
+        	multipoint.addPoint(parsePoint(data, gHaveZ, gHaveM));
+        }
+        return multipoint;
+    }
+
+    private Curve parseLineString(ByteBuffer data, boolean haveZ, boolean haveM) throws CreateGeometryException {
+        Point[] points = parsePointArray(data, haveZ, haveM);
+        Curve curve = (Curve) geomManager.create(TYPES.CURVE, getSubType(haveZ, haveM));    
+        curve.addMoveToVertex(points[0]);
+        for (int i = 1; i< points.length; i++)
+        {
+            curve.addVertex(points[i]);
+        }
+        return curve;
+    }
+
+    private void fillLinearRing(ByteBuffer data, OrientablePrimitive orientablePrimitive, boolean haveZ, boolean haveM) throws CreateGeometryException {
+        Point[] points = parsePointArray(data, haveZ, haveM);
+       
+        orientablePrimitive.addMoveToVertex(points[0]);
+        int lastPoint = points.length - 1;
+        for (int i = 1; i< lastPoint; i++)
+        {
+            orientablePrimitive.addVertex(points[i]);
+        }        
+    }
+
+    private Surface parsePolygon(ByteBuffer data, boolean haveZ, boolean haveM) throws CreateGeometryException {
+	        int count = data.getInt();
+	        int subType = getSubType(haveZ, haveM);        
+	        
+	        Surface surface = (Surface) geomManager.create(TYPES.SURFACE, subType);
+	        	      
+	        for (int i = 0; i < count; i++) {
+	            fillLinearRing(data, surface, haveZ, haveM); 
+	        }
+	        	   
+	        surface.closePrimitive();	        
+	       
+			return surface;
+	 }
+    
+    private Curve parseMultiLineString(ByteBuffer data) throws CreateGeometryException {
+        Curve curve = (Curve) geomManager.create(TYPES.CURVE, getSubType(gHaveZ, gHaveM));
+        fillOrientablePrimitive(data, curve);
+        return curve;
+    }
+
+    /**
+     * @param data
+     * @return
+     * @throws CreateGeometryException
+     */
+    private void fillOrientablePrimitive(ByteBuffer data, OrientablePrimitive orientablePrimitive)
+        throws CreateGeometryException {
+		int count = data.getInt();
+         
+        for (int i=0; i < count; i++)
+        {
+            parseTypeAndSRID(data);
+            Point[] points = parsePointArray(data, gHaveZ, gHaveM);
+ 
+            orientablePrimitive.addMoveToVertex(points[0]);
+            for (int j = 1; j < points.length; j++) {
+                orientablePrimitive.addVertex(points[j]);
+            }           
+        }		
+	}
+
+    private Surface parseMultiPolygon(ByteBuffer data)
+        throws CreateGeometryException {
+        int count = data.getInt();
+        
+        int subType = getSubType(gHaveZ, gHaveM);        
+        Surface surface = (Surface)geomManager.create(TYPES.SURFACE, subType);        
+        
+        Point point;
+        for (int i = 0; i < count; i++) {
+            parseTypeAndSRID(data);
+            int countRings = data.getInt();            
+            for (int j = 0; j < countRings; j++) {
+                double[][] points =
+                    parsePointsAsDoubleArray(data, gHaveZ, gHaveM);
+                
+                //Add the initial point
+                surface.addMoveToVertex(geomManager.createPoint(points[0][0], points[0][1], subType));
+                
+                //Add the other points
+                int lastPoint = points.length - 1;
+                for (int k=1 ; k<lastPoint ; k++){                    
+                    point = geomManager.createPoint(points[k][0], points[k][1], subType);
+                    for (int l=2 ; l<points[k].length ; i++){
+                        point.setCoordinateAt(l, points[k][l]);
+                    }
+                    surface.addVertex(point);
+                }   
+                surface.closePrimitive();
+            }
+        }
+        return surface;
+    }
+
+    private MultiPrimitive parseCollection(ByteBuffer data) throws CreateGeometryException {
+        int count = data.getInt();
+        Geometry[] geoms = new Geometry[count];
+        parseGeometryArray(data, geoms);
+        MultiPrimitive multiPrimitive = (MultiPrimitive) geomManager.create(TYPES.AGGREGATE, SUBTYPES.GEOM2D);
+        for (int i=0 ; i<geoms.length ; i++){
+        	multiPrimitive.addPrimitive((Primitive) geoms[i]);
+        }
+        return multiPrimitive;
+    }	
+}
\ No newline at end of file
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkb/FromWKB.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkb/FromWKB.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkb/FromWKB.java	(revision 38288)
@@ -0,0 +1,72 @@
+
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA  02110-1301, USA.
+*
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* ${year} IVER T.I. S.A.   {{Task}}
+*/
+
+package org.gvsig.fmap.geom.operation.fromwkb;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class FromWKB extends GeometryOperation {
+    public static final String NAME = GeometryManager.OPERATIONS.FROMWKB;
+    
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);
+	private static WKBParser2 wkbParser = new WKBParser2();
+   
+	/* (non-Javadoc)
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.geom.operation.GeometryOperationContext)
+     */
+    public Object invoke(Geometry geom, GeometryOperationContext ctx)
+        throws GeometryOperationException {
+        byte[] data = (byte[])ctx.getAttribute("data");
+
+        try {
+			return geom = wkbParser.parse(data);
+		} catch (CreateGeometryException e) {
+			return new GeometryOperationException(e);
+		}
+    }
+
+    /* (non-Javadoc)
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex()
+     */
+    public int getOperationIndex() {
+        return CODE;
+    }
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/isCCW/IsCCW.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/isCCW/IsCCW.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/isCCW/IsCCW.java	(revision 38288)
@@ -0,0 +1,104 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2008 PRODEVELOP S.L. Main Development
+*/
+ 
+/**
+ * 
+ */
+package org.gvsig.fmap.geom.operation.isCCW;
+
+import java.awt.geom.PathIterator;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.util.Converter;
+
+import com.vividsolutions.jts.algorithm.CGAlgorithms;
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.CoordinateList;
+
+/**
+ * This class checks if the first part from the General Path of a complex geometry is CCW.
+ * @return Boolean <code>true<code> if is CCW
+ * @author Carlos S�nchez Peri��n <a href = "mailto:csanchez@prodevelop.es"> e-mail </a>
+ */
+public class IsCCW extends GeometryOperation{
+    public static final String NAME = "isCCW";
+    private static GeometryManager geomManager = GeometryLocator.getGeometryManager();
+    public static final int CODE = geomManager.getGeometryOperationCode(NAME);
+	
+	private GeneralPathX generalPathX = null;	
+	
+	public int getOperationIndex() {
+		return CODE;
+	}
+
+	public Object invoke(Geometry geom, GeometryOperationContext ctx) throws GeometryOperationException {
+		generalPathX = geom.getGeneralPath();
+		if(generalPathX == null){
+			//if there isn't path the operation hasn't sense.
+			return null;
+    	}
+		PathIterator theIterator = generalPathX.getPathIterator(null, geomManager.getFlatness()); //polyLine.getPathIterator(null, flatness);
+		double[] theData = new double[6];
+        Coordinate first = null;
+        CoordinateList coordList = new CoordinateList();
+        Coordinate c1;
+        boolean bFirst = true;
+		while (!theIterator.isDone()) {
+			//while not done
+			int type = theIterator.currentSegment(theData);
+        	switch (type)
+        	{
+        	case GeneralPathX.SEG_MOVETO:
+        		c1= new Coordinate(theData[0], theData[1]);
+        		if (bFirst == false) // Ya tenemos la primera parte.
+        			break;
+        		if (bFirst)
+        		{
+        			bFirst=false;
+        			first = c1;
+        		}
+        		coordList.add(c1, true);
+        		break;
+        	case GeneralPathX.SEG_LINETO:
+        		c1= new Coordinate(theData[0], theData[1]);
+        		coordList.add(c1, true);
+        		break;
+
+        	}
+        	theIterator.next();
+		}
+		coordList.add(first, true);
+		return new Boolean(CGAlgorithms.isCCW(coordList.toCoordinateArray()));
+	}
+
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/area/Area.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/area/Area.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/area/Area.java	(revision 38288)
@@ -0,0 +1,56 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.operation.area;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+
+
+/**
+ * @author gvSIG Team
+ * @version $Id$
+ *
+ */
+public class Area extends GeometryOperation {
+    public static final String NAME = "area";
+    public static final int CODE = GeometryLocator.getGeometryManager().
+        getGeometryOperationCode(NAME);
+    
+    public Object invoke(Geometry geom, GeometryOperationContext ctx)
+        throws GeometryOperationException {
+        com.vividsolutions.jts.geom.Geometry jtsGeometry;
+        try {
+            jtsGeometry = (com.vividsolutions.jts.geom.Geometry)geom.invokeOperation("toJTS", null);
+        } catch (GeometryOperationNotSupportedException e) {
+           throw new GeometryOperationException(e);
+        }
+        return new Double(jtsGeometry.getArea());
+    }
+
+    public int getOperationIndex() {
+        return CODE;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/area/Area.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkt/ToWKT.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkt/ToWKT.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkt/ToWKT.java	(revision 38288)
@@ -0,0 +1,32 @@
+package org.gvsig.fmap.geom.operation.towkt;
+
+import com.vividsolutions.jts.io.WKTWriter;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.operation.tojts.ToJTS;
+
+public class ToWKT extends GeometryOperation {
+    public static final String NAME = "toWKT";
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);
+	
+	private static WKTWriter writer = new WKTWriter();
+
+	public Object invoke(Geometry geom, GeometryOperationContext ctx) throws GeometryOperationException {
+		try {
+            return writer.write((com.vividsolutions.jts.geom.Geometry)geom.invokeOperation(ToJTS.CODE, null));
+        } catch (GeometryOperationNotSupportedException e) {
+           throw new GeometryOperationException(e);
+        }
+	}
+
+	public int getOperationIndex() {
+		return CODE;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkt/ToWKT.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperationException.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperationException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperationException.java	(revision 38288)
@@ -0,0 +1,112 @@
+package org.gvsig.fmap.geom.operation;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.gvsig.tools.exception.BaseException;
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id: GeometryOperationException.java,v 1.1 2008/03/12 08:46:21 cvs Exp $
+ * $Log: GeometryOperationException.java,v $
+ * Revision 1.1  2008/03/12 08:46:21  cvs
+ * *** empty log message ***
+ *
+ *
+ */
+/**
+ * @author Jorge Piera Llodr� (jorge.piera@iver.es)
+ */
+public class GeometryOperationException extends BaseException {
+
+	/**
+	 * Generated serial version UID
+	 */
+	private static final long serialVersionUID = 8230919748601156772L;
+	private static final String MESSAGE_KEY = "geometry_operation_exception";
+	private static final String FORMAT_STRING =
+		"Exception executing the operation with code %(operationCode) for the geometry with type %(geometryType).";
+
+	private int geometryType = -1;
+	private int operationCode = -1;
+
+	/**
+	 * Constructor with some context data for cases in which the root cause of
+	 * <code>this</code> is internal (usually an unsatisfied logic rule).
+	 * @param geometryType
+	 * @param operationCode
+	 */
+	public GeometryOperationException(int geometryType, int operationCode){
+		this(geometryType, operationCode, null);
+	}
+
+	/**
+	 * Constructor to use when <code>this</code> is caused by another Exception
+	 * but there is not further context data available.
+	 * @param e
+	 */
+	public GeometryOperationException(Exception e) {
+		this(-1, -1, e);
+	}
+
+	/**
+	 * Main constructor that provides both context data and a cause Exception
+	 * @param geometryType
+	 * @param operationCode
+	 * @param exp
+	 */
+	public GeometryOperationException(int geometryType, int operationCode, Exception e) {
+		super(FORMAT_STRING, e, MESSAGE_KEY, serialVersionUID);
+
+		this.geometryType = geometryType;
+		this.operationCode = operationCode;
+	}
+
+	protected Map values() {
+		HashMap map = new HashMap();
+		map.put("geometryType", String.valueOf(geometryType));
+		map.put("operationCode", String.valueOf(operationCode));
+		return map;
+	}
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperationException.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/ensureOrientation/EnsureOrientation.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/ensureOrientation/EnsureOrientation.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/ensureOrientation/EnsureOrientation.java	(revision 38288)
@@ -0,0 +1,209 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2008 PRODEVELOP S.L. Main Development
+*/
+ 
+package org.gvsig.fmap.geom.operation.ensureOrientation;
+
+import com.vividsolutions.jts.algorithm.CGAlgorithms;
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.CoordinateList;
+import com.vividsolutions.jts.geom.CoordinateSequences;
+import com.vividsolutions.jts.geom.impl.CoordinateArraySequence;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+
+/**
+ * Use this function class to ensure you get real polygons or holes
+ * En JTS, con bCCW = false obtienes un poligono exterior.
+ * Nota: Solo se le da la vuelta (si es que lo necesita) al
+ * poligono exterior. El resto, por ahora, no se tocan.
+ * Si se necesita tenerlos en cuenta, habr�a que mirar
+ * si est�n dentro del otro, y entonces revisar que tiene
+ * un CCW contrario al exterior.
+ * @param bCCW true if you want the GeneralPath in CCW order
+ * @return true si se le ha dado la vuelta. (true if flipped)
+ * TODO: TERMINAR ESTO!! NO EST� COMPLETO!! NO sirve para multipoligonos
+ */
+/**
+ * @author Carlos S�nchez Peri��n <a href = "mailto:csanchez@prodevelop.es"> e-mail </a>
+ */
+public class EnsureOrientation extends GeometryOperation{
+    public static final String NAME = "ensureOrientation";
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);
+	
+	private GeneralPathX generalPathX = null;
+	
+	private Boolean bCCW;
+		
+	public int getOperationIndex() {
+		return CODE;
+	}
+
+	public Object invoke(Geometry geom, GeometryOperationContext ctx)throws GeometryOperationException {
+		bCCW = (Boolean) ctx.getAttribute("bCCW");
+		if (bCCW==null)
+			throw new GeometryOperationException(new Exception("The function Parameter hasn't been passed or is null."));
+		
+		generalPathX = geom.getGeneralPath();
+		if (generalPathX==null){
+			//if there isn't path the operation hasn't sense.
+			return null;
+		}
+		
+        byte[] pointTypesAux = new byte[generalPathX.getNumTypes()+1];
+        double[] pointCoordsAux = new double[(generalPathX.getNumCoords() * 2) + 2];
+        int i;
+        int pointIdx = 0;
+
+        Coordinate c1, c2, c3;
+        CoordinateList coordList = new CoordinateList();
+        CoordinateList firstList = new CoordinateList();
+        boolean bFirstList = true;
+        Coordinate cInicio = null;
+
+        for (i=0; i< generalPathX.getNumTypes(); i++)
+        {
+        	int type = generalPathX.getTypeAt(i);
+
+        	switch (type)
+        	{
+        	case GeneralPathX.SEG_MOVETO:
+        		c1= new Coordinate(generalPathX.getPointAt(pointIdx).getX(), generalPathX.getPointAt(pointIdx).getY());
+        		cInicio = c1;
+        		coordList.add(c1, true);
+        		if (i>0) bFirstList = false;
+        		if (bFirstList)
+        		{
+        			firstList.add(c1,true);
+        		}
+        		break;
+        	case GeneralPathX.SEG_LINETO:
+        		c1= new Coordinate(generalPathX.getPointAt(pointIdx).getX(), generalPathX.getPointAt(pointIdx).getY());
+        		coordList.add(c1, true);
+        		if (bFirstList)
+        		{
+        			firstList.add(c1,true);
+        		}
+        		break;
+        	case GeneralPathX.SEG_QUADTO:
+        		c1= new Coordinate(generalPathX.getPointAt(pointIdx).getX(), generalPathX.getPointAt(pointIdx).getY());
+        		coordList.add(c1, true);
+        		c2= new Coordinate(generalPathX.getPointAt(pointIdx+1).getX(),generalPathX.getPointAt(pointIdx+1).getY());
+        		coordList.add(c2, true);
+        		if (bFirstList)
+        		{
+        			firstList.add(c1,true);
+        			firstList.add(c2,true);
+        		}
+
+        		break;
+        	case GeneralPathX.SEG_CUBICTO:
+        		c1= new Coordinate(generalPathX.getPointAt(pointIdx).getX(), generalPathX.getPointAt(pointIdx).getY());
+        		coordList.add(c1, true);
+        		c2= new Coordinate(generalPathX.getPointAt(pointIdx+1).getX(),generalPathX.getPointAt(pointIdx+1).getY());
+        		coordList.add(c2, true);
+        		c3= new Coordinate(generalPathX.getPointAt(pointIdx+2).getX(),generalPathX.getPointAt(pointIdx+2).getY());
+        		coordList.add(c3, true);
+        		if (bFirstList)
+        		{
+        			firstList.add(c1,true);
+        			firstList.add(c2,true);
+        			firstList.add(c3,true);
+        		}
+
+        		break;
+        	case GeneralPathX.SEG_CLOSE:
+        		coordList.add(cInicio, true);
+        		if (bFirstList)
+        		{
+        			firstList.add(cInicio,true);
+        		}
+        		break;
+
+        	}
+        	pointIdx += GeneralPathX.curvesize[type];
+        }
+		// Guardamos el path dandole la vuelta
+		Coordinate[] coords = coordList.toCoordinateArray();
+		boolean bFlipped = false;
+		if (CGAlgorithms.isCCW(coords) != bCCW.booleanValue()) // Le damos la vuelta
+		{
+			CoordinateArraySequence seq = new CoordinateArraySequence(coords);
+			CoordinateSequences.reverse(seq);
+			coords = seq.toCoordinateArray();
+
+
+			// En el primer punto metemos un moveto
+			pointCoordsAux[0] = coords[0].x;
+			pointCoordsAux[1] = coords[0].y;
+			pointTypesAux[0] = GeneralPathX.SEG_MOVETO;
+			int idx = 2;
+			i=0;
+			int j=1;
+			for (int k=0; k < coords.length; k++)
+			{
+				pointCoordsAux[idx++] = coords[k].x;
+				pointCoordsAux[idx++] = coords[k].y;
+	        	int type = generalPathX.getTypeAt(i++);
+	        	pointIdx += GeneralPathX.curvesize[type];
+	        	switch (type)
+	        	{
+	        	case GeneralPathX.SEG_MOVETO:
+	        		pointTypesAux[j] = GeneralPathX.SEG_LINETO;
+	        		break;
+	        	case GeneralPathX.SEG_LINETO:
+	        		pointTypesAux[j] = GeneralPathX.SEG_LINETO;
+	        		break;
+	        	case GeneralPathX.SEG_QUADTO:
+	        		pointTypesAux[j] = GeneralPathX.SEG_QUADTO;
+	        		break;
+	        	case GeneralPathX.SEG_CUBICTO:
+	        		pointTypesAux[j] = GeneralPathX.SEG_CUBICTO;
+	        		break;
+	        	case GeneralPathX.SEG_CLOSE:
+	        		// TODO: IMPLEMENTAR ESTO!!!
+	        		break;
+
+	        	}
+	        	j++;
+
+			}
+			generalPathX.setPointTypes(pointTypesAux);
+			generalPathX.setPointCoords(pointCoordsAux);
+	        generalPathX.setNumCoords(generalPathX.getNumCoords()+2);
+	        generalPathX.setNumTypes(generalPathX.getNumTypes()+1);
+	        bFlipped  = true;
+		}
+		return new Boolean((boolean) bFlipped);
+	}
+
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromjts/FromJTS.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromjts/FromJTS.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromjts/FromJTS.java	(revision 38288)
@@ -0,0 +1,55 @@
+package org.gvsig.fmap.geom.operation.fromjts;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.util.Converter;
+
+/**
+ * <p>
+ * Converts a geometry from JTS to DAL format. This is a special geometry operation
+ * because don't use the Geometry parameter and returns a JTS geometry. This kind
+ * of operation can be called from the {@link GeometryManager} using invokeOperation.
+ * </p>
+ * <p>
+ * This operation needs a JTS geometry loaded in the context. The only attribute
+ * of the {@link GeometryOperation} have to be a geometry of this type and the ID 
+ * of this attribute will be JTSGeometry.
+ * </p>
+ * 
+ * @author Nacho Brodin (nachobrodin@gmail.com)
+ *
+ */
+public class FromJTS extends GeometryOperation {
+    public static final String NAME  = "fromJTS";
+    public static final String PARAM = "JTSGeometry";
+	protected static GeometryManager geomManager = GeometryLocator.getGeometryManager();
+    public static final int CODE = geomManager.getGeometryOperationCode(NAME);	
+	protected final static com.vividsolutions.jts.geom.GeometryFactory geomFactory = new com.vividsolutions.jts.geom.GeometryFactory();
+
+	public int getOperationIndex() {
+		return CODE;
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invoke(Geometry geom, GeometryOperationContext ctx)
+			throws GeometryOperationException {
+		Object obj = ctx.getAttribute("JTSGeometry");
+		if(obj instanceof com.vividsolutions.jts.geom.Geometry) {
+			try {
+				return Converter.jtsToGeometry((com.vividsolutions.jts.geom.Geometry)obj);
+			} catch (CreateGeometryException e) {
+				throw new GeometryOperationException(e); 
+			}
+		}
+		return null;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromjts/FromJTS.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBEncodingException.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBEncodingException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBEncodingException.java	(revision 38288)
@@ -0,0 +1,33 @@
+package org.gvsig.fmap.geom.operation.towkb;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.gvsig.tools.exception.BaseException;
+
+public abstract class WKBEncodingException extends BaseException {
+
+	/**
+	 *
+	 */
+	private static final long serialVersionUID = -7340057779411755446L;
+
+	protected Map values = new HashMap();
+
+	public WKBEncodingException(String messageFormat, Throwable cause,
+			String messageKey, long code) {
+		super(messageFormat, cause, messageKey, code);
+	}
+
+	public WKBEncodingException(String messageFormat, String messageKey, long code) {
+		super(messageFormat, messageKey, code);
+	}
+
+	protected void setValue(String name, String value) {
+		this.values.put(name, value);
+	}
+
+	protected Map values() {
+		return this.values;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBEncodingException.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/ToWKBOperationContext.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/ToWKBOperationContext.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/ToWKBOperationContext.java	(revision 38288)
@@ -0,0 +1,61 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA  02110-1301, USA.
+*
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 IVER T.I   {{Task}}
+*/
+
+/**
+ *
+ */
+package org.gvsig.fmap.geom.operation.towkb;
+
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+
+/**
+ * @author jmvivo
+ *
+ */
+public class ToWKBOperationContext extends GeometryOperationContext {
+	private int srID = -1;
+
+	/**
+	 * Set the srID to use in the WKB geometry
+	 * 
+	 * @param srID
+	 */
+	public void setSrID(int srID) {
+		this.srID = srID;
+	}
+
+	/**
+	 * Get the srId to use in the WKB geometry
+	 * 
+	 * @return
+	 */
+	public int getSrID() {
+		return srID;
+	}
+
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/ToWKBOperationContext.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/ToWKBNative.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/ToWKBNative.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/ToWKBNative.java	(revision 38288)
@@ -0,0 +1,29 @@
+package org.gvsig.fmap.geom.operation.towkb;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+
+public class ToWKBNative extends GeometryOperation {
+    public static final String NAME = "toWKBNative";
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);
+	
+	private static WKBEncoder encoder = new WKBEncoder();
+
+	public Object invoke(Geometry geom, GeometryOperationContext ctx)
+			throws GeometryOperationException {
+		try {
+			return encoder.encode(geom);
+		} catch (Exception e) {
+			throw new GeometryOperationException(e);
+		}
+	}
+
+	public int getOperationIndex() {
+		return CODE;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/ToWKBNative.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBMultyLineInLineDefinitionException.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBMultyLineInLineDefinitionException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBMultyLineInLineDefinitionException.java	(revision 38288)
@@ -0,0 +1,53 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA  02110-1301, USA.
+*
+*/
+
+
+package org.gvsig.fmap.geom.operation.towkb;
+
+import org.gvsig.fmap.geom.Geometry;
+
+public class WKBMultyLineInLineDefinitionException extends WKBEncodingException {
+
+	/**
+	 * Generated serial version UID
+	 */
+	private static final long serialVersionUID = -4562404266549127771L;
+
+	/**
+	 * Key to retrieve this exception's message
+	 */
+	private static final String MESSAGE_KEY = "wkb_move_in_middle_of_line_exception";
+	private static final String FORMAT_STRING =
+		"MoveTo segment in middle of a single line";
+
+	/**
+	 * Class name of the geometry type. Should never be null in this exception
+	 */
+	public Geometry geometry = null;
+
+
+	public WKBMultyLineInLineDefinitionException(Geometry geom) {
+		super(FORMAT_STRING, MESSAGE_KEY, serialVersionUID);
+		this.geometry = geom;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBMultyLineInLineDefinitionException.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBEncoder.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBEncoder.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBEncoder.java	(revision 38288)
@@ -0,0 +1,502 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA  02110-1301, USA.
+*
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 IVER T.I   {{Task}}
+*/
+
+package org.gvsig.fmap.geom.operation.towkb;
+
+import java.awt.geom.PathIterator;
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.aggregate.Aggregate;
+import org.gvsig.fmap.geom.aggregate.MultiCurve;
+import org.gvsig.fmap.geom.aggregate.MultiPoint;
+import org.gvsig.fmap.geom.aggregate.MultiSurface;
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException;
+
+
+
+public class WKBEncoder {
+
+	public interface wkbGeometryType {
+		public final static int wkbPoint = 1;
+		public final static int wkbLineString = 2;
+		public final static int wkbPolygon = 3;
+		public final static int wkbTriangle = 17;
+		public final static int wkbMultiPoint = 4;
+		public final static int wkbMultiLineString = 5;
+		public final static int wkbMultiPolygon = 6;
+		public final static int wkbGeometryCollection = 7;
+		public final static int wkbPolyhedralSurface = 15;
+		public final static int wkbTIN = 16;
+
+		public final static int wkbPointZ = 1001;
+		public final static int wkbLineStringZ = 1002;
+		public final static int wkbPolygonZ = 1003;
+		public final static int wkbTrianglez = 1017;
+		public final static int wkbMultiPointZ = 1004;
+		public final static int wkbMultiLineStringZ = 1005;
+		public final static int wkbMultiPolygonZ = 1006;
+		public final static int wkbGeometryCollectionZ = 1007;
+		public final static int wkbPolyhedralSurfaceZ = 1015;
+		public final static int wkbTINZ = 1016;
+
+		public final static int wkbPointM = 2001;
+		public final static int wkbLineStringM = 2002;
+		public final static int wkbPolygonM = 2003;
+		public final static int wkbTriangleM = 2017;
+		public final static int wkbMultiPointM = 2004;
+		public final static int wkbMultiLineStringM = 2005;
+		public final static int wkbMultiPolygonM = 2006;
+		public final static int wkbGeometryCollectionM = 2007;
+		public final static int wkbPolyhedralSurfaceM = 2015;
+		public final static int wkbTINM = 2016;
+
+		public final static int wkbPointZM = 3001;
+		public final static int wkbLineStringZM = 3002;
+		public final static int wkbPolygonZM = 3003;
+		public final static int wkbTriangleZM = 3017;
+		public final static int wkbMultiPointZM = 3004;
+		public final static int wkbMultiLineStringZM = 3005;
+		public final static int wkbMultiPolygonZM = 3006;
+		public final static int wkbGeometryCollectionZM = 3007;
+		public final static int wkbPolyhedralSurfaceZM = 3015;
+		public final static int wkbTinZM = 3016;
+
+		public final static int wkb_baseToZ = wkbPointZ - wkbPoint;
+		public final static int wkb_baseToM = wkbPointM - wkbPoint;
+		public final static int wkb_baseToZM = wkbPointZM - wkbPoint;
+	}
+
+	public interface wkbByteOrder {
+		public final static byte wkbXDR = 0;                // Big Endian
+		public final static byte wkbNDR = 1;                // Little Endian
+	}
+
+
+	public byte[] encode(Geometry geometry)
+			throws GeometryTypeNotSupportedException,
+			WKBEncodingException,
+			IOException {
+		ByteArrayOutputStream stream;
+
+		if (geometry.getType() == TYPES.POINT) {
+			stream = new ByteArrayOutputStream(50);
+		} else {
+			stream = new ByteArrayOutputStream(512);
+		}
+
+		encode(geometry, stream);
+		return stream.toByteArray();
+
+	}
+	public void encode(Geometry geometry, ByteArrayOutputStream stream)
+			throws GeometryTypeNotSupportedException, WKBEncodingException,
+			IOException {
+		encode(geometry, new DataOutputStream(stream));
+	}
+
+	public void encode(Geometry geometry, DataOutputStream stream)
+			throws GeometryTypeNotSupportedException,
+			WKBEncodingException,
+			IOException {
+		switch (geometry.getType()) {
+			case TYPES.POINT:
+				encodePoint(geometry, stream);
+				break;
+			case TYPES.MULTIPOINT:
+				encodeMultiPoint(geometry, stream);
+				break;
+
+			case TYPES.ARC:
+			case TYPES.CURVE:
+			case TYPES.CIRCLE:
+			case TYPES.ELLIPSE:
+			case TYPES.ELLIPTICARC:
+				encodeLineString(geometry, stream);
+				break;
+
+			case TYPES.MULTICURVE:
+				encodeMultiLineString(geometry, stream);
+				break;
+
+			case TYPES.SURFACE:
+				encodePolygon(geometry, stream);
+				break;
+
+			case TYPES.MULTISURFACE:
+				encodeMultiPolygon(geometry, stream);
+				break;
+
+			case TYPES.AGGREGATE:
+				encodeCollection(geometry, stream);
+				break;
+
+			default:
+				throw new GeometryTypeNotSupportedException(geometry.getType(),
+					geometry.getGeometryType().getSubType());
+		}
+
+		// FIXME geom.subtype != SUBTYPES.GEOM2D NOT SUPPORTED !!!!
+		if (geometry.getGeometryType().getSubType() != SUBTYPES.GEOM2D) {
+			throw new GeometryTypeNotSupportedException(geometry.getType(),
+					geometry.getGeometryType().getSubType());
+		}
+	}
+
+
+	private void encodeCollection(Geometry geometry, DataOutputStream stream)
+			throws GeometryTypeNotSupportedException,
+			WKBEncodingException,
+			IOException {
+		GeometryType geometryType = geometry.getGeometryType();
+		encodeWKBGeomHead(wkbGeometryType.wkbGeometryCollection, geometryType,
+				stream);
+
+		Aggregate collection = (Aggregate) geometry;
+
+		int nGeometries = collection.getPrimitivesNumber();
+		stream.writeInt(nGeometries);
+		for (int i = 0; i < nGeometries; i++) {
+			encode(collection.getPrimitiveAt(i), stream);
+		}
+	}
+
+	private void encodeMultiPolygon(Geometry geometry, DataOutputStream stream)
+			throws GeometryTypeNotSupportedException,
+			WKBPolygonNotClosedException, IOException {
+		GeometryType geometryType = geometry.getGeometryType();
+		encodeWKBGeomHead(wkbGeometryType.wkbMultiPolygon, geometryType, stream);
+
+		MultiSurface surfaces = (MultiSurface) geometry;
+
+		int nGeometries = surfaces.getPrimitivesNumber();
+		stream.writeInt(nGeometries);
+		for (int i = 0; i < nGeometries; i++) {
+			encodePolygon(surfaces.getPrimitiveAt(i), stream);
+		}
+	}
+
+	private void checkLinearRingIsClosed(Geometry geom, List linearRing)
+			throws WKBPolygonNotClosedException {
+		double[] first = (double[]) linearRing.get(0);
+		double[] last = (double[]) linearRing.get(linearRing.size() - 1);
+
+		for (int i = 0; i < first.length; i++) {
+			if (Math.abs(first[i] - last[i]) > 0.000001) {
+				throw new WKBPolygonNotClosedException(geom);
+			}
+		}
+
+	}
+
+	private List getLinearRings(Surface surface)
+			throws WKBPolygonNotClosedException {
+		PathIterator theIterator = surface.getPathIterator(null);
+		List linearRings = new ArrayList();
+		List curlinearRing = new ArrayList();
+		int theType;
+		double[] theData = new double[6];
+
+		while (!theIterator.isDone()) {
+			// while not done
+			theType = theIterator.currentSegment(theData);
+
+			// Populate a segment of the new
+			// GeneralPathX object.
+			// Process the current segment to populate a new
+			// segment of the new GeneralPathX object.
+			switch (theType) {
+			case PathIterator.SEG_MOVETO:
+				if (curlinearRing.size() != 0) {
+					if (curlinearRing.size() < 4) {
+						// FIXME exception
+						throw new WKBPolygonNotClosedException(surface);
+					}
+					checkLinearRingIsClosed(surface, curlinearRing);
+					linearRings.add(curlinearRing);
+					curlinearRing = new ArrayList();
+
+				}
+				curlinearRing.add(new double[] { theData[0], theData[1] });
+				break;
+
+			case PathIterator.SEG_LINETO:
+				curlinearRing.add(new double[] { theData[0], theData[1] });
+				break;
+
+			case PathIterator.SEG_QUADTO:
+				// TODO transform to linear segments
+				throw new IllegalArgumentException("SEG_QUADTO unsupported");
+
+				// shape.quadTo(theData[0], theData[1], theData[2], theData[3]);
+
+				// break;
+
+			case PathIterator.SEG_CUBICTO:
+				// TODO transform to linear segments
+				throw new IllegalArgumentException("SEG_QUADTO unsupported");
+				// shape.curveTo(theData[0], theData[1], theData[2], theData[3],
+				// theData[4], theData[5]);
+
+				// break;
+
+			case PathIterator.SEG_CLOSE:
+				curlinearRing.add(curlinearRing.get(0));
+				linearRings.add(curlinearRing);
+				curlinearRing = new ArrayList();
+				break;
+			} // end switch
+
+			theIterator.next();
+		}
+
+		if (curlinearRing.size() != 0) {
+			if (curlinearRing.size() < 4) {
+				// FIXME exception
+				throw new WKBPolygonNotClosedException(surface);
+			}
+			checkLinearRingIsClosed(surface, curlinearRing);
+			linearRings.add(curlinearRing);
+		}
+		return linearRings;
+	}
+
+	private List getLines(Curve curve) throws WKBEncodingException {
+		List lines = new ArrayList();
+		PathIterator theIterator = curve.getPathIterator(null);
+		List curlinearRing = new ArrayList();
+		int theType;
+		double[] theData = new double[6];
+
+		while (!theIterator.isDone()) {
+			// while not done
+			theType = theIterator.currentSegment(theData);
+
+			// Populate a segment of the new
+			// GeneralPathX object.
+			// Process the current segment to populate a new
+			// segment of the new GeneralPathX object.
+			switch (theType) {
+			case PathIterator.SEG_MOVETO:
+				if (curlinearRing.size() != 0) {
+					if (curlinearRing.size() < 2) {
+						throw new WKBOnePointLineException(curve);
+					}
+					lines.add(curlinearRing);
+					curlinearRing = new ArrayList();
+				}
+				curlinearRing.add(new double[] { theData[0], theData[1] });
+
+				break;
+
+			case PathIterator.SEG_LINETO:
+				curlinearRing.add(new double[] { theData[0], theData[1] });
+				break;
+
+			case PathIterator.SEG_QUADTO:
+				// TODO transform to linear segments
+				throw new IllegalArgumentException("SEG_QUADTO unsupported");
+
+				// shape.quadTo(theData[0], theData[1], theData[2], theData[3]);
+
+				// break;
+
+			case PathIterator.SEG_CUBICTO:
+				// TODO transform to linear segments
+				throw new IllegalArgumentException("SEG_QUADTO unsupported");
+				// shape.curveTo(theData[0], theData[1], theData[2], theData[3],
+				// theData[4], theData[5]);
+
+				// break;
+
+			case PathIterator.SEG_CLOSE:
+				curlinearRing.add(curlinearRing.get(0));
+				break;
+			} // end switch
+
+			theIterator.next();
+		}
+
+		if (curlinearRing.size() != 0) {
+			if (curlinearRing.size() < 2) {
+				throw new WKBOnePointLineException(curve);
+			}
+			lines.add(curlinearRing);
+		}
+		return lines;
+	}
+
+
+	private void encodePolygon(Geometry geometry, DataOutputStream stream)
+			throws GeometryTypeNotSupportedException,
+			WKBPolygonNotClosedException, IOException {
+		GeometryType geometryType = geometry.getGeometryType();
+		encodeWKBGeomHead(wkbGeometryType.wkbPolygon, geometryType, stream);
+
+		Surface surface = (Surface) geometry;
+
+		List linearRings = getLinearRings(surface);
+		stream.writeInt(linearRings.size());
+		for (int i = 0; i < linearRings.size(); i++) {
+			encodeLinearRing((List) linearRings.get(i), stream);
+		}
+
+	}
+
+	private void encodeLinearRing(List linearRing, DataOutputStream stream)
+			throws IOException {
+		stream.writeInt(linearRing.size());
+		for (int i = 0; i < linearRing.size(); i++) {
+			encodeCoordinates((double[]) linearRing.get(i), stream);
+		}
+	}
+
+	private void encodeMultiLineString(Geometry geometry,
+			DataOutputStream stream)
+			throws GeometryTypeNotSupportedException,
+			WKBEncodingException, IOException {
+		GeometryType geometryType = geometry.getGeometryType();
+		encodeWKBGeomHead(wkbGeometryType.wkbMultiLineString, geometryType,
+				stream);
+
+		MultiCurve curves = (MultiCurve) geometry;
+
+		int nGeometries = curves.getPrimitivesNumber();
+		stream.writeInt(nGeometries);
+		for (int i = 0; i < nGeometries; i++) {
+			encodeLineString(curves.getPrimitiveAt(i), stream);
+		}
+	}
+
+	private void encodeLineString(Geometry geometry, DataOutputStream stream)
+			throws GeometryTypeNotSupportedException, WKBEncodingException,
+			IOException {
+		GeometryType geometryType = geometry.getGeometryType();
+		encodeWKBGeomHead(wkbGeometryType.wkbLineString, geometryType,
+				 stream);
+
+		Curve curve = (Curve) geometry;
+
+		List lines = getLines(curve);
+		if (lines.size() != 1) {
+			throw new WKBMultyLineInLineDefinitionException(curve);
+		}
+
+		List line = (List) lines.get(0);
+		int nVertices = line.size();
+		stream.writeInt(nVertices);
+		for (int i = 0; i < nVertices; i++) {
+			encodeCoordinates((double[]) line.get(i), stream);
+		}
+
+	}
+
+
+	private void encodeCoordinates(double[] coordinates, DataOutputStream stream)
+			throws IOException {
+		for (int i = 0; i < coordinates.length; i++) {
+			stream.writeDouble(coordinates[i]);
+		}
+	}
+
+	private void encodeWKBGeomHead(int wkbBaseType, GeometryType geometryType,
+			DataOutputStream stream) throws GeometryTypeNotSupportedException,
+			IOException {
+
+		stream.writeByte(wkbByteOrder.wkbXDR);
+
+		int finalType = wkbBaseType % wkbGeometryType.wkb_baseToZ;
+
+		switch (geometryType.getSubType()) {
+		case SUBTYPES.GEOM2D:
+			break;
+		case SUBTYPES.GEOM2DM:
+			finalType = finalType + wkbGeometryType.wkb_baseToM;
+			break;
+		
+		case SUBTYPES.GEOM3D:
+			finalType = finalType + wkbGeometryType.wkb_baseToZ;
+			break;
+
+		case SUBTYPES.GEOM3DM:
+			finalType = finalType + wkbGeometryType.wkb_baseToZM;
+			break;
+
+
+		default:
+			throw new GeometryTypeNotSupportedException(geometryType.getType(),
+					geometryType.getSubType());
+
+		}
+
+		stream.writeInt(finalType);
+
+
+	}
+
+
+	private void encodePoint(Geometry geometry, DataOutputStream stream)
+			throws GeometryTypeNotSupportedException, IOException {
+		GeometryType geometryType = geometry.getGeometryType();
+		encodeWKBGeomHead(wkbGeometryType.wkbPoint, geometryType,
+				stream);
+
+		Point point = (Point) geometry;
+		double[] coords = point.getCoordinates();
+		for (int i = 0; i < coords.length; i++) {
+			stream.writeDouble(coords[i]);
+		}
+
+	}
+
+	private void encodeMultiPoint(Geometry geometry, DataOutputStream stream)
+			throws GeometryTypeNotSupportedException, IOException {
+		GeometryType geometryType = geometry.getGeometryType();
+		encodeWKBGeomHead(wkbGeometryType.wkbMultiPoint, geometryType, stream);
+
+		MultiPoint points = (MultiPoint) geometry;
+
+		int nGeometries = points.getPrimitivesNumber();
+		stream.writeInt(nGeometries);
+		for (int i=0;i<nGeometries;i++) {
+			encodePoint(points.getPrimitiveAt(i), stream);
+		}
+	}
+
+
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBEncoder.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBPolygonNotClosedException.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBPolygonNotClosedException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBPolygonNotClosedException.java	(revision 38288)
@@ -0,0 +1,53 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA  02110-1301, USA.
+*
+*/
+
+
+package org.gvsig.fmap.geom.operation.towkb;
+
+import org.gvsig.fmap.geom.Geometry;
+
+public class WKBPolygonNotClosedException extends WKBEncodingException {
+
+	/**
+	 * Generated serial version UID
+	 */
+	private static final long serialVersionUID = 2345762531238114238L;
+
+	/**
+	 * Key to retrieve this exception's message
+	 */
+	private static final String MESSAGE_KEY = "wkb_polygon_not_closed_exception";
+	private static final String FORMAT_STRING =
+		"Polygon not closed found";
+
+	/**
+	 * Class name of the geometry type. Should never be null in this exception
+	 */
+	public Geometry geometry = null;
+
+
+	public WKBPolygonNotClosedException(Geometry geom) {
+		super(FORMAT_STRING, MESSAGE_KEY, serialVersionUID);
+		this.geometry = geom;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBPolygonNotClosedException.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/ToWKB.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/ToWKB.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/ToWKB.java	(revision 38288)
@@ -0,0 +1,30 @@
+package org.gvsig.fmap.geom.operation.towkb;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.util.Converter;
+
+import com.vividsolutions.jts.io.WKBWriter;
+
+public class ToWKB extends GeometryOperation {
+    public static final String NAME = "toWKB";
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);
+	
+	private static WKBWriter writer = new WKBWriter();
+
+	public Object invoke(Geometry geom, GeometryOperationContext ctx) {
+		if (ctx == null){
+			return writer.write(Converter.geometryToJts(geom));
+		}
+		return writer.write(Converter.geometryToJtsWithSRID(geom,
+				((ToWKBOperationContext) ctx).getSrID()));
+	}
+
+	public int getOperationIndex() {
+		return CODE;
+	}
+
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBOnePointLineException.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBOnePointLineException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBOnePointLineException.java	(revision 38288)
@@ -0,0 +1,53 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA  02110-1301, USA.
+*
+*/
+
+
+package org.gvsig.fmap.geom.operation.towkb;
+
+import org.gvsig.fmap.geom.Geometry;
+
+public class WKBOnePointLineException extends WKBEncodingException {
+
+	/**
+	 * Generated serial version UID
+	 */
+	private static final long serialVersionUID = 1810408131264048570L;
+
+	/**
+	 * Key to retrieve this exception's message
+	 */
+	private static final String MESSAGE_KEY = "wkb_one_point_line_exception";
+	private static final String FORMAT_STRING =
+		"Single point line definition";
+
+	/**
+	 * Class name of the geometry type. Should never be null in this exception
+	 */
+	public Geometry geometry = null;
+
+
+	public WKBOnePointLineException(Geometry geom) {
+		super(FORMAT_STRING, MESSAGE_KEY, serialVersionUID);
+		this.geometry = geom;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/towkb/WKBOnePointLineException.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkt/WKTParser.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkt/WKTParser.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkt/WKTParser.java	(revision 38288)
@@ -0,0 +1,553 @@
+package org.gvsig.fmap.geom.operation.fromwkt;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StreamTokenizer;
+import java.io.StringReader;
+import java.util.ArrayList;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.aggregate.MultiPoint;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.Surface;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.io.ParseException;
+
+/**
+ *  Converts a Well-Known Text string to a <code>Geometry</code>.
+ * <p>
+ *  The <code>WKTReader</code> allows
+ *  extracting <code>Geometry</code> objects from either input streams or
+ *  internal strings. This allows it to function as a parser to read <code>Geometry</code>
+ *  objects from text blocks embedded in other data formats (e.g. XML). <P>
+ * <p>
+ * The Well-known
+ *  Text format is defined in the <A HREF="http://www.opengis.org/techno/specs.htm">
+ *  OpenGIS Simple Features Specification for SQL</A> . <P>
+ * <p>
+ *  <B>Note: </B> There is an inconsistency in the SFS. The WKT grammar states
+ *  that <code>MultiPoints</code> are represented by <code>MULTIPOINT ( ( x y), (x y) )</code>
+ *  , but the examples show <code>MultiPoint</code>s as <code>MULTIPOINT ( x y, x y )</code>
+ *  . Other implementations follow the latter syntax, so JTS will adopt it as
+ *  well.
+ *
+ *  A <code>WKTReader</code> is parameterized by a <code>GeometryFactory</code>
+ *  , to allow it to create <code>Geometry</code> objects of the appropriate
+ *  implementation. In particular, the <code>GeometryFactory</code> will
+ *  determine the <code>PrecisionModel</code> and <code>SRID</code> that is
+ *  used. <P>
+ *
+ *  The <code>WKTReader</code> will convert the input numbers to the precise
+ *  internal representation.
+ *
+ *  Reads non-standard "LINEARRING" tags.
+ *
+ *@version 1.5
+ */
+public class WKTParser {
+
+	private GeometryManager manager = GeometryLocator.getGeometryManager();
+	/**
+	 * Creates a WKTReader that creates objects using a basic GeometryFactory.
+	 */
+	public WKTParser() {
+	}
+
+
+
+	/**
+	 * Converts a Well-known Text representation to a <code>Geometry</code>.
+	 * 
+	 * @param wellKnownText
+	 *            one or more <Geometry Tagged Text>strings (see the OpenGIS
+	 *            Simple Features Specification) separated by whitespace
+	 * @return a <code>Geometry</code> specified by <code>wellKnownText</code>
+	 * @throws ParseException
+	 *             if a parsing problem occurs
+	 */
+	public Geometry read(String wellKnownText) throws ParseException {
+		StringReader reader = new StringReader(wellKnownText);
+		try {
+			return read(reader);
+		}
+		finally {
+			reader.close();
+		}
+	}
+
+	/**
+	 *  Converts a Well-known Text representation to a <code>Geometry</code>.
+	 *
+	 *@param  reader           a Reader which will return a <Geometry Tagged Text>
+	 *      string (see the OpenGIS Simple Features Specification)
+	 *@return                  a <code>Geometry</code> read from <code>reader</code>
+	 *@throws  ParseException  if a parsing problem occurs
+	 */
+	public Geometry read(Reader reader) throws ParseException {
+		StreamTokenizer tokenizer = new StreamTokenizer(reader);
+		try {
+			return readGeometryTaggedText(tokenizer);
+		}
+		catch (IOException e) {
+			throw new ParseException(e.toString());
+		} catch (CreateGeometryException e) {
+			throw new ParseException(e.toString());
+		}
+	}
+
+	/**
+	 *  Returns the next array of <code>Coordinate</code>s in the stream.
+	 *
+	 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
+	 *      format. The next element returned by the stream should be "(" (the
+	 *      beginning of "(x1 y1, x2 y2, ..., xn yn)") or "EMPTY".
+	 *@return                  the next array of <code>Coordinate</code>s in the
+	 *      stream, or an empty array if "EMPTY" is the next element returned by
+	 *      the stream.
+	 *@throws  IOException     if an I/O error occurs
+	 *@throws  ParseException  if an unexpected token was encountered
+	 */
+	private Coordinate[] getCoordinates(StreamTokenizer tokenizer)
+	throws IOException, ParseException
+	{
+		String nextToken = getNextEmptyOrOpener(tokenizer);
+		if (nextToken.equals("EMPTY")) {
+			return new Coordinate[]{};
+		}
+		ArrayList coordinates = new ArrayList();
+		coordinates.add(getPreciseCoordinate(tokenizer));
+		nextToken = getNextCloserOrComma(tokenizer);
+		while (nextToken.equals(",")) {
+			coordinates.add(getPreciseCoordinate(tokenizer));
+			nextToken = getNextCloserOrComma(tokenizer);
+		}
+		Coordinate[] array = new Coordinate[coordinates.size()];
+		return (Coordinate[]) coordinates.toArray(array);
+	}
+
+	private Coordinate getPreciseCoordinate(StreamTokenizer tokenizer)
+	throws IOException, ParseException
+	{
+		Coordinate coord = new Coordinate();
+		coord.x = getNextNumber(tokenizer);
+		coord.y = getNextNumber(tokenizer);
+		if (isNumberNext(tokenizer)) {
+			coord.z = getNextNumber(tokenizer);
+		}
+		return coord;
+	}
+	private boolean isNumberNext(StreamTokenizer tokenizer) throws IOException {
+		try {
+			return tokenizer.nextToken() == StreamTokenizer.TT_NUMBER;
+		}
+		finally {
+			tokenizer.pushBack();
+		}
+	}
+	/**
+	 *  Returns the next number in the stream.
+	 *
+	 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
+	 *      format. The next token must be a number.
+	 *@return                  the next number in the stream
+	 *@throws  ParseException  if the next token is not a number
+	 *@throws  IOException     if an I/O error occurs
+	 */
+	private double getNextNumber(StreamTokenizer tokenizer) throws IOException,
+	ParseException {
+		int type = tokenizer.nextToken();
+		switch (type) {
+		case StreamTokenizer.TT_EOF:
+			throw new ParseException("Expected number but encountered end of stream");
+		case StreamTokenizer.TT_EOL:
+			throw new ParseException("Expected number but encountered end of line");
+		case StreamTokenizer.TT_NUMBER:
+			return tokenizer.nval;
+		case StreamTokenizer.TT_WORD:
+			throw new ParseException("Expected number but encountered word: " +
+					tokenizer.sval);
+		case '(':
+			throw new ParseException("Expected number but encountered '('");
+		case ')':
+			throw new ParseException("Expected number but encountered ')'");
+		case ',':
+			throw new ParseException("Expected number but encountered ','");
+		}
+		return 0;
+	}
+
+	/**
+	 *  Returns the next "EMPTY" or "(" in the stream as uppercase text.
+	 *
+	 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
+	 *      format. The next token must be "EMPTY" or "(".
+	 *@return                  the next "EMPTY" or "(" in the stream as uppercase
+	 *      text.
+	 *@throws  ParseException  if the next token is not "EMPTY" or "("
+	 *@throws  IOException     if an I/O error occurs
+	 */
+	private String getNextEmptyOrOpener(StreamTokenizer tokenizer) throws IOException, ParseException {
+		String nextWord = getNextWord(tokenizer);
+		if (nextWord.equals("EMPTY") || nextWord.equals("(")) {
+			return nextWord;
+		}
+		throw new ParseException("Expected 'EMPTY' or '(' but encountered '" +
+				nextWord + "'");
+	}
+
+	/**
+	 *  Returns the next ")" or "," in the stream.
+	 *
+	 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
+	 *      format. The next token must be ")" or ",".
+	 *@return                  the next ")" or "," in the stream
+	 *@throws  ParseException  if the next token is not ")" or ","
+	 *@throws  IOException     if an I/O error occurs
+	 */
+	private String getNextCloserOrComma(StreamTokenizer tokenizer) throws IOException, ParseException {
+		String nextWord = getNextWord(tokenizer);
+		if (nextWord.equals(",") || nextWord.equals(")")) {
+			return nextWord;
+		}
+		throw new ParseException("Expected ')' or ',' but encountered '" + nextWord
+				+ "'");
+	}
+
+	/**
+	 *  Returns the next ")" in the stream.
+	 *
+	 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
+	 *      format. The next token must be ")".
+	 *@return                  the next ")" in the stream
+	 *@throws  ParseException  if the next token is not ")"
+	 *@throws  IOException     if an I/O error occurs
+	 */
+	private String getNextCloser(StreamTokenizer tokenizer) throws IOException, ParseException {
+		String nextWord = getNextWord(tokenizer);
+		if (nextWord.equals(")")) {
+			return nextWord;
+		}
+		throw new ParseException("Expected ')' but encountered '" + nextWord + "'");
+	}
+
+	/**
+	 *  Returns the next word in the stream as uppercase text.
+	 *
+	 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
+	 *      format. The next token must be a word.
+	 *@return                  the next word in the stream as uppercase text
+	 *@throws  ParseException  if the next token is not a word
+	 *@throws  IOException     if an I/O error occurs
+	 */
+	private String getNextWord(StreamTokenizer tokenizer) throws IOException, ParseException {
+		int type = tokenizer.nextToken();
+		switch (type) {
+		case StreamTokenizer.TT_EOF:
+			throw new ParseException("Expected word but encountered end of stream");
+		case StreamTokenizer.TT_EOL:
+			throw new ParseException("Expected word but encountered end of line");
+		case StreamTokenizer.TT_NUMBER:
+			throw new ParseException("Expected word but encountered number: " +
+					tokenizer.nval);
+		case StreamTokenizer.TT_WORD:
+			return tokenizer.sval.toUpperCase();
+		case '(':
+			return "(";
+		case ')':
+			return ")";
+		case ',':
+			return ",";
+		}
+		// Assert.shouldNeverReachHere("Encountered unexpected StreamTokenizer type: " + type);
+		return null;
+	}
+
+	/**
+	 *  Creates a <code>Geometry</code> using the next token in the stream.
+	 *
+	 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
+	 *      format. The next tokens must form a &lt;Geometry Tagged Text&gt;.
+	 *@return                  a <code>Geometry</code> specified by the next token
+	 *      in the stream
+	 *@throws  ParseException  if the coordinates used to create a <code>Polygon</code>
+	 *      shell and holes do not form closed linestrings, or if an unexpected
+	 *      token was encountered
+	 *@throws  IOException     if an I/O error occurs
+	 * @throws CreateGeometryException 
+	 */
+	private Geometry readGeometryTaggedText(StreamTokenizer tokenizer) throws IOException, ParseException, CreateGeometryException{
+		String type = getNextWord(tokenizer);
+		if (type.equals("POINT")) {
+			return readPointText(tokenizer);
+		}
+		else if (type.equals("LINESTRING")) {
+			return readLineStringText(tokenizer);
+		}
+		else if (type.equals("LINEARRING")) {
+			return readLinearRingText(tokenizer);
+		}
+		else if (type.equals("POLYGON")) {
+			return readPolygonText(tokenizer);
+		}
+		else if (type.equals("MULTIPOINT")) {
+			return readMultiPointText(tokenizer);
+		}
+		else if (type.equals("MULTILINESTRING")) {
+			return readMultiLineStringText(tokenizer);
+		}
+		else if (type.equals("MULTIPOLYGON")) {
+			return readMultiPolygonText(tokenizer);
+		}
+		/* else if (type.equals("GEOMETRYCOLLECTION")) {
+      return readGeometryCollectionText(tokenizer);
+    } */
+		System.err.println("Unknown type: " + type);
+		throw new ParseException("Unknown type: " + type);
+	}
+
+	/**
+	 *  Creates a <code>Point</code> using the next token in the stream.
+	 *
+	 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
+	 *      format. The next tokens must form a &lt;Point Text&gt;.
+	 *@return                  a <code>Point</code> specified by the next token in
+	 *      the stream
+	 *@throws  IOException     if an I/O error occurs
+	 *@throws  ParseException  if an unexpected token was encountered
+	 * @throws IllegalAccessException 
+	 * @throws InstantiationException 
+	 * @throws CreateGeometryException 
+	 */
+	private Geometry readPointText(StreamTokenizer tokenizer) throws IOException, ParseException, CreateGeometryException {
+		String nextToken = getNextEmptyOrOpener(tokenizer);
+		if (nextToken.equals("EMPTY")) {
+			return null;
+		}
+		Coordinate c = getPreciseCoordinate(tokenizer);
+		Point point = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+		point.setX(c.x);
+		point.setY(c.y);
+		getNextCloser(tokenizer);
+
+		return point;
+	}
+
+	/**
+	 *  Creates a <code>LineString</code> using the next token in the stream.
+	 *
+	 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
+	 *      format. The next tokens must form a &lt;LineString Text&gt;.
+	 *@return                  a <code>LineString</code> specified by the next
+	 *      token in the stream
+	 *@throws  IOException     if an I/O error occurs
+	 *@throws  ParseException  if an unexpected token was encountered
+	 * @throws CreateGeometryException 
+	 * @throws IllegalAccessException 
+	 * @throws InstantiationException 
+	 */
+	private Geometry readLineStringText(StreamTokenizer tokenizer) throws IOException, ParseException, CreateGeometryException {
+		Coordinate[] arrayC = getCoordinates(tokenizer);
+		GeneralPathX gp = new GeneralPathX();
+		gp.moveTo(arrayC[0].x,arrayC[0].y);
+		for (int i=1;i < arrayC.length; i++)
+		{
+			gp.lineTo(arrayC[i].x, arrayC[i].y);
+		}
+		Surface surface = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM2D);
+		surface.setGeneralPath(gp);
+		return surface;
+	}
+
+	/**
+	 *  Creates a <code>LinearRing</code> using the next token in the stream.
+	 *
+	 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
+	 *      format. The next tokens must form a &lt;LineString Text&gt;.
+	 *@return                  a <code>LinearRing</code> specified by the next
+	 *      token in the stream
+	 *@throws  IOException     if an I/O error occurs
+	 *@throws  ParseException  if the coordinates used to create the <code>LinearRing</code>
+	 *      do not form a closed linestring, or if an unexpected token was
+	 *      encountered
+	 * @throws IllegalAccessException 
+	 * @throws InstantiationException 
+	 * @throws CreateGeometryException 
+	 */
+	private Geometry readLinearRingText(StreamTokenizer tokenizer)
+	throws IOException, ParseException, CreateGeometryException
+	{
+		Coordinate[] arrayC = getCoordinates(tokenizer);
+		GeneralPathX gp = new GeneralPathX();
+		gp.moveTo(arrayC[0].x, arrayC[0].y);
+		for (int i=1;i < arrayC.length; i++)
+		{
+			gp.lineTo(arrayC[i].x, arrayC[i].y);
+		}
+		Surface surface = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM2D);
+		surface.setGeneralPath(gp);
+		return surface;
+	}
+
+	/**
+	 *  Creates a <code>MultiPoint</code> using the next token in the stream.
+	 *
+	 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
+	 *      format. The next tokens must form a &lt;MultiPoint Text&gt;.
+	 *@return                  a <code>MultiPoint</code> specified by the next
+	 *      token in the stream
+	 *@throws  IOException     if an I/O error occurs
+	 *@throws  ParseException  if an unexpected token was encountered
+	 * @throws IllegalAccessException 
+	 * @throws InstantiationException 
+	 * @throws CreateGeometryException 
+	 */
+	private Geometry readMultiPointText(StreamTokenizer tokenizer) throws IOException, ParseException, CreateGeometryException {
+		Coordinate[] coords = getCoordinates(tokenizer);
+		MultiPoint multiPoint = (MultiPoint)manager.create(TYPES.MULTIPOINT, SUBTYPES.GEOM2D);
+		for (int i=0; i < coords.length; i++)
+		{
+			Point point = (Point)manager.create(TYPES.POINT, SUBTYPES.GEOM2D);
+			point.setX(coords[i].x);
+			point.setY(coords[i].y);
+			multiPoint.addPoint(point);
+		}   
+
+		return multiPoint;
+	}
+
+
+	/**
+	 *  Creates a <code>Polygon</code> using the next token in the stream.
+	 *
+	 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
+	 *      format. The next tokens must form a &lt;Polygon Text&gt;.
+	 *@return                  a <code>Polygon</code> specified by the next token
+	 *      in the stream
+	 *@throws  ParseException  if the coordinates used to create the <code>Polygon</code>
+	 *      shell and holes do not form closed linestrings, or if an unexpected
+	 *      token was encountered.
+	 *@throws  IOException     if an I/O error occurs
+	 * @throws IllegalAccessException 
+	 * @throws InstantiationException 
+	 * @throws CreateGeometryException 
+	 */
+	private Geometry readPolygonText(StreamTokenizer tokenizer) throws IOException, ParseException, CreateGeometryException {
+		String nextToken = getNextEmptyOrOpener(tokenizer);
+		if (nextToken.equals("EMPTY")) {
+			return null;
+		}
+		ArrayList holes = new ArrayList();
+		Geometry shell = readLinearRingText(tokenizer);
+		nextToken = getNextCloserOrComma(tokenizer);
+		while (nextToken.equals(",")) {
+			Geometry hole = readLinearRingText(tokenizer);
+			holes.add(hole);
+			nextToken = getNextCloserOrComma(tokenizer);
+		}
+		// LinearRing[] array = new LinearRing[holes.size()];
+		return shell; //geometryFactory.createPolygon(shell, (LinearRing[]) holes.toArray(array));
+	}
+
+	/**
+	 *  Creates a <code>MultiLineString</code> using the next token in the stream.
+	 *
+	 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
+	 *      format. The next tokens must form a &lt;MultiLineString Text&gt;.
+	 *@return                  a <code>MultiLineString</code> specified by the
+	 *      next token in the stream
+	 *@throws  IOException     if an I/O error occurs
+	 *@throws  ParseException  if an unexpected token was encountered
+	 * @throws IllegalAccessException 
+	 * @throws InstantiationException 
+	 * @throws CreateGeometryException 
+	 */
+	private Geometry readMultiLineStringText(StreamTokenizer tokenizer) throws IOException, ParseException, CreateGeometryException {
+		// TODO: HACER ESTO BIEN, CON UN GENERAL PATH
+		String nextToken = getNextEmptyOrOpener(tokenizer);
+		if (nextToken.equals("EMPTY")) {
+			return null;
+		}
+		ArrayList lineStrings = new ArrayList();
+		Geometry lineString = readLineStringText(tokenizer);
+		lineStrings.add(lineString);
+		nextToken = getNextCloserOrComma(tokenizer);
+		while (nextToken.equals(",")) {
+			lineString = readLineStringText(tokenizer);
+			lineStrings.add(lineString);
+			nextToken = getNextCloserOrComma(tokenizer);
+		} 
+		// LineString[] array = new LineString[lineStrings.size()];
+		return lineString; // geometryFactory.createMultiLineString((LineString[]) lineStrings.toArray(array));
+	}
+
+	/**
+	 *  Creates a <code>MultiPolygon</code> using the next token in the stream.
+	 *
+	 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
+	 *      format. The next tokens must form a &lt;MultiPolygon Text&gt;.
+	 *@return                  a <code>MultiPolygon</code> specified by the next
+	 *      token in the stream, or if if the coordinates used to create the
+	 *      <code>Polygon</code> shells and holes do not form closed linestrings.
+	 *@throws  IOException     if an I/O error occurs
+	 *@throws  ParseException  if an unexpected token was encountered
+	 * @throws CreateGeometryException 
+	 */
+	// TODO:
+	private Geometry readMultiPolygonText(StreamTokenizer tokenizer) throws IOException, ParseException, CreateGeometryException {
+		String nextToken = getNextEmptyOrOpener(tokenizer);
+		if (nextToken.equals("EMPTY")) {
+			return null;
+		}
+		ArrayList polygons = new ArrayList();
+		Geometry polygon = readPolygonText(tokenizer);
+		/* polygons.add(polygon);
+    nextToken = getNextCloserOrComma(tokenizer);
+    while (nextToken.equals(",")) {
+      polygon = readPolygonText(tokenizer);
+      polygons.add(polygon);
+      nextToken = getNextCloserOrComma(tokenizer);
+    } */
+		// Polygon[] array = new Polygon[polygons.size()];
+		return polygon; //geometryFactory.createMultiPolygon((Polygon[]) polygons.toArray(array));
+	} 
+
+	/**
+	 *  Creates a <code>GeometryCollection</code> using the next token in the
+	 *  stream.
+	 *
+	 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
+	 *      format. The next tokens must form a &lt;GeometryCollection Text&gt;.
+	 *@return                  a <code>GeometryCollection</code> specified by the
+	 *      next token in the stream
+	 *@throws  ParseException  if the coordinates used to create a <code>Polygon</code>
+	 *      shell and holes do not form closed linestrings, or if an unexpected
+	 *      token was encountered
+	 *@throws  IOException     if an I/O error occurs
+	 */
+	// TODO:
+	/* private GeometryCollection readGeometryCollectionText(StreamTokenizer tokenizer) throws IOException, ParseException {
+    String nextToken = getNextEmptyOrOpener(tokenizer);
+    if (nextToken.equals("EMPTY")) {
+      return geometryFactory.createGeometryCollection(new Geometry[]{});
+    }
+    ArrayList geometries = new ArrayList();
+    Geometry geometry = readGeometryTaggedText(tokenizer);
+    geometries.add(geometry);
+    nextToken = getNextCloserOrComma(tokenizer);
+    while (nextToken.equals(",")) {
+      geometry = readGeometryTaggedText(tokenizer);
+      geometries.add(geometry);
+      nextToken = getNextCloserOrComma(tokenizer);
+    }
+    Geometry[] array = new Geometry[geometries.size()];
+    return geometryFactory.createGeometryCollection((Geometry[]) geometries.toArray(array));
+  } */
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkt/WKTParser.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkt/FromWKT.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkt/FromWKT.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkt/FromWKT.java	(revision 38288)
@@ -0,0 +1,73 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2008 IVER T.I. S.A.   {{Task}}
+*/
+ 
+/**
+ * 
+ */
+package org.gvsig.fmap.geom.operation.fromwkt;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+
+import com.vividsolutions.jts.io.ParseException;
+
+/**
+ * @author jmvivo
+ *
+ */
+public class FromWKT extends GeometryOperation {
+    public static final String NAME = GeometryManager.OPERATIONS.FROMWKT;
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);	
+	
+	private static WKTParser parser = new WKTParser();
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex()
+	 */
+	public int getOperationIndex() {
+        return CODE;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invoke(Geometry geom, GeometryOperationContext ctx)
+			throws GeometryOperationException {
+		try {
+			return parser.read( (String) ctx.getAttribute(FromWKTGeometryOperationContext.TEXT));
+		} catch (ParseException e) {
+			throw new GeometryOperationException(geom.getType(),CODE,e);
+		}
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkt/FromWKT.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkt/FromWKTGeometryOperationContext.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkt/FromWKTGeometryOperationContext.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkt/FromWKTGeometryOperationContext.java	(revision 38288)
@@ -0,0 +1,64 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2008 IVER T.I. S.A.   {{Task}}
+*/
+ 
+/**
+ * 
+ */
+package org.gvsig.fmap.geom.operation.fromwkt;
+
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+
+/**
+ * @author jmvivo
+ * 
+ */
+public class FromWKTGeometryOperationContext extends GeometryOperationContext {
+
+	public static final String SRS = "srs";
+	public static final String TEXT = "text";
+	
+	public FromWKTGeometryOperationContext(String text,String srs) {
+		this.setText(text);
+		this.setSrs(srs);
+	}
+
+	public void setText(String text) {
+		this.setAttribute(TEXT, text);
+	}
+
+	public String getText() {
+		return (String) this.getAttribute(TEXT);
+	}
+
+	protected String getSrs() {
+		return (String) this.getAttribute(SRS);
+	}
+
+	protected void setSrs(String srs) {
+		this.setAttribute(SRS, srs);
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/fromwkt/FromWKTGeometryOperationContext.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/distance/PointDistance.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/distance/PointDistance.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/distance/PointDistance.java	(revision 38288)
@@ -0,0 +1,74 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.operation.distance;
+
+import java.awt.geom.Point2D;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class PointDistance extends GeometryOperation{
+    public static final String NAME = "distance";
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);
+	
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex()
+	 */
+	public int getOperationIndex() {
+		return CODE;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invoke(Geometry geom, GeometryOperationContext ctx)
+			throws GeometryOperationException {
+		Geometry geom2 = (Geometry)ctx.getAttribute("geom");
+		GeometryType geomType2 = geom2.getGeometryType();
+		
+		if ((TYPES.POINT != geom.getType()) && TYPES.POINT != geomType2.getType()){
+			throw new UnsupportedOperationException("The distance only can be execudet between two points");
+		}
+		
+		return new Double(Point2D.distance(((Point)geom).getX(),
+				((Point)geom).getY(),
+				((Point)geom2).getX(),
+				((Point)geom2).getX()));
+	}
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/distance/PointDistance.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/flip/Flip.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/flip/Flip.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/flip/Flip.java	(revision 38288)
@@ -0,0 +1,89 @@
+package org.gvsig.fmap.geom.operation.flip;
+
+import java.awt.geom.PathIterator;
+import java.util.ArrayList;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.util.Converter;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.CoordinateList;
+import com.vividsolutions.jts.geom.CoordinateSequences;
+import com.vividsolutions.jts.geom.impl.CoordinateArraySequence;
+
+/**
+ * This class converts the path into points, then flip it down. 
+ * 
+ * @author Carlos S�nchez Peri��n <a href = "mailto:csanchez@prodevelop.es"> e-mail </a>
+ */
+public class Flip extends GeometryOperation{
+    public static final String NAME = "flip";
+    private static GeometryManager geomManager = GeometryLocator.getGeometryManager();
+    public static final int CODE = geomManager.getGeometryOperationCode(NAME);
+	
+	private GeneralPathX generalPathX = null;
+    
+	public int getOperationIndex() {
+		return CODE;
+	}
+	
+    public Object invoke(Geometry geom, GeometryOperationContext ctx) throws GeometryOperationException {
+    	generalPathX = geom.getGeneralPath();
+		if(generalPathX == null){
+			//if there isn't path the operation hasn't sense.
+			return null;
+    	}
+		PathIterator theIterator = geom.getPathIterator(null, geomManager.getFlatness()); //polyLine.getPathIterator(null, flatness);
+    	double[] theData = new double[6];
+    	//Coordinate first = null;
+    	CoordinateList coordList = new CoordinateList();
+    	Coordinate c1;
+    	GeneralPathX newGp = new GeneralPathX();
+    	ArrayList listOfParts = new ArrayList();
+    	while (!theIterator.isDone()) {
+    		//while not done
+    		int type = theIterator.currentSegment(theData);
+    		switch (type)
+    		{
+    		case (byte) PathIterator.SEG_MOVETO:
+    			coordList = new CoordinateList();
+    			listOfParts.add(coordList);
+    			c1= new Coordinate(theData[0], theData[1]);
+    			coordList.add(c1, true);
+    			break;
+    	    case (byte) PathIterator.SEG_LINETO:
+    			c1= new Coordinate(theData[0], theData[1]);
+    			coordList.add(c1, true);
+    			break;
+    		case (byte) PathIterator.SEG_CLOSE:
+    			coordList.add(coordList.getCoordinate(0));
+    			break;
+    		}
+    		theIterator.next();
+    	}
+    		
+    	for (int i=listOfParts.size()-1; i>=0; i--)
+    	{
+    		coordList = (CoordinateList) listOfParts.get(i);
+    		Coordinate[] coords = coordList.toCoordinateArray();
+    		CoordinateArraySequence seq = new CoordinateArraySequence(coords);
+    		CoordinateSequences.reverse(seq);
+    		coords = seq.toCoordinateArray();
+    		newGp.moveTo(coords[0].x, coords[0].y);
+    		for (int j=1; j < coords.length; j++)
+    		{
+    			newGp.lineTo(coords[j].x, coords[j].y);
+    		}
+    	}
+    	generalPathX.reset();
+    	generalPathX.append(newGp.getPathIterator(null), false);	
+    	
+		return null;		
+	}
+}
\ No newline at end of file
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperation.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperation.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperation.java	(revision 38288)
@@ -0,0 +1,61 @@
+package org.gvsig.fmap.geom.operation;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+
+/**
+ * Every geometry operation that is registered dynamically must extend this class.<br>
+ *
+ * The following example shows how to implement and register a custom operation:
+ *  
+ * <pre>
+ * public class MyOperation extends GeometryOperation {
+ * 
+ *   // Check GeometryManager for alternative methods to register an operation  
+ *   public static final int CODE = 
+ *     GeometryManager.getInstance()
+ *        .registerGeometryOperation("MyOperation", new MyOperation(), geomType);
+ *   
+ *   public Object invoke(Geometry geom, GeometryOperationContext ctx) throws GeometryOperationException {
+ *        // Operation logic goes here
+ *   }     
+ *   
+ *   public int getOperationIndex() {
+ *      return CODE;
+ *   }
+ *   
+ * }
+ * </pre>
+ *
+ * @author jiyarza
+ *
+ */
+public abstract class GeometryOperation {
+	
+	
+	// Constants for well-known operations to avoid dependency between geometry model and
+	// operations.
+	public static final String OPERATION_INTERSECTS_NAME = "intersects";
+	public static final String OPERATION_CONTAINS_NAME = "contains";
+	
+	public static int OPERATION_INTERSECTS_CODE = Integer.MIN_VALUE;
+	public static int OPERATION_CONTAINS_CODE = Integer.MIN_VALUE;
+
+	
+	
+	
+	/**
+	 * Invokes this operation given the geometry and context 
+	 * @param geom Geometry to which apply this operation
+	 * @param ctx Parameter container
+	 * @return Place-holder object that may contain any specific return value. 
+	 * @throws GeometryOperationException The implementation is responsible to throw this exception when needed.
+	 */
+	public abstract Object invoke(Geometry geom, GeometryOperationContext ctx) throws GeometryOperationException;
+
+	/**
+	 * Returns the constant value that identifies this operation and that was obtained upon registering it. 
+	 * @return operation unique index 
+	 */
+	public abstract int getOperationIndex();
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperation.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perimeter/Perimeter.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perimeter/Perimeter.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perimeter/Perimeter.java	(revision 38288)
@@ -0,0 +1,56 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.operation.perimeter;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+
+
+/**
+ * @author gvSIG Team
+ * @version $Id$
+ *
+ */
+public class Perimeter extends GeometryOperation {
+    public static final String NAME = "perimeter";
+    public static final int CODE = GeometryLocator.getGeometryManager().
+        getGeometryOperationCode(NAME);
+    
+    public Object invoke(Geometry geom, GeometryOperationContext ctx)
+        throws GeometryOperationException {
+        com.vividsolutions.jts.geom.Geometry jtsGeometry;
+        try {
+            jtsGeometry = (com.vividsolutions.jts.geom.Geometry)geom.invokeOperation("toJTS", null);
+        } catch (GeometryOperationNotSupportedException e) {
+           throw new GeometryOperationException(e);
+        }
+        return new Double(jtsGeometry.getLength());
+    }
+
+    public int getOperationIndex() {
+        return CODE;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perimeter/Perimeter.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/UnitVector.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/UnitVector.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/UnitVector.java	(revision 38288)
@@ -0,0 +1,72 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.operation.perpendicular;
+
+import java.awt.geom.Point2D;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.primitive.Point;
+
+
+/**
+ * Returns an unit vector from two points.
+ * 
+ * @author gvSIG Team
+ * @version $Id$
+ *
+ */
+public class UnitVector extends GeometryOperation{
+    public static final String NAME = "perpendicular";
+    private static GeometryManager geomManager = GeometryLocator.getGeometryManager();
+    public static final int CODE = geomManager.getGeometryOperationCode(NAME);
+
+    public Object invoke(Geometry geom, GeometryOperationContext ctx)
+        throws GeometryOperationException {
+        Point point1 = (Point)geom;
+        Point point2 = (Point)ctx.getAttribute(PerpendicularOperationContext.SECOND_POINT);
+
+        Point2D paux = new Point2D.Double(point2.getX() - point1.getX(),
+            point2.getY() - point1.getY());
+
+        double v = Math.sqrt(Math.pow(paux.getX(), 2d) +
+            Math.pow(paux.getY(), 2d));
+
+        paux = new Point2D.Double(paux.getX() / v, paux.getY() / v);
+
+        try{
+            return  geomManager.createPoint(paux.getX() / v, paux.getY() / v, SUBTYPES.GEOM2D);
+        } catch (CreateGeometryException e) {
+            throw new GeometryOperationException(e);
+        }
+    }
+
+    public int getOperationIndex() {      
+        return CODE;
+    }    
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/UnitVector.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/PerpendicularOperationContext.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/PerpendicularOperationContext.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/PerpendicularOperationContext.java	(revision 38288)
@@ -0,0 +1,57 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.operation.perpendicular;
+
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.primitive.Point;
+
+
+/**
+ * @author gvSIG Team
+ * @version $Id$
+ *
+ */
+public class PerpendicularOperationContext extends GeometryOperationContext {
+    public static final String SECOND_POINT = "secondPoint";
+    public static final String PERPENDICULAR_POINT = "perpendicularPoint";
+
+    public PerpendicularOperationContext(Point secondPoint, Point perpendicularPoint) {
+        this.setSecondPoint(secondPoint);
+        this.setPerpendicularPoint(perpendicularPoint);      
+    }    
+    
+    public void setSecondPoint(Point secondPoint) {
+        this.setAttribute(SECOND_POINT, secondPoint);
+    }
+
+    public Point getSecondPoint() {
+        return (Point) this.getAttribute(SECOND_POINT);
+    }
+    
+    public void setPerpendicularPoint(Point perpendicularPoint) {
+        this.setAttribute(PERPENDICULAR_POINT, perpendicularPoint);
+    }
+
+    public Point getPerpendicularPoint() {
+        return (Point) this.getAttribute(PERPENDICULAR_POINT);
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/PerpendicularOperationContext.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/PerpendicularPoint.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/PerpendicularPoint.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/PerpendicularPoint.java	(revision 38288)
@@ -0,0 +1,74 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.operation.perpendicular;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.primitive.Point;
+
+
+/**
+ * Gets a point that is located to a concrete distance (attribute distance)
+ * of a line and is located in a perpendicular line that intersects with other 
+ * point (attribute perpendicularPoint).
+ * 
+ * @author gvSIG Team
+ * @version $Id$
+ *
+ */
+public class PerpendicularPoint extends GeometryOperation{
+    public static final String NAME = "perpendicularPoint";
+    private static GeometryManager geomManager = GeometryLocator.getGeometryManager();
+    public static final int CODE = geomManager.getGeometryOperationCode(NAME);
+   
+    public Object invoke(Geometry geom, GeometryOperationContext ctx)
+        throws GeometryOperationException {
+      
+        Point perpendicularPoint = (Point)ctx.getAttribute(PerpendicularPointOperationContext.PERPENDICULAR_POINT); 
+        double dist =
+            ((Double) ctx
+                .getAttribute(PerpendicularPointOperationContext.DISTANCE))
+                .doubleValue();
+        
+        try {
+            Point[] p = (Point[])geom.invokeOperation(Perpendicular.CODE, ctx);
+            Point unit = (Point)geom.invokeOperation(UnitVector.CODE, ctx);
+            return  geomManager.createPoint(perpendicularPoint.getX() + (unit.getX() * dist),
+                perpendicularPoint.getY() + (unit.getY() * dist), SUBTYPES.GEOM2D);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryOperationException(e);
+        } catch (CreateGeometryException e) {
+            throw new GeometryOperationException(e);
+        }
+    }
+   
+    public int getOperationIndex() {      
+        return CODE;
+    }    
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/PerpendicularPoint.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/UnitVectorOperationContext.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/UnitVectorOperationContext.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/UnitVectorOperationContext.java	(revision 38288)
@@ -0,0 +1,47 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.operation.perpendicular;
+
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.primitive.Point;
+
+
+/**
+ * @author gvSIG Team
+ * @version $Id$
+ *
+ */
+public class UnitVectorOperationContext  extends GeometryOperationContext {
+    public static final String SECOND_POINT = "secondPoint";
+   
+    public UnitVectorOperationContext(Point secondPoint) {
+        this.setSecondPoint(secondPoint);       
+    }    
+    
+    public void setSecondPoint(Point secondPoint) {
+        this.setAttribute(SECOND_POINT, secondPoint);
+    }
+
+    public Point getSecondPoint() {
+        return (Point) this.getAttribute(SECOND_POINT);
+    }   
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/UnitVectorOperationContext.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/Perpendicular.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/Perpendicular.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/Perpendicular.java	(revision 38288)
@@ -0,0 +1,84 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.operation.perpendicular;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.primitive.Point;
+
+
+/**
+ * Gets a couple of points that defines a line that is perpendicular to other line
+ * and intersects with a point.
+ * @author gvSIG Team
+ * @version $Id$
+ *
+ */
+public class Perpendicular extends GeometryOperation{
+    public static final String NAME = "perpendicular";
+    private static GeometryManager geomManager = GeometryLocator.getGeometryManager();
+    public static final int CODE = geomManager.getGeometryOperationCode(NAME);
+   
+    public Object invoke(Geometry geom, GeometryOperationContext ctx)
+        throws GeometryOperationException {
+        Point point1 = (Point)geom;
+        Point point2 = (Point)ctx.getAttribute(PerpendicularOperationContext.SECOND_POINT);
+        Point perpendicularPoint = (Point)ctx.getAttribute(PerpendicularOperationContext.PERPENDICULAR_POINT);        
+        
+        if ((point2.getY() - point1.getY()) == 0) {
+            try {
+                return new Point[] {
+                    geomManager.createPoint(perpendicularPoint.getX(), 0, SUBTYPES.GEOM2D),
+                    geomManager.createPoint(perpendicularPoint.getX(), 1, SUBTYPES.GEOM2D)
+                };
+            } catch (CreateGeometryException e) {
+                throw new GeometryOperationException(e);
+            }
+        }
+
+        //Pendiente de la recta perpendicular
+        double m = (point1.getX() - point2.getX()) / (point2.getY() - point1.getY());
+
+        //b de la funcion de la recta perpendicular
+        double b = perpendicularPoint.getY() - (m * perpendicularPoint.getX());
+
+        //Obtenemos un par de puntos
+        try {
+            return new Point[] {
+                geomManager.createPoint(0, (m * 0) + b, SUBTYPES.GEOM2D),
+                geomManager.createPoint(1000, (m * 1000) + b, SUBTYPES.GEOM2D)
+            };
+        } catch (CreateGeometryException e) {
+            throw new GeometryOperationException(e);
+        }
+    }
+   
+    public int getOperationIndex() {      
+        return CODE;
+    }    
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/Perpendicular.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/PerpendicularPointOperationContext.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/PerpendicularPointOperationContext.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/PerpendicularPointOperationContext.java	(revision 38288)
@@ -0,0 +1,66 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.operation.perpendicular;
+
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.primitive.Point;
+
+
+/**
+ * @author gvSIG Team
+ * @version $Id$
+ */
+public class PerpendicularPointOperationContext extends GeometryOperationContext {
+    public static final String SECOND_POINT = "secondPoint";
+    public static final String PERPENDICULAR_POINT = "perpendicularPoint";
+    public static final String DISTANCE = "distance";
+
+    public PerpendicularPointOperationContext(Point secondPoint, Point perpendicularPoint, double distance) {
+        this.setSecondPoint(secondPoint);
+        this.setPerpendicularPoint(perpendicularPoint);
+        this.setDistance(distance);
+    }    
+    
+    public void setSecondPoint(Point secondPoint) {
+        this.setAttribute(SECOND_POINT, secondPoint);
+    }
+
+    public Point getSecondPoint() {
+        return (Point) this.getAttribute(SECOND_POINT);
+    }
+    
+    public void setPerpendicularPoint(Point perpendicularPoint) {
+        this.setAttribute(PERPENDICULAR_POINT, perpendicularPoint);
+    }
+
+    public Point getPerpendicularPoint() {
+        return (Point) this.getAttribute(PERPENDICULAR_POINT);
+    }
+    
+    public double getDistance() {
+        return ((Double) this.getAttribute(DISTANCE)).doubleValue();
+    }
+
+    public void setDistance(double distance) {
+        this.setAttribute(DISTANCE, Double.valueOf(distance));
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/perpendicular/PerpendicularPointOperationContext.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/utils/PointGetAngle.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/utils/PointGetAngle.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/utils/PointGetAngle.java	(revision 38288)
@@ -0,0 +1,97 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.operation.utils;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.operation.distance.PointDistance;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.tools.locator.LocatorException;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class PointGetAngle extends GeometryOperation{
+    public static final String NAME = "getAngle";
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);	
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex()
+	 */
+	public int getOperationIndex() {
+		return CODE;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invoke(Geometry geom, GeometryOperationContext ctx)
+	throws GeometryOperationException {
+
+		Geometry geom2 = (Geometry)ctx.getAttribute("geom");
+		GeometryType geomType2 = geom2.getGeometryType();
+
+		if ((TYPES.POINT != geom.getType()) && TYPES.POINT != geomType2.getType()){
+			throw new UnsupportedOperationException("The distance only can be execudet between two points");
+		}
+
+		Point start = (Point)geom;
+		Point end = (Point)geom;
+
+		double distance;
+		try {
+			distance = ((Double)GeometryLocator.getGeometryManager().invokeOperation(PointDistance.CODE, geom, ctx)).doubleValue();
+		} catch (LocatorException e) {
+			throw new GeometryOperationException(e);
+		} catch (GeometryOperationNotSupportedException e) {
+			throw new GeometryOperationException(e);
+		}
+		
+		double angle = Math.acos((end.getX() - start.getX()) / distance);
+		
+		if (start.getY() > end.getY()) {
+			angle = -angle;
+		}
+
+		if (angle < 0) {
+			angle += (2 * Math.PI);
+		}
+
+		return new Double(angle);
+	}
+
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/utils/PointGetAngle.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperationContext.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperationContext.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperationContext.java	(revision 38288)
@@ -0,0 +1,43 @@
+package org.gvsig.fmap.geom.operation;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * This class is a default parameter container for geometry operation.<br>
+ * 
+ * Normally every GeometryOperation will extend this class and identify
+ * its parameters publicly with getters/setters
+ *
+ * For those operations that need high performance, parameters should be declared as class 
+ * members instead of using the setAttribute/getAttribute mechanism. This way you avoid a hash
+ * and a cast operation.
+ * 
+ * @author jyarza
+ *
+ */
+public class GeometryOperationContext {
+	
+	private Map ctx = new HashMap();
+	
+	/**
+	 * Returns an attribute given its name.
+	 * If it does not exist returns <code>null</code>
+	 * @param name
+	 * @return attribute
+	 */
+	public Object getAttribute(String name) {
+		return ctx.get(name.toLowerCase());
+	}
+	
+	/**
+	 * Sets an attribute
+	 * @param name
+	 * @param value
+	 */
+	public GeometryOperationContext setAttribute(String name, Object value) {
+		ctx.put(name.toLowerCase(), value);
+		return this;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperationContext.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/impl/DefaultGeometryOperationLibrary.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/impl/DefaultGeometryOperationLibrary.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/impl/DefaultGeometryOperationLibrary.java	(revision 38288)
@@ -0,0 +1,122 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.operation.impl;
+
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.GeometryLibrary;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.operation.area.Area;
+import org.gvsig.fmap.geom.operation.distance.PointDistance;
+import org.gvsig.fmap.geom.operation.ensureOrientation.EnsureOrientation;
+import org.gvsig.fmap.geom.operation.flip.Flip;
+import org.gvsig.fmap.geom.operation.fromjts.FromJTS;
+import org.gvsig.fmap.geom.operation.fromwkb.FromWKB;
+import org.gvsig.fmap.geom.operation.fromwkt.FromWKT;
+import org.gvsig.fmap.geom.operation.isCCW.IsCCW;
+import org.gvsig.fmap.geom.operation.perimeter.Perimeter;
+import org.gvsig.fmap.geom.operation.perpendicular.Perpendicular;
+import org.gvsig.fmap.geom.operation.perpendicular.PerpendicularPoint;
+import org.gvsig.fmap.geom.operation.perpendicular.UnitVector;
+import org.gvsig.fmap.geom.operation.relationship.Contains;
+import org.gvsig.fmap.geom.operation.relationship.Crosses;
+import org.gvsig.fmap.geom.operation.relationship.Disjoint;
+import org.gvsig.fmap.geom.operation.relationship.Equals;
+import org.gvsig.fmap.geom.operation.relationship.Intersects;
+import org.gvsig.fmap.geom.operation.relationship.Out;
+import org.gvsig.fmap.geom.operation.relationship.Overlaps;
+import org.gvsig.fmap.geom.operation.relationship.Touches;
+import org.gvsig.fmap.geom.operation.relationship.Within;
+import org.gvsig.fmap.geom.operation.tojts.Curve2DToJTS;
+import org.gvsig.fmap.geom.operation.tojts.MultiCurveToJTS;
+import org.gvsig.fmap.geom.operation.tojts.MultiPointToJTS;
+import org.gvsig.fmap.geom.operation.tojts.MultiSurfaceToJTS;
+import org.gvsig.fmap.geom.operation.tojts.Point2DToJTS;
+import org.gvsig.fmap.geom.operation.tojts.Surface2DToJTS;
+import org.gvsig.fmap.geom.operation.tojts.ToJTS;
+import org.gvsig.fmap.geom.operation.towkb.ToWKB;
+import org.gvsig.fmap.geom.operation.towkb.ToWKBNative;
+import org.gvsig.fmap.geom.operation.towkt.ToWKT;
+import org.gvsig.fmap.geom.operation.utils.PointGetAngle;
+import org.gvsig.tools.library.AbstractLibrary;
+import org.gvsig.tools.library.LibraryException;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class DefaultGeometryOperationLibrary extends AbstractLibrary  {
+
+    public void doRegistration() {
+        registerAsServiceOf(GeometryLibrary.class);
+    }
+
+    protected void doInitialize() throws LibraryException {
+    }
+
+    protected void doPostInitialize() throws LibraryException {
+
+        // Validate there is any implementation registered.
+        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
+
+        geometryManager.registerGeometryOperation(Contains.NAME, new Contains());
+        geometryManager.registerGeometryOperation(Crosses.NAME, new Crosses());
+        geometryManager.registerGeometryOperation(Disjoint.NAME, new Disjoint());
+        geometryManager.registerGeometryOperation(Equals.NAME, new Equals());
+        geometryManager.registerGeometryOperation(Intersects.NAME, new Intersects());
+        geometryManager.registerGeometryOperation(Overlaps.NAME, new Overlaps());
+        geometryManager.registerGeometryOperation(Touches.NAME, new Touches());
+        geometryManager.registerGeometryOperation(Within.NAME, new Within());
+        geometryManager.registerGeometryOperation(IsCCW.NAME, new IsCCW());
+        geometryManager.registerGeometryOperation(FromWKT.NAME, new FromWKT());
+        geometryManager.registerGeometryOperation(FromWKB.NAME, new FromWKB());
+        geometryManager.registerGeometryOperation(Flip.NAME, new Flip());	
+        geometryManager.registerGeometryOperation(EnsureOrientation.NAME,  new EnsureOrientation());		
+        geometryManager.registerGeometryOperation(ToWKB.NAME,  new ToWKB());
+        geometryManager.registerGeometryOperation(ToWKBNative.NAME,  new ToWKBNative());
+        geometryManager.registerGeometryOperation(ToWKT.NAME, new ToWKT());
+        geometryManager.registerGeometryOperation(PointDistance.NAME,  new PointDistance(), TYPES.POINT);
+        geometryManager.registerGeometryOperation(FromJTS.NAME, new FromJTS());
+        geometryManager.registerGeometryOperation(PointGetAngle.NAME, new PointGetAngle());
+        geometryManager.registerGeometryOperation(Out.NAME, new Out());
+        geometryManager.registerGeometryOperation(Area.NAME, new Area());
+        geometryManager.registerGeometryOperation(Perimeter.NAME, new Perimeter());
+        geometryManager.registerGeometryOperation(Perpendicular.NAME,  new Perpendicular(), TYPES.POINT);
+        geometryManager.registerGeometryOperation(PerpendicularPoint.NAME,  new PerpendicularPoint(), TYPES.POINT);
+        geometryManager.registerGeometryOperation(UnitVector.NAME,  new UnitVector(), TYPES.POINT);
+        
+        
+        //To JTS
+        geometryManager.registerGeometryOperation(ToJTS.NAME, new Point2DToJTS(), TYPES.POINT);
+        geometryManager.registerGeometryOperationBySuperType(ToJTS.NAME, new Curve2DToJTS(), TYPES.CURVE);
+        geometryManager.registerGeometryOperationBySuperType(ToJTS.NAME, new Surface2DToJTS(), TYPES.SURFACE);
+        geometryManager.registerGeometryOperation(ToJTS.NAME, new MultiPointToJTS(), TYPES.MULTIPOINT);
+        geometryManager.registerGeometryOperation(ToJTS.NAME, new MultiCurveToJTS(), TYPES.MULTICURVE);
+        geometryManager.registerGeometryOperation(ToJTS.NAME, new MultiSurfaceToJTS(), TYPES.MULTISURFACE);
+        
+    }	
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/impl/DefaultGeometryOperationLibrary.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Disjoint.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Disjoint.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Disjoint.java	(revision 38288)
@@ -0,0 +1,97 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2008 IVER T.I. S.A.   {{Task}}
+ */
+
+/**
+ *
+ */
+package org.gvsig.fmap.geom.operation.relationship;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.operation.tojts.ToJTS;
+import org.gvsig.fmap.geom.primitive.impl.DefaultNullGeometry;
+
+/**
+ *
+ * @author Vicente Caballero Navarro
+ *
+ */
+public class Disjoint extends GeometryOperation {
+    public static final String NAME = "disjoint";
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex()
+     */
+    public int getOperationIndex() {
+        return CODE;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry,
+     *      org.gvsig.fmap.geom.operation.GeometryOperationContext)
+     */
+    public Object invoke(Geometry geom, GeometryOperationContext ctx)
+            throws GeometryOperationException {
+        DefaultRelationshipGeometryOperationContext myCtx = null;
+        myCtx = (DefaultRelationshipGeometryOperationContext) ctx;
+
+        Geometry otherGeom = myCtx.getGeom();
+        if (otherGeom instanceof DefaultNullGeometry || geom instanceof DefaultNullGeometry ){
+            return new Boolean(false);
+        }
+        // TODO optimizar esto para los rectangulos (envelope)
+        com.vividsolutions.jts.geom.Geometry jtsGeom = null;
+        com.vividsolutions.jts.geom.Geometry otherJtsGeom = null;
+        try {
+            jtsGeom = (com.vividsolutions.jts.geom.Geometry) geom
+                    .invokeOperation(ToJTS.CODE, null);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryOperationException(geom.getType(), CODE, e);
+        }
+        try {
+
+            otherJtsGeom = (com.vividsolutions.jts.geom.Geometry) otherGeom
+                    .invokeOperation(ToJTS.CODE, null);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryOperationException(otherGeom.getType(), CODE, e);
+        }
+        if (jtsGeom!=null && otherJtsGeom!=null)
+            return new Boolean(jtsGeom.disjoint(otherJtsGeom));
+        return new Boolean(false);
+    }
+
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Intersects.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Intersects.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Intersects.java	(revision 38288)
@@ -0,0 +1,96 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2008 IVER T.I. S.A.   {{Task}}
+ */
+
+/**
+ *
+ */
+package org.gvsig.fmap.geom.operation.relationship;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.operation.tojts.ToJTS;
+import org.gvsig.fmap.geom.primitive.impl.DefaultNullGeometry;
+
+/**
+ * @author jmvivo
+ *
+ */
+public class Intersects extends GeometryOperation {
+    public static final String NAME = "intersects";
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex()
+     */
+    public int getOperationIndex() {
+        return CODE;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry,
+     *      org.gvsig.fmap.geom.operation.GeometryOperationContext)
+     */
+    public Object invoke(Geometry geom, GeometryOperationContext ctx)
+            throws GeometryOperationException {
+        DefaultRelationshipGeometryOperationContext myCtx = null;
+        myCtx = (DefaultRelationshipGeometryOperationContext) ctx;
+
+        Geometry otherGeom = myCtx.getGeom();
+        if (otherGeom instanceof DefaultNullGeometry || geom instanceof DefaultNullGeometry || !otherGeom.getEnvelope().intersects(geom.getEnvelope())){
+            return new Boolean(false);
+        }
+        // TODO optimizar esto para los rectangulos (envelope)
+        com.vividsolutions.jts.geom.Geometry jtsGeom = null;
+        com.vividsolutions.jts.geom.Geometry otherJtsGeom = null;
+        try {
+            jtsGeom = (com.vividsolutions.jts.geom.Geometry) geom
+                    .invokeOperation(ToJTS.CODE, null);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryOperationException(geom.getType(), CODE, e);
+        }
+        try {
+
+            otherJtsGeom = (com.vividsolutions.jts.geom.Geometry) otherGeom
+                    .invokeOperation(ToJTS.CODE, null);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryOperationException(otherGeom.getType(), CODE, e);
+        }
+        if (jtsGeom!=null && otherJtsGeom!=null)
+            return new Boolean(jtsGeom.intersects(otherJtsGeom));
+        return new Boolean(false);
+    }
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Intersects.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Out.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Out.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Out.java	(revision 38288)
@@ -0,0 +1,96 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2008 IVER T.I. S.A.   {{Task}}
+ */
+
+/**
+ *
+ */
+package org.gvsig.fmap.geom.operation.relationship;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.operation.tojts.ToJTS;
+import org.gvsig.fmap.geom.primitive.impl.DefaultNullGeometry;
+
+/**
+ *
+ * @author Vicente Caballero Navarro
+ *
+ */
+public class Out extends GeometryOperation {
+    public static final String NAME = "out";
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);
+	
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex()
+     */
+    public int getOperationIndex() {
+        return CODE;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry,
+     *      org.gvsig.fmap.geom.operation.GeometryOperationContext)
+     */
+    public Object invoke(Geometry geom, GeometryOperationContext ctx)
+            throws GeometryOperationException {
+        DefaultRelationshipGeometryOperationContext myCtx = null;
+        myCtx = (DefaultRelationshipGeometryOperationContext) ctx;
+
+        Geometry otherGeom = myCtx.getGeom();
+//        if (otherGeom instanceof DefaultNullGeometry || geom instanceof DefaultNullGeometry || otherGeom.getEnvelope().intersects(geom.getEnvelope())){
+//            return new Boolean(false);
+//        }
+        // TODO optimizar esto para los rectangulos (envelope)
+        com.vividsolutions.jts.geom.Geometry jtsGeom = null;
+        com.vividsolutions.jts.geom.Geometry otherJtsGeom = null;
+        try {
+            jtsGeom = (com.vividsolutions.jts.geom.Geometry) geom
+                    .invokeOperation(ToJTS.CODE, null);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryOperationException(geom.getType(), CODE, e);
+        }
+        try {
+
+            otherJtsGeom = (com.vividsolutions.jts.geom.Geometry) otherGeom
+                    .invokeOperation(ToJTS.CODE, null);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryOperationException(otherGeom.getType(), CODE, e);
+        }
+        if (jtsGeom!=null && otherJtsGeom!=null)
+            return new Boolean(!jtsGeom.contains(otherJtsGeom) && !jtsGeom.intersects(otherJtsGeom));
+        return new Boolean(false);
+    }
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/DefaultRelationshipGeometryOperationContext.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/DefaultRelationshipGeometryOperationContext.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/DefaultRelationshipGeometryOperationContext.java	(revision 38288)
@@ -0,0 +1,60 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2008 IVER T.I. S.A.   {{Task}}
+*/
+ 
+/**
+ * 
+ */
+package org.gvsig.fmap.geom.operation.relationship;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+
+/**
+ * @author jmvivo
+ *
+ */
+public class DefaultRelationshipGeometryOperationContext extends
+		GeometryOperationContext {
+	
+	private Geometry geom = null;
+
+	public DefaultRelationshipGeometryOperationContext(){
+	}		
+
+	public DefaultRelationshipGeometryOperationContext(Geometry geom){
+		this.setGeom(geom);
+	}
+
+	protected Geometry getGeom() {
+		return geom;
+	}
+
+	protected void setGeom(Geometry geom) {
+		this.geom = geom;
+	}		
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/DefaultRelationshipGeometryOperationContext.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Equals.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Equals.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Equals.java	(revision 38288)
@@ -0,0 +1,97 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2008 IVER T.I. S.A.   {{Task}}
+ */
+
+/**
+ *
+ */
+package org.gvsig.fmap.geom.operation.relationship;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.operation.tojts.ToJTS;
+import org.gvsig.fmap.geom.primitive.impl.DefaultNullGeometry;
+
+/**
+ *
+ * @author Vicente Caballero Navarro
+ *
+ */
+public class Equals extends GeometryOperation {
+    public static final String NAME = "equals";
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex()
+     */
+    public int getOperationIndex() {
+        return CODE;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry,
+     *      org.gvsig.fmap.geom.operation.GeometryOperationContext)
+     */
+    public Object invoke(Geometry geom, GeometryOperationContext ctx)
+            throws GeometryOperationException {
+        DefaultRelationshipGeometryOperationContext myCtx = null;
+        myCtx = (DefaultRelationshipGeometryOperationContext) ctx;
+
+        Geometry otherGeom = myCtx.getGeom();
+        if (otherGeom instanceof DefaultNullGeometry || geom instanceof DefaultNullGeometry ){
+            return new Boolean(false);
+        }
+        // TODO optimizar esto para los rectangulos (envelope)
+        com.vividsolutions.jts.geom.Geometry jtsGeom = null;
+        com.vividsolutions.jts.geom.Geometry otherJtsGeom = null;
+        try {
+            jtsGeom = (com.vividsolutions.jts.geom.Geometry) geom
+                    .invokeOperation(ToJTS.CODE, null);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryOperationException(geom.getType(), CODE, e);
+        }
+        try {
+
+            otherJtsGeom = (com.vividsolutions.jts.geom.Geometry) otherGeom
+                    .invokeOperation(ToJTS.CODE, null);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryOperationException(otherGeom.getType(), CODE, e);
+        }
+        if (jtsGeom!=null && otherJtsGeom!=null)
+            return new Boolean(jtsGeom.equals(otherJtsGeom));
+        return new Boolean(false);
+    }
+
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Touches.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Touches.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Touches.java	(revision 38288)
@@ -0,0 +1,97 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2008 IVER T.I. S.A.   {{Task}}
+ */
+
+/**
+ *
+ */
+package org.gvsig.fmap.geom.operation.relationship;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.operation.tojts.ToJTS;
+import org.gvsig.fmap.geom.primitive.impl.DefaultNullGeometry;
+
+/**
+ *
+ * @author Vicente Caballero Navarro
+ *
+ */
+public class Touches extends GeometryOperation {
+    public static final String NAME = "touches";
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex()
+     */
+    public int getOperationIndex() {
+        return CODE;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry,
+     *      org.gvsig.fmap.geom.operation.GeometryOperationContext)
+     */
+    public Object invoke(Geometry geom, GeometryOperationContext ctx)
+            throws GeometryOperationException {
+        DefaultRelationshipGeometryOperationContext myCtx = null;
+        myCtx = (DefaultRelationshipGeometryOperationContext) ctx;
+
+        Geometry otherGeom = myCtx.getGeom();
+        if (otherGeom instanceof DefaultNullGeometry || geom instanceof DefaultNullGeometry ){
+            return new Boolean(false);
+        }
+        // TODO optimizar esto para los rectangulos (envelope)
+        com.vividsolutions.jts.geom.Geometry jtsGeom = null;
+        com.vividsolutions.jts.geom.Geometry otherJtsGeom = null;
+        try {
+            jtsGeom = (com.vividsolutions.jts.geom.Geometry) geom
+                    .invokeOperation(ToJTS.CODE, null);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryOperationException(geom.getType(), CODE, e);
+        }
+        try {
+
+            otherJtsGeom = (com.vividsolutions.jts.geom.Geometry) otherGeom
+                    .invokeOperation(ToJTS.CODE, null);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryOperationException(otherGeom.getType(), CODE, e);
+        }
+        if (jtsGeom!=null && otherJtsGeom!=null)
+            return new Boolean(jtsGeom.touches(otherJtsGeom));
+        return new Boolean(false);
+    }
+
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Overlaps.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Overlaps.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Overlaps.java	(revision 38288)
@@ -0,0 +1,92 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2008 IVER T.I. S.A.   {{Task}}
+ */
+
+/**
+ * 
+ */
+package org.gvsig.fmap.geom.operation.relationship;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.operation.tojts.ToJTS;
+
+/**
+ * @author jmvivo
+ * 
+ */
+public class Overlaps extends GeometryOperation {
+    public static final String NAME = "overlaps";
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex()
+	 */
+	public int getOperationIndex() {
+		return CODE;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry,
+	 *      org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invoke(Geometry geom, GeometryOperationContext ctx)
+			throws GeometryOperationException {
+		DefaultRelationshipGeometryOperationContext myCtx = null;
+		myCtx = (DefaultRelationshipGeometryOperationContext) ctx;
+
+		Geometry otherGeom = myCtx.getGeom();
+		// TODO optimizar esto para los rectangulos (envelope)
+		com.vividsolutions.jts.geom.Geometry jtsGeom = null;
+		com.vividsolutions.jts.geom.Geometry otherJtsGeom = null;
+		try {
+			jtsGeom = (com.vividsolutions.jts.geom.Geometry) geom
+					.invokeOperation(ToJTS.CODE, null);
+		} catch (GeometryOperationNotSupportedException e) {
+			throw new GeometryOperationException(geom.getType(), CODE, e);
+		}
+		try {
+
+			otherJtsGeom = (com.vividsolutions.jts.geom.Geometry) otherGeom
+					.invokeOperation(ToJTS.CODE, null);
+		} catch (GeometryOperationNotSupportedException e) {
+			throw new GeometryOperationException(otherGeom.getType(), CODE, e);
+		}
+
+		
+		return new Boolean(jtsGeom.overlaps(otherJtsGeom));
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Overlaps.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Contains.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Contains.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Contains.java	(revision 38288)
@@ -0,0 +1,96 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2008 IVER T.I. S.A.   {{Task}}
+ */
+
+/**
+ *
+ */
+package org.gvsig.fmap.geom.operation.relationship;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.operation.tojts.ToJTS;
+import org.gvsig.fmap.geom.primitive.impl.DefaultNullGeometry;
+
+/**
+ *
+ * @author Vicente Caballero Navarro
+ *
+ */
+public class Contains extends GeometryOperation {
+    public static final String NAME = "contains";
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);
+     
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex()
+     */
+    public int getOperationIndex() {
+        return CODE;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry,
+     *      org.gvsig.fmap.geom.operation.GeometryOperationContext)
+     */
+    public Object invoke(Geometry geom, GeometryOperationContext ctx)
+            throws GeometryOperationException {
+        DefaultRelationshipGeometryOperationContext myCtx = null;
+        myCtx = (DefaultRelationshipGeometryOperationContext) ctx;
+
+        Geometry otherGeom = myCtx.getGeom();
+        if (otherGeom instanceof DefaultNullGeometry || geom instanceof DefaultNullGeometry || !otherGeom.getEnvelope().intersects(geom.getEnvelope())){
+            return new Boolean(false);
+        }
+        // TODO optimizar esto para los rectangulos (envelope)
+        com.vividsolutions.jts.geom.Geometry jtsGeom = null;
+        com.vividsolutions.jts.geom.Geometry otherJtsGeom = null;
+        try {
+            jtsGeom = (com.vividsolutions.jts.geom.Geometry) geom
+                    .invokeOperation(ToJTS.CODE, null);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryOperationException(geom.getType(), CODE, e);
+        }
+        try {
+
+            otherJtsGeom = (com.vividsolutions.jts.geom.Geometry) otherGeom
+                    .invokeOperation(ToJTS.CODE, null);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryOperationException(otherGeom.getType(), CODE, e);
+        }
+        if (jtsGeom!=null && otherJtsGeom!=null)
+            return new Boolean(jtsGeom.contains(otherJtsGeom));
+        return new Boolean(false);
+    }
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Crosses.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Crosses.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Crosses.java	(revision 38288)
@@ -0,0 +1,98 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2008 IVER T.I. S.A.   {{Task}}
+ */
+
+/**
+ *
+ */
+package org.gvsig.fmap.geom.operation.relationship;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.operation.tojts.ToJTS;
+import org.gvsig.fmap.geom.primitive.impl.DefaultNullGeometry;
+
+/**
+ *
+ * @author Vicente Caballero Navarro
+ *
+ */
+public class Crosses extends GeometryOperation {
+	public static final String NAME = "crosses";
+	public static final int CODE = GeometryLocator.getGeometryManager().
+		getGeometryOperationCode(NAME);
+
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex()
+	 */
+	public int getOperationIndex() {
+		return CODE;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry,
+	 *      org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invoke(Geometry geom, GeometryOperationContext ctx)
+	throws GeometryOperationException {
+		DefaultRelationshipGeometryOperationContext myCtx = null;
+		myCtx = (DefaultRelationshipGeometryOperationContext) ctx;
+
+		Geometry otherGeom = myCtx.getGeom();
+		if (otherGeom instanceof DefaultNullGeometry || geom instanceof DefaultNullGeometry){
+			return new Boolean(false);
+		}
+		// TODO optimizar esto para los rectangulos (envelope)
+		com.vividsolutions.jts.geom.Geometry jtsGeom = null;
+		com.vividsolutions.jts.geom.Geometry otherJtsGeom = null;
+		try {
+			jtsGeom = (com.vividsolutions.jts.geom.Geometry) geom
+			.invokeOperation(ToJTS.CODE, null);
+		} catch (GeometryOperationNotSupportedException e) {
+			throw new GeometryOperationException(geom.getType(), CODE, e);
+		}
+		try {
+
+			otherJtsGeom = (com.vividsolutions.jts.geom.Geometry) otherGeom
+			.invokeOperation(ToJTS.CODE, null);
+		} catch (GeometryOperationNotSupportedException e) {
+			throw new GeometryOperationException(otherGeom.getType(), CODE, e);
+		}
+		if (jtsGeom!=null && otherJtsGeom!=null)
+			return new Boolean(jtsGeom.crosses(otherJtsGeom));
+		return new Boolean(false);
+	}
+
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Within.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Within.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/relationship/Within.java	(revision 38288)
@@ -0,0 +1,97 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2008 IVER T.I. S.A.   {{Task}}
+ */
+
+/**
+ *
+ */
+package org.gvsig.fmap.geom.operation.relationship;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.operation.tojts.ToJTS;
+import org.gvsig.fmap.geom.primitive.impl.DefaultNullGeometry;
+
+/**
+ *
+ * @author Vicente Caballero Navarro
+ *
+ */
+public class Within extends GeometryOperation {
+    public static final String NAME = "within";
+	public static final int CODE = GeometryLocator.getGeometryManager().
+    	getGeometryOperationCode(NAME);
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#getOperationIndex()
+     */
+    public int getOperationIndex() {
+        return CODE;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.gvsig.fmap.geom.operation.GeometryOperation#invoke(org.gvsig.fmap.geom.Geometry,
+     *      org.gvsig.fmap.geom.operation.GeometryOperationContext)
+     */
+    public Object invoke(Geometry geom, GeometryOperationContext ctx)
+            throws GeometryOperationException {
+        DefaultRelationshipGeometryOperationContext myCtx = null;
+        myCtx = (DefaultRelationshipGeometryOperationContext) ctx;
+
+        Geometry otherGeom = myCtx.getGeom();
+        if (otherGeom instanceof DefaultNullGeometry || geom instanceof DefaultNullGeometry ){
+            return new Boolean(false);
+        }
+        // TODO optimizar esto para los rectangulos (envelope)
+        com.vividsolutions.jts.geom.Geometry jtsGeom = null;
+        com.vividsolutions.jts.geom.Geometry otherJtsGeom = null;
+        try {
+            jtsGeom = (com.vividsolutions.jts.geom.Geometry) geom
+                    .invokeOperation(ToJTS.CODE, null);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryOperationException(geom.getType(), CODE, e);
+        }
+        try {
+
+            otherJtsGeom = (com.vividsolutions.jts.geom.Geometry) otherGeom
+                    .invokeOperation(ToJTS.CODE, null);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryOperationException(otherGeom.getType(), CODE, e);
+        }
+        if (jtsGeom!=null && otherJtsGeom!=null)
+            return new Boolean(jtsGeom.within(otherJtsGeom));
+        return new Boolean(false);
+    }
+
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperationNotSupportedException.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperationNotSupportedException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperationNotSupportedException.java	(revision 38288)
@@ -0,0 +1,80 @@
+package org.gvsig.fmap.geom.operation;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.tools.exception.BaseException;
+
+public class GeometryOperationNotSupportedException extends BaseException {
+
+	/**
+	 * Generated UID
+	 */
+	private static final long serialVersionUID = -8394502194572892834L;
+
+	/**
+	 * Constants specific to this BaseException subclass
+	 */
+	private static final String MESSAGE_KEY = "Operation_opCode_is_not_registered_for_geomTypeName_type";
+	private static final String FORMAT_STRING = "Operation %(opCode)s is not registered for '%(geomTypeName)s' type.";
+	
+	private String geomTypeName = null;
+	private int opCode = -1;
+	
+	/**
+	 * Constructor with the operation code of a common operation.
+	 * @param opCode
+	 */	
+	public GeometryOperationNotSupportedException(int opCode) {
+		this(opCode, null);
+	}
+	
+	/**
+	 * Constructor with the operation code related to a geometry type
+	 * @param opCode
+	 * @param geomType
+	 */
+	public GeometryOperationNotSupportedException(int opCode, GeometryType geomType) {
+		this(opCode, geomType, null);
+	}
+
+	/**
+	 * Constructor to use when <code>this</code> is caused by another Exception 
+	 * but there is not further context data available.
+	 * @param e
+	 */
+	public GeometryOperationNotSupportedException(Exception e) {
+		this(-1, null, e);
+	}
+	
+	/**
+	 * Main constructor
+	 * @param opCode
+	 * @param geomType
+	 * @param e
+	 */
+	public GeometryOperationNotSupportedException(int opCode, GeometryType geomType, Exception e) {
+		messageKey = MESSAGE_KEY;
+		formatString = FORMAT_STRING;
+		code = serialVersionUID;
+
+		if (e != null) {
+			initCause(e);
+		}
+		if (geomType != null) {
+			geomTypeName = geomType.getName();
+		} else {
+			geomTypeName = "ANY";
+		}
+		this.opCode = opCode;
+	}
+		
+	protected Map values() {
+		HashMap map = new HashMap();
+		map.put("opCode", Integer.toString(opCode));
+		map.put("geomTypeName", geomTypeName);
+		return map;
+	}
+	
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/GeometryOperationNotSupportedException.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/MultiSurfaceToJTS.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/MultiSurfaceToJTS.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/MultiSurfaceToJTS.java	(revision 38288)
@@ -0,0 +1,69 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.operation.tojts;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.aggregate.MultiCurve;
+import org.gvsig.fmap.geom.aggregate.MultiSurface;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+
+import com.vividsolutions.jts.geom.LineString;
+import com.vividsolutions.jts.geom.MultiLineString;
+import com.vividsolutions.jts.geom.MultiPolygon;
+import com.vividsolutions.jts.geom.Polygon;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class MultiSurfaceToJTS  extends ToJTS{
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.tojts.ToJTS#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invoke(Geometry geom, GeometryOperationContext ctx) throws GeometryOperationException {
+		int srid = -1;
+		if (ctx != null){
+			srid = ((JTSGeometryOperationContext)ctx).getSrid();
+		}
+		MultiSurface multiSurface = (MultiSurface)geom;
+		
+		Polygon[] polygons = new Polygon[multiSurface.getPrimitivesNumber()];
+        for (int i = 0; i < polygons.length; i++){
+        	try {
+				polygons[i] = (Polygon) multiSurface.getPrimitiveAt(i).invokeOperation(CODE, ctx);
+			} catch (GeometryOperationNotSupportedException e) {
+				throw new GeometryOperationException(e);
+			}
+        }       
+        MultiPolygon polygon = new com.vividsolutions.jts.geom.GeometryFactory().createMultiPolygon(polygons);
+	    polygon.setSRID(srid);
+        return polygon;
+	}	
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/MultiSurfaceToJTS.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/MultiPointToJTS.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/MultiPointToJTS.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/MultiPointToJTS.java	(revision 38288)
@@ -0,0 +1,65 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.operation.tojts;
+
+import com.vividsolutions.jts.geom.Coordinate;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.aggregate.MultiPoint;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.primitive.Point;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class MultiPointToJTS extends ToJTS{
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.tojts.ToJTS#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invoke(Geometry geom, GeometryOperationContext ctx) throws GeometryOperationException {
+		int srid = -1;
+		if (ctx != null){
+			srid = ((JTSGeometryOperationContext)ctx).getSrid();
+		}
+		MultiPoint multiPoint = (MultiPoint)geom;
+		int numPoints = multiPoint.getPrimitivesNumber();
+        Coordinate[] coordinates = new Coordinate[numPoints];
+        
+        for(int i=0; i<numPoints; i++){
+            Point point = multiPoint.getPointAt(i);
+            coordinates[i] = new Coordinate(point.getX(), point.getY());
+        }
+        com.vividsolutions.jts.geom.Geometry gtMultiPoint = geomFactory.createMultiPoint(coordinates);
+        gtMultiPoint.setSRID(srid);
+
+        return gtMultiPoint;		
+	}	
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/MultiPointToJTS.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/Curve2DToJTS.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/Curve2DToJTS.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/Curve2DToJTS.java	(revision 38288)
@@ -0,0 +1,137 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.operation.tojts;
+
+import java.awt.geom.PathIterator;
+import java.util.ArrayList;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.primitive.Point;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.CoordinateArrays;
+import com.vividsolutions.jts.geom.LineString;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class Curve2DToJTS extends ToJTS{
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.tojts.ToJTS#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invoke(Geometry geom, GeometryOperationContext ctx) throws GeometryOperationException {
+		int srid = -1;
+		if (ctx != null){
+			srid = ((JTSGeometryOperationContext)ctx).getSrid();
+		}
+		ArrayList arrayLines = new ArrayList();
+		PathIterator theIterator = geom.getPathIterator(null, geomManager.getFlatness());
+		int theType;
+		double[] theData = new double[6];
+		ArrayList arrayCoords = null;
+		LineString lin;
+		int numParts = 0;
+		Coordinate coord;
+		
+		while (!theIterator.isDone()) {
+			//while not done
+			theType = theIterator.currentSegment(theData);
+
+			//Populate a segment of the new
+			// GeneralPathX object.
+			//Process the current segment to populate a new
+			// segment of the new GeneralPathX object.
+			switch (theType) {
+			case PathIterator.SEG_MOVETO:
+
+				// System.out.println("SEG_MOVETO");
+				if (arrayCoords == null) {
+					arrayCoords = new ArrayList();
+				} else {
+					lin = geomFactory.createLineString(CoordinateArrays.toCoordinateArray(
+							arrayCoords));
+					lin.setSRID(srid);
+					arrayLines.add(lin);
+					arrayCoords = new ArrayList();
+				}
+
+				numParts++;
+				coord = new Coordinate(theData[0], theData[1]);
+
+				arrayCoords.add(coord);
+
+				break;
+
+			case PathIterator.SEG_LINETO:
+
+				// System.out.println("SEG_LINETO");
+				arrayCoords.add(new Coordinate(theData[0],
+						theData[1]));
+
+				break;
+
+			case PathIterator.SEG_QUADTO:
+				System.out.println("Not supported here");
+
+				break;
+
+			case PathIterator.SEG_CUBICTO:
+				System.out.println("Not supported here");
+
+				break;
+
+			case PathIterator.SEG_CLOSE:
+				// A�adimos el primer punto para cerrar.
+				Coordinate firstCoord = (Coordinate) arrayCoords.get(0);
+					// Solo anyadimos cuando no esta ya cerrado
+				arrayCoords.add(new Coordinate(firstCoord.x,
+						firstCoord.y));
+
+				break;
+			} //end switch
+
+			theIterator.next();
+		} //end while loop
+
+		if (arrayCoords.size()<2) {
+			throw new GeometryOperationException(geom.getType(), geom.getGeometryType().getSubType());
+		}
+		lin = new com.vividsolutions.jts.geom.GeometryFactory().createLineString(CoordinateArrays.toCoordinateArray(
+				arrayCoords));
+
+		lin.setSRID(srid);
+
+		arrayLines.add(lin);
+		LineString[] lineString = com.vividsolutions.jts.geom.GeometryFactory.toLineStringArray(arrayLines);
+		lineString[0].setSRID(srid);
+		return lineString[0];
+	}	
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/Curve2DToJTS.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/JTSGeometryOperationContext.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/JTSGeometryOperationContext.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/JTSGeometryOperationContext.java	(revision 38288)
@@ -0,0 +1,49 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.operation.tojts;
+
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class JTSGeometryOperationContext extends GeometryOperationContext {
+	private int srid; 
+
+	public JTSGeometryOperationContext(int srid){
+		this.srid = srid;
+	}	
+	
+	/**
+	 * @return the srid
+	 */
+	public int getSrid() {
+		return srid;
+	}
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/JTSGeometryOperationContext.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/Surface2DToJTS.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/Surface2DToJTS.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/Surface2DToJTS.java	(revision 38288)
@@ -0,0 +1,328 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.operation.tojts;
+
+import java.awt.geom.PathIterator;
+import java.util.ArrayList;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+
+import com.vividsolutions.jts.algorithm.CGAlgorithms;
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.CoordinateArrays;
+import com.vividsolutions.jts.geom.Envelope;
+import com.vividsolutions.jts.geom.LineString;
+import com.vividsolutions.jts.geom.LinearRing;
+import com.vividsolutions.jts.geom.Polygon;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class Surface2DToJTS extends ToJTS{
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.tojts.ToJTS#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invoke(Geometry geom, GeometryOperationContext ctx) throws GeometryOperationException {
+		int srid = -1;
+		if (ctx != null){
+			srid = ((JTSGeometryOperationContext)ctx).getSrid();
+		}
+		ArrayList arrayLines = new ArrayList();
+		PathIterator theIterator = geom.getPathIterator(null, geomManager.getFlatness());
+		int theType;
+		double[] theData = new double[6];
+		ArrayList arrayCoords = null;
+		LineString lin;
+		int numParts = 0;
+		Coordinate coord;
+
+		ArrayList shells = new ArrayList();
+		ArrayList holes = new ArrayList();
+		Coordinate[] points = null;
+
+		theIterator = geom.getPathIterator(null, geomManager.getFlatness());
+
+		while (!theIterator.isDone()) {
+			//while not done
+			theType = theIterator.currentSegment(theData);
+
+			//Populate a segment of the new
+			// GeneralPathX object.
+			//Process the current segment to populate a new
+			// segment of the new GeneralPathX object.
+			switch (theType) {
+			case PathIterator.SEG_MOVETO:
+
+				// System.out.println("SEG_MOVETO");
+				if (arrayCoords == null) {
+					arrayCoords = new ArrayList();
+				} else {
+					points = CoordinateArrays.toCoordinateArray(arrayCoords);
+
+					try {
+						LinearRing ring = geomFactory.createLinearRing(points);
+
+						if (CGAlgorithms.isCCW(points)) {
+							holes.add(ring);
+						} else {
+							shells.add(ring);
+						}
+					} catch (Exception e) {
+						/* (jaume) caso cuando todos los puntos son iguales
+						 * devuelvo el propio punto
+						 */
+						boolean same = true;
+						for (int i = 0; i < points.length-1 && same; i++) {
+							if (points[i].x != points[i+1].x ||
+									points[i].y != points[i+1].y /*||
+									points[i].z != points[i+1].z*/
+							) {
+								same = false;
+							}
+						}
+						if (same) {
+							return geomFactory.createPoint(points[0]);
+						}
+						/*
+						 * caso cuando es una l�nea de 3 puntos, no creo un LinearRing, sino
+						 * una linea
+						 */
+						if (points.length>1 && points.length<=3) {
+							// return geomFactory.createLineString(points);
+							return geomFactory.createMultiLineString(new LineString[] {geomFactory.createLineString(points)});
+						}
+
+						System.err.println(
+						"Caught Topology exception in GMLLinearRingHandler");
+
+						return null;
+					}
+
+					/* if (numParts == 1)
+					 {
+					 linRingExt = new GeometryFactory().createLinearRing(
+					 CoordinateArrays.toCoordinateArray(arrayCoords));
+					 }
+					 else
+					 {
+					 linRing = new GeometryFactory().createLinearRing(
+					 CoordinateArrays.toCoordinateArray(arrayCoords));
+					 arrayLines.add(linRing);
+					 } */
+					arrayCoords = new ArrayList();
+				}
+
+				numParts++;
+				arrayCoords.add(new Coordinate(theData[0],
+						theData[1]));
+
+				break;
+
+			case PathIterator.SEG_LINETO:
+
+				// System.out.println("SEG_LINETO");
+				arrayCoords.add(new Coordinate(theData[0],
+						theData[1]));
+
+				break;
+
+			case PathIterator.SEG_QUADTO:
+				System.out.println("SEG_QUADTO Not supported here");
+
+				break;
+
+			case PathIterator.SEG_CUBICTO:
+				System.out.println("SEG_CUBICTO Not supported here");
+
+				break;
+
+			case PathIterator.SEG_CLOSE:
+
+				// A�adimos el primer punto para cerrar.
+				Coordinate firstCoord = (Coordinate) arrayCoords.get(0);
+				arrayCoords.add(new Coordinate(firstCoord.x,
+						firstCoord.y));
+
+				break;
+			} //end switch
+
+			// System.out.println("theData[0] = " + theData[0] + " theData[1]=" + theData[1]);
+			theIterator.next();
+		} //end while loop
+
+
+		Coordinate firstCoord = (Coordinate) arrayCoords.get(0);
+		Coordinate lastCoord = (Coordinate) arrayCoords.get(arrayCoords
+				.size() - 1);
+		if (!isClosed(firstCoord, lastCoord)) {
+			arrayCoords.add(firstCoord);
+		}
+		points = CoordinateArrays.toCoordinateArray(arrayCoords);
+
+		try {
+			LinearRing ring = geomFactory.createLinearRing(points);
+
+			if (CGAlgorithms.isCCW(points)) {
+				holes.add(ring);
+			} else {
+				shells.add(ring);
+			}
+			ring.setSRID(srid);
+		} catch (Exception e) {
+			/* (jaume) caso cuando todos los puntos son iguales
+			 * devuelvo el propio punto
+			 */
+			boolean same = true;
+			for (int i = 0; i < points.length-1 && same; i++) {
+				if (points[i].x != points[i+1].x ||
+						points[i].y != points[i+1].y /*||
+						points[i].z != points[i+1].z*/
+				) {
+					same = false;
+				}
+			}
+			if (same) {
+				com.vividsolutions.jts.geom.Geometry geoJTS = geomFactory.createPoint(points[0]);
+				geoJTS.setSRID(srid);
+				return geoJTS;
+			}
+			/*
+			 * caso cuando es una l�nea de 3 puntos, no creo un LinearRing, sino
+			 * una linea
+			 */
+			if (points.length>1 && points.length<=3) {
+				// return geomFactory.createLineString(points);
+				com.vividsolutions.jts.geom.Geometry geoJTS = geomFactory
+						.createMultiLineString(new LineString[] { geomFactory
+								.createLineString(points) });
+				geoJTS.setSRID(srid);
+				return geoJTS;
+			}
+			System.err.println(
+			"Caught Topology exception in GMLLinearRingHandler");
+
+			return null;
+		}
+
+		/* linRing = new GeometryFactory().createLinearRing(
+		 CoordinateArrays.toCoordinateArray(arrayCoords)); */
+
+		// System.out.println("NumParts = " + numParts);
+		//now we have a list of all shells and all holes
+		ArrayList holesForShells = new ArrayList(shells.size());
+
+		for (int i = 0; i < shells.size(); i++) {
+			holesForShells.add(new ArrayList());
+		}
+
+		//find homes
+		for (int i = 0; i < holes.size(); i++) {
+			LinearRing testRing = (LinearRing) holes.get(i);
+			LinearRing minShell = null;
+			Envelope minEnv = null;
+			Envelope testEnv = testRing.getEnvelopeInternal();
+			Coordinate testPt = testRing.getCoordinateN(0);
+			LinearRing tryRing = null;
+
+			for (int j = 0; j < shells.size(); j++) {
+				tryRing = (LinearRing) shells.get(j);
+
+				Envelope tryEnv = tryRing.getEnvelopeInternal();
+
+				if (minShell != null) {
+					minEnv = minShell.getEnvelopeInternal();
+				}
+
+				boolean isContained = false;
+				Coordinate[] coordList = tryRing.getCoordinates();
+
+				if (tryEnv.contains(testEnv) &&
+						(CGAlgorithms.isPointInRing(testPt, coordList) ||
+								(pointInList(testPt, coordList)))) {
+					isContained = true;
+				}
+
+				// check if this new containing ring is smaller than the current minimum ring
+				if (isContained) {
+					if ((minShell == null) || minEnv.contains(tryEnv)) {
+						minShell = tryRing;
+					}
+				}
+			}
+
+			if (minShell == null) {
+//				System.out.println(
+//				"polygon found with a hole thats not inside a shell");
+//				azabala: we do the assumption that this hole is really a shell (polygon)
+//				whose point werent digitized in the right order
+				Coordinate[] cs = testRing.getCoordinates();
+				Coordinate[] reversed = new Coordinate[cs.length];
+				int pointIndex = 0;
+				for(int z = cs.length-1; z >= 0; z--){
+					reversed[pointIndex] = cs[z];
+					pointIndex++;
+				}
+				LinearRing newRing = geomFactory.createLinearRing(reversed);
+				shells.add(newRing);
+				holesForShells.add(new ArrayList());
+			} else {
+				((ArrayList) holesForShells.get(shells.indexOf(minShell))).add(testRing);
+			}
+		}
+
+		Polygon[] polygons = new Polygon[shells.size()];
+
+		for (int i = 0; i < shells.size(); i++) {
+			polygons[i] = geomFactory.createPolygon((LinearRing) shells.get(
+					i),
+					(LinearRing[]) ((ArrayList) holesForShells.get(i)).toArray(
+							new LinearRing[0]));
+			polygons[i].setSRID(srid);
+		}
+	
+		holesForShells = null;
+		shells = null;
+		holes = null;
+
+		//com.vividsolutions.jts.geom.Geometry geoJTS = geomFactory.createMultiPolygon(polygons);
+		polygons[0].setSRID(srid);
+
+		com.vividsolutions.jts.geom.Geometry geoJTS;
+        if (polygons.length == 1) {
+            geoJTS = polygons[0];
+        } else {
+            // its a multi part
+            geoJTS = geomFactory.createMultiPolygon(polygons);
+        }
+        geoJTS.setSRID(srid);
+		return geoJTS;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/Surface2DToJTS.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/MultiCurveToJTS.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/MultiCurveToJTS.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/MultiCurveToJTS.java	(revision 38288)
@@ -0,0 +1,67 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.operation.tojts;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.aggregate.MultiCurve;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.primitive.Point;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.LineString;
+import com.vividsolutions.jts.geom.MultiLineString;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class MultiCurveToJTS extends ToJTS{
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.tojts.ToJTS#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invoke(Geometry geom, GeometryOperationContext ctx) throws GeometryOperationException {
+		int srid = -1;
+		if (ctx != null){
+			srid = ((JTSGeometryOperationContext)ctx).getSrid();
+		}
+		MultiCurve multiCurve = (MultiCurve)geom;
+		LineString[] lines = new LineString[multiCurve.getPrimitivesNumber()];
+        for (int i = 0; i < lines.length; i++){
+        	try {
+				lines[i] = (LineString) multiCurve.getPrimitiveAt(i).invokeOperation(CODE, ctx);
+			} catch (GeometryOperationNotSupportedException e) {
+				throw new GeometryOperationException(e);
+			}
+        }
+        MultiLineString lineString = new com.vividsolutions.jts.geom.GeometryFactory().createMultiLineString(lines);
+        lineString.setSRID(srid);
+        return lineString;
+	}	
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/MultiCurveToJTS.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/Point2DToJTS.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/Point2DToJTS.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/Point2DToJTS.java	(revision 38288)
@@ -0,0 +1,57 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.operation.tojts;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.primitive.Point;
+
+import com.vividsolutions.jts.geom.Coordinate;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class Point2DToJTS extends ToJTS{
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.operation.tojts.ToJTS#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invoke(Geometry geom, GeometryOperationContext ctx) {
+		int srid = -1;
+		if (ctx != null){
+			srid = ((JTSGeometryOperationContext)ctx).getSrid();
+		}
+		Point p = (Point) geom;
+		Coordinate coord = new Coordinate(p.getX(), p.getY());
+		com.vividsolutions.jts.geom.Geometry geoJTS = geomFactory.createPoint(coord);
+		geoJTS.setSRID(srid);
+		return geoJTS;
+	}	
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/Point2DToJTS.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/ToJTS.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/ToJTS.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/operation/tojts/ToJTS.java	(revision 38288)
@@ -0,0 +1,57 @@
+package org.gvsig.fmap.geom.operation.tojts;
+
+import java.lang.reflect.Array;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.util.Converter;
+
+import com.vividsolutions.jts.geom.Coordinate;
+
+public abstract class ToJTS extends GeometryOperation {
+    public static final String NAME = "toJTS";
+	protected static GeometryManager geomManager = GeometryLocator.getGeometryManager();
+    public static final int CODE = geomManager.getGeometryOperationCode(NAME);	
+	protected final static com.vividsolutions.jts.geom.GeometryFactory geomFactory = new com.vividsolutions.jts.geom.GeometryFactory();
+
+	public int getOperationIndex() {
+		return CODE;
+	}
+
+	protected boolean isClosed(Coordinate firstCoordinate, Coordinate lastCoordinate){
+		double diff = Math.abs(lastCoordinate.x - firstCoordinate.x);
+		if (diff > 0.000001){
+			return false;
+		}
+		diff = Math.abs(lastCoordinate.y - firstCoordinate.y);
+		if (diff > 0.000001) {
+			return false;
+		}
+		return true;
+	}
+	
+	protected boolean pointInList(Coordinate testPoint, Coordinate[] pointList) {
+		int t;
+		int numpoints;
+		Coordinate p;
+
+		numpoints = Array.getLength(pointList);
+
+		for (t = 0; t < numpoints; t++) {
+			p = pointList[t];
+
+			if ((testPoint.x == p.x) && (testPoint.y == p.y) &&
+					((testPoint.z == p.z) || (!(testPoint.z == testPoint.z))) //nan test; x!=x iff x is nan
+			) {
+				return true;
+			}
+		}
+
+		return false;
+	}
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToGeometry.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToGeometry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToGeometry.java	(revision 38288)
@@ -0,0 +1,61 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.impl.coerce;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.tools.dataTypes.CoercionException;
+import org.gvsig.tools.dataTypes.DataTypesManager.Coercion;
+
+/**
+ * Convert a object to Geometry.
+ * 
+ * Support convert:
+ * - Geometry to Geometry (do nothing)
+ * - WKB (byte[]) to Geometry
+ * - WKT (String/toString) to Geometry
+ * 
+ *  
+ * @author gvSIG Team
+ * @version $Id$
+ * 
+ */
+public class CoerceToGeometry implements Coercion {
+
+	public Object coerce(Object value) throws CoercionException {
+		try {
+			if( value == null || value instanceof Geometry ) {
+				return value;
+			}
+			GeometryManager manager = GeometryLocator.getGeometryManager();
+			if( value instanceof byte[] ) {
+				return manager.createFrom((byte[])value);
+			}
+			return manager.createFrom(value.toString());
+		} catch (Exception e) {
+			throw new CoercionException(e);
+		}
+
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToGeometry.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToEnvelope.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToEnvelope.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToEnvelope.java	(revision 38288)
@@ -0,0 +1,67 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.impl.coerce;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.tools.dataTypes.CoercionException;
+import org.gvsig.tools.dataTypes.DataTypesManager.Coercion;
+/**
+ * Convert a object to Geometry.
+ * 
+ * Support convert:
+ * - Envelope to Envelope (do nothing)
+ * - Geometry to Envelope
+ * - WKB (byte[]) to Geometry
+ * - WKT (String/toString) to Geometry
+ * 
+ *  
+ * @author gvSIG Team
+ * @version $Id$
+ * 
+ */
+public class CoerceToEnvelope implements Coercion {
+
+	public Object coerce(Object value) throws CoercionException {
+		try {
+			if(value == null || value instanceof Envelope ) {
+				return value;
+			}
+			if( value instanceof Geometry ) {
+				return ((Geometry)value).getEnvelope();
+			}
+			GeometryManager manager = GeometryLocator.getGeometryManager();
+			if( value instanceof byte[] ) {
+				Geometry geom = manager.createFrom((byte[])value);
+				return geom.getEnvelope();
+			}
+			Geometry geom = manager.createFrom(value.toString());
+			return geom.getEnvelope(); 
+		} catch (Exception e) {
+			throw new CoercionException(e);
+		}
+
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToEnvelope.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToByteArray.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToByteArray.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToByteArray.java	(revision 38288)
@@ -0,0 +1,65 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.impl.coerce;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.tools.dataTypes.CoercionException;
+import org.gvsig.tools.dataTypes.DataTypesManager.Coercion;
+
+/**
+ * Convert a Geometry to Byte Array encoded as WKB.
+ *  
+ * @author gvSIG Team
+ * @version $Id$
+ * 
+ */
+public class CoerceToByteArray implements Coercion {
+
+	Coercion previous = null;
+	
+	public CoerceToByteArray() {
+		// Do nothing
+	}
+	
+	public CoerceToByteArray(Coercion previous) {
+		this.previous = previous;
+	}
+	
+	
+	public Object coerce(Object value) throws CoercionException {
+		try {
+			if( value == null || value instanceof byte[] ) {
+				return value;
+			}
+			if( value instanceof Geometry ) {
+				return ((Geometry)value).convertToWKT();
+			}
+			if( previous != null ) {
+				return previous.coerce(value);
+			}
+		} catch (Exception e) {
+			throw new CoercionException(e);
+		}
+		throw new CoercionException();
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToByteArray.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToString.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToString.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToString.java	(revision 38288)
@@ -0,0 +1,66 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.impl.coerce;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.tools.dataTypes.CoercionException;
+import org.gvsig.tools.dataTypes.DataTypesManager.Coercion;
+
+/**
+ * Convert a Geometry to String encoded as WKT.
+ * 
+ *  
+ * @author gvSIG Team
+ * @version $Id$
+ * 
+ */
+public class CoerceToString implements Coercion {
+
+	Coercion previous = null;
+	
+	public CoerceToString() {
+		// Do nothing
+	}
+	
+	public CoerceToString(Coercion previous) {
+		this.previous = previous;
+	}
+	
+	
+	public Object coerce(Object value) throws CoercionException {
+		try {
+			if( value == null || value instanceof String ) {
+				return value;
+			}
+			if( value instanceof Geometry ) {
+				return ((Geometry)value).convertToWKT();
+			}
+			if( previous != null ) {
+				return previous.coerce(value);
+			}
+		} catch (Exception e) {
+			throw new CoercionException(e);
+		}
+		throw new CoercionException();
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/coerce/CoerceToString.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/DefaultGeometryLibrary.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/DefaultGeometryLibrary.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/DefaultGeometryLibrary.java	(revision 38288)
@@ -0,0 +1,209 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.impl;
+
+import org.gvsig.fmap.geom.DataTypes;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.GeometryLibrary;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.aggregate.impl.BaseMultiPrimitive2D;
+import org.gvsig.fmap.geom.aggregate.impl.MultiCurve2D;
+import org.gvsig.fmap.geom.aggregate.impl.MultiCurve2DZ;
+import org.gvsig.fmap.geom.aggregate.impl.MultiPoint2D;
+import org.gvsig.fmap.geom.aggregate.impl.MultiPoint2DZ;
+import org.gvsig.fmap.geom.aggregate.impl.MultiSolid2DZ;
+import org.gvsig.fmap.geom.aggregate.impl.MultiSurface2D;
+import org.gvsig.fmap.geom.aggregate.impl.MultiSurface3D;
+import org.gvsig.fmap.geom.impl.coerce.CoerceToByteArray;
+import org.gvsig.fmap.geom.impl.coerce.CoerceToEnvelope;
+import org.gvsig.fmap.geom.impl.coerce.CoerceToGeometry;
+import org.gvsig.fmap.geom.impl.coerce.CoerceToString;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.primitive.impl.Arc2D;
+import org.gvsig.fmap.geom.primitive.impl.Arc2DZ;
+import org.gvsig.fmap.geom.primitive.impl.Circle2D;
+import org.gvsig.fmap.geom.primitive.impl.Circle2DZ;
+import org.gvsig.fmap.geom.primitive.impl.Curve2D;
+import org.gvsig.fmap.geom.primitive.impl.Curve2DZ;
+import org.gvsig.fmap.geom.primitive.impl.DefaultEnvelope;
+import org.gvsig.fmap.geom.primitive.impl.DefaultNullGeometry;
+import org.gvsig.fmap.geom.primitive.impl.Ellipse2D;
+import org.gvsig.fmap.geom.primitive.impl.Ellipse2DZ;
+import org.gvsig.fmap.geom.primitive.impl.EllipticArc2D;
+import org.gvsig.fmap.geom.primitive.impl.EllipticArc2DZ;
+import org.gvsig.fmap.geom.primitive.impl.Envelope2D;
+import org.gvsig.fmap.geom.primitive.impl.Envelope3D;
+import org.gvsig.fmap.geom.primitive.impl.Geometry2D;
+import org.gvsig.fmap.geom.primitive.impl.Point2D;
+import org.gvsig.fmap.geom.primitive.impl.Point2DZ;
+import org.gvsig.fmap.geom.primitive.impl.Solid2DZ;
+import org.gvsig.fmap.geom.primitive.impl.Spline2D;
+import org.gvsig.fmap.geom.primitive.impl.Spline2DZ;
+import org.gvsig.fmap.geom.primitive.impl.Surface2D;
+import org.gvsig.fmap.geom.primitive.impl.Surface2DZ;
+import org.gvsig.fmap.geom.type.persistence.GeometryTypePersistenceFactory;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dataTypes.DataTypesManager;
+import org.gvsig.tools.library.AbstractLibrary;
+import org.gvsig.tools.library.LibraryException;
+import org.gvsig.tools.persistence.PersistenceManager;
+
+/**
+ * Registers the default implementation for {@link GeometryManager}
+ * 
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class DefaultGeometryLibrary extends AbstractLibrary {
+
+    public void doRegistration() {
+        registerAsImplementationOf(GeometryLibrary.class);
+    }
+
+    protected void doInitialize() throws LibraryException {
+        // Register the default GeometryManager
+        GeometryLocator.registerGeometryManager(DefaultGeometryManager.class);
+    }
+
+    protected void doPostInitialize() throws LibraryException {
+        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
+
+        DataTypesManager dataTypesManager = ToolsLocator.getDataTypesManager();
+
+        dataTypesManager
+        .setCoercion(DataTypes.GEOMETRY, new CoerceToGeometry());
+        dataTypesManager
+        .setCoercion(DataTypes.ENVELOPE, new CoerceToEnvelope());
+        dataTypesManager.setCoercion(DataTypes.STRING, new CoerceToString(
+            dataTypesManager.getCoercion(DataTypes.STRING)));
+        dataTypesManager.setCoercion(
+            DataTypes.BYTEARRAY,
+            new CoerceToByteArray(dataTypesManager
+                .getCoercion(DataTypes.BYTEARRAY)));
+
+        GeometryOperation.OPERATION_INTERSECTS_CODE =
+            GeometryLocator.getGeometryManager().getGeometryOperationCode(
+                GeometryOperation.OPERATION_INTERSECTS_NAME);
+
+        GeometryOperation.OPERATION_CONTAINS_CODE =
+            GeometryLocator.getGeometryManager().getGeometryOperationCode(
+                GeometryOperation.OPERATION_CONTAINS_NAME);
+
+        // Register the geometries in 2D
+        geometryManager.registerGeometryType(DefaultNullGeometry.class, "Null",
+            TYPES.NULL, SUBTYPES.GEOM2D);
+        
+        geometryManager.registerGeometryType(Geometry2D.class, "Geometry2D",
+                TYPES.GEOMETRY, SUBTYPES.GEOM2D);
+
+        //Register points in 2D
+        geometryManager.registerGeometryType(Point2D.class, "Point2D",
+            TYPES.POINT, SUBTYPES.GEOM2D);
+
+        //Register curves in 2D
+        geometryManager.registerGeometryType(Curve2D.class, "Curve2D",
+            TYPES.CURVE, SUBTYPES.GEOM2D);
+        geometryManager.registerGeometryType(Arc2D.class, "Arc2D", 
+            TYPES.ARC, SUBTYPES.GEOM2D, TYPES.CURVE);
+        geometryManager.registerGeometryType(Spline2D.class, "Spline2D",
+            TYPES.SPLINE, SUBTYPES.GEOM2D, TYPES.CURVE);
+
+        //Register surfaces in 2D
+        geometryManager.registerGeometryType(Surface2D.class, "Surface2D",
+            TYPES.SURFACE, SUBTYPES.GEOM2D, TYPES.SURFACE);
+        geometryManager.registerGeometryType(Circle2D.class, "Circle2D",
+            TYPES.CIRCLE, SUBTYPES.GEOM2D, TYPES.SURFACE);      
+        geometryManager.registerGeometryType(Ellipse2D.class, "Ellipse2D",
+            TYPES.ELLIPSE, SUBTYPES.GEOM2D, TYPES.SURFACE);
+        geometryManager.registerGeometryType(EllipticArc2D.class,"EllipticArc2D", 
+            TYPES.ELLIPTICARC, SUBTYPES.GEOM2D, TYPES.SURFACE);
+
+        //Register multigeometries in 2D
+        geometryManager.registerGeometryType(BaseMultiPrimitive2D.class, "MultiPrimitive2D", 
+            TYPES.AGGREGATE, SUBTYPES.GEOM2D);
+        geometryManager.registerGeometryType(MultiPoint2D.class, "MultiPoint2D",
+            TYPES.MULTIPOINT, SUBTYPES.GEOM2D, TYPES.AGGREGATE);
+        geometryManager.registerGeometryType(MultiCurve2D.class, "MultiCurve2D",
+            TYPES.MULTICURVE, SUBTYPES.GEOM2D, TYPES.AGGREGATE); 
+        geometryManager.registerGeometryType(MultiSurface2D.class,"MultiSurface2D",
+            TYPES.MULTISURFACE, SUBTYPES.GEOM2D, TYPES.AGGREGATE);
+
+        // Register the geometries in 3D
+        geometryManager.registerGeometryType(DefaultNullGeometry.class,
+            TYPES.NULL, SUBTYPES.GEOM3D);
+
+        //Register points in 3D
+        geometryManager.registerGeometryType(Point2DZ.class, "Point3D",
+            TYPES.POINT, SUBTYPES.GEOM3D, new int[0], new int[]{SUBTYPES.GEOM2D});
+
+        //Register curves in 3D
+        geometryManager.registerGeometryType(Curve2DZ.class, "Curve3D", 
+            TYPES.CURVE, SUBTYPES.GEOM3D, new int[0], new int[]{SUBTYPES.GEOM2D});
+        geometryManager.registerGeometryType(Arc2DZ.class, "Arc3D", 
+            TYPES.ARC, SUBTYPES.GEOM3D, TYPES.CURVE, SUBTYPES.GEOM2D);
+        geometryManager.registerGeometryType(Spline2DZ.class, "Spline3D", 
+            TYPES.SPLINE, SUBTYPES.GEOM3D, TYPES.CURVE, SUBTYPES.GEOM2D);
+
+        //Register surfaces in 2D
+        geometryManager.registerGeometryType(Surface2DZ.class, "Surface3D", 
+            TYPES.SURFACE, SUBTYPES.GEOM3D, new int[0], new int[]{SUBTYPES.GEOM2D});
+        geometryManager.registerGeometryType(Circle2DZ.class, "Circle3D",
+            TYPES.CIRCLE, SUBTYPES.GEOM3D, TYPES.SURFACE, SUBTYPES.GEOM2D);
+        geometryManager.registerGeometryType(Ellipse2DZ.class, "Ellipse3D", 
+            TYPES.ELLIPSE,SUBTYPES.GEOM3D, TYPES.SURFACE, SUBTYPES.GEOM2D);
+        geometryManager.registerGeometryType(EllipticArc2DZ.class, "EllipticArc3D",
+            TYPES.ELLIPTICARC, SUBTYPES.GEOM3D, TYPES.SURFACE, SUBTYPES.GEOM2D);
+
+        //Register multigeometries in 3D
+        geometryManager.registerGeometryType(MultiPoint2DZ.class, "Multipoint3D", 
+            TYPES.MULTIPOINT, SUBTYPES.GEOM3D, TYPES.AGGREGATE, SUBTYPES.GEOM2D);
+        geometryManager.registerGeometryType(MultiCurve2DZ.class,"MultiCurve3D",
+            TYPES.MULTICURVE, SUBTYPES.GEOM3D, TYPES.AGGREGATE, SUBTYPES.GEOM2D);
+        geometryManager.registerGeometryType(MultiSurface3D.class,"MultiSurface3D",
+            TYPES.MULTISURFACE, SUBTYPES.GEOM3D, TYPES.AGGREGATE, SUBTYPES.GEOM2D);
+
+        //Register solids
+        geometryManager.registerGeometryType(Solid2DZ.class, "Solid3D",
+            TYPES.SOLID, SUBTYPES.GEOM3D);
+        geometryManager.registerGeometryType(MultiSolid2DZ.class,"MultiSolid3D",
+            TYPES.MULTISOLID, SUBTYPES.GEOM3D, TYPES.AGGREGATE);
+
+        // Persistence
+        DefaultEnvelope.registerPersistent();
+        Envelope2D.registerPersistent();
+        Envelope3D.registerPersistent();
+
+        PersistenceManager persistenceManager =
+            ToolsLocator.getPersistenceManager();
+
+        persistenceManager.registerFactory(new GeometryPersistenceFactory());
+        persistenceManager
+            .registerFactory(new GeometryTypePersistenceFactory());
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/DefaultGeometryLibrary.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/GeometryPersistenceFactory.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/GeometryPersistenceFactory.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/GeometryPersistenceFactory.java	(revision 38288)
@@ -0,0 +1,95 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.impl;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryException;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.tools.dynobject.DynStruct;
+import org.gvsig.tools.persistence.AbstractSinglePersistenceFactory;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+
+
+/**
+ * Factory to manage the persistence of {@link Geometry} objects.
+ * 
+ * @author gvSIG Team
+ * @version $Id$
+ *
+ */
+public class GeometryPersistenceFactory extends AbstractSinglePersistenceFactory {
+    private static final String FIELD_STRING = "string";
+    private static final String FIELD_SRS = "srs";
+
+    private static final String DYNCLASS_NAME = "Geometry";
+    private static final String DYNCLASS_DESCRIPTION = "gvSIG Geometry";
+
+    private static final String OPERATION_FIELD_NAME = "";
+
+    private static final GeometryManager geometryManager = GeometryLocator.getGeometryManager();
+
+    /**
+     * @param theClass
+     * @param name
+     * @param description
+     * @param domainName
+     * @param domainUrl
+     */
+    protected GeometryPersistenceFactory() {
+        super(Geometry.class, DYNCLASS_NAME, DYNCLASS_DESCRIPTION, null, null);   
+
+        DynStruct definition = this.getDefinition();
+
+        definition.addDynFieldString(FIELD_STRING).setMandatory(true);
+        definition.addDynFieldString(FIELD_SRS).setMandatory(false);
+    }
+
+    public Object createFromState(PersistentState state)
+    throws PersistenceException {
+        String string = state.getString(FIELD_STRING);
+        String srs = state.getString(FIELD_SRS);
+
+        try {
+            return geometryManager.createFrom(string, srs);
+        } catch (CreateGeometryException e) {
+           throw new PersistenceException("Error creating the geometry", e);
+        } catch (GeometryException e) {
+            throw new PersistenceException("Error creating the geometry", e);
+        }
+    }
+
+    public void saveToState(PersistentState state, Object obj)
+    throws PersistenceException {
+        try {
+            state.set(FIELD_STRING, ((Geometry)obj).convertToWKT());
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new PersistenceException("Error converting the geometry", e);
+        } catch (GeometryOperationException e) {
+            throw new PersistenceException("Error converting the geometry", e);
+        }
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/GeometryPersistenceFactory.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/DefaultGeometryManager.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/DefaultGeometryManager.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/DefaultGeometryManager.java	(revision 38288)
@@ -0,0 +1,759 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.impl;
+
+import java.awt.geom.PathIterator;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.GeometryException;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.aggregate.MultiCurve;
+import org.gvsig.fmap.geom.aggregate.MultiSurface;
+import org.gvsig.fmap.geom.exception.CreateEnvelopeException;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.operation.fromwkt.FromWKTGeometryOperationContext;
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.NullGeometry;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.fmap.geom.primitive.impl.DefaultNullGeometry;
+import org.gvsig.fmap.geom.primitive.impl.Envelope2D;
+import org.gvsig.fmap.geom.primitive.impl.Envelope3D;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException;
+import org.gvsig.fmap.geom.type.GeometryTypeNotValidException;
+import org.gvsig.fmap.geom.type.impl.DefaultGeometryType;
+
+/**
+ * Default implementation for the {@link GeometryManager}. When the
+ * application starts, this class is registered in the {@link GeometryLocator}
+ * using the {@link DefaultGeometryLibrary}.
+ * 
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+
+public class DefaultGeometryManager implements GeometryManager {
+
+    private static final Logger logger = LoggerFactory
+    .getLogger(GeometryManager.class);
+    private double flatness = 0.8;
+
+    /**
+     * This list holds the unique name of all registered geometry operations.
+     * The index in which they are stored is also the operation code used to
+     * invoke each one of them
+     */
+    private List geometryOperations = new ArrayList();
+
+    /**
+     * Common operations are registered here. Type specific operations are
+     * registered in the corresponding GeometryType instance
+     */
+    // private List commonOperations = new ArrayList();
+
+    /**
+     * This map holds the instances of all registered GeometryType. The key is
+     * the name of the specific Geometry subclass.
+     * In other words, the string "org.gvsig.fmap.geom.primitive.Point2D" is the
+     * hash key to obtain an instance of GeometryType holding the
+     * operations associated to the class org.gvsig.fmap.geom.primitive.Point2D.
+     */
+    private Map geometryTypeName = new HashMap();
+
+    /**
+     * Matrix of geometry types by type (row) and subtype (column). This matrix
+     * will contain null values in the cells where a GeometryType hasn't been
+     * registered.
+     */
+    private GeometryType[][] geometryTypes;
+
+    /**
+     * GeometryType index counter. Each time a new geometry type (not
+     * predefined) is registered it is assigned this counter's value as index
+     * and after that
+     * it is incremented by 1
+     */
+    private int geometryTypeIndex = 0;// Geometry.EXTENDED_GEOMTYPE_OFFSET;
+    // //65536;//2^16
+
+    // Initially create a matrix of 17 x 6, which are the current default
+    // types and subtypes. If another type or subtype is registered, the
+    // matrix will grow as needed
+    private static final int DEFAULT_TYPES_SIZE = 17;
+    private static final int DEFAULT_SUBTYPES_SIZE = 6;
+
+    public DefaultGeometryManager() {
+        this(DEFAULT_TYPES_SIZE, DEFAULT_SUBTYPES_SIZE);
+    }
+
+    public DefaultGeometryManager(int initialTypesSize, int initialSubtypesSize) {
+        geometryTypes = new GeometryType[initialTypesSize][initialSubtypesSize];
+    }
+
+    public int registerGeometryOperation(String geomOpName,
+        GeometryOperation geomOp, GeometryType geomType) {
+        if (geomOp == null) {
+            throw new IllegalArgumentException("geomOp cannot be null.");
+        }
+        if (geomType == null) {
+            throw new IllegalArgumentException("geomType cannot be null.");
+        }
+
+        int index = getGeometryOperationCode(geomOpName);
+
+        geomType.setGeometryOperation(index, geomOp);
+
+        return index;
+    }
+
+    public int registerGeometryOperation(String geomOpName,
+        GeometryOperation geomOp) {
+        if (geomOpName == null) {
+            throw new IllegalArgumentException("geomOpName cannot be null.");
+        }
+        if (geomOp == null) {
+            throw new IllegalArgumentException("geomOp cannot be null.");
+        }
+
+        int index = getGeometryOperationCode(geomOpName);
+
+        Iterator it = geometryTypeName.keySet().iterator();
+        while (it.hasNext()) {
+            String className = (String) it.next();
+            GeometryType geometryType =
+                (GeometryType) geometryTypeName.get(className);
+            registerGeometryOperation(geomOpName, geomOp, geometryType);
+        }
+
+        return index;
+
+    }
+
+    public int registerGeometryOperation(String geomOpName,
+        GeometryOperation geomOp, int type, int subType)
+    throws GeometryTypeNotSupportedException, GeometryTypeNotValidException {
+        GeometryType geometryType = getGeometryType(type, subType);
+        return registerGeometryOperation(geomOpName, geomOp, geometryType);
+    }
+
+    public int registerGeometryOperation(String geomOpName,
+        GeometryOperation geomOp, int type) {
+        Iterator it = geometryTypeName.keySet().iterator();
+        int code = -1;
+        while (it.hasNext()) {
+            String className = (String) it.next();
+            GeometryType geometryType =
+                (GeometryType) geometryTypeName.get(className);
+            if ((type == geometryType.getType())) {
+                code =
+                    registerGeometryOperation(geomOpName, geomOp, geometryType);
+            }
+        }
+        return code;
+    }
+
+    public int registerGeometryOperationBySubtype(String geomOpName,
+        GeometryOperation geomOp, int subType) {
+        Iterator it = geometryTypeName.keySet().iterator();
+        int code = -1;
+        while (it.hasNext()) {
+            String className = (String) it.next();
+            GeometryType geometryType =
+                (GeometryType) geometryTypeName.get(className);
+            if ((subType == geometryType.getSubType())) {
+                code =
+                    registerGeometryOperation(geomOpName, geomOp, geometryType);
+            }
+        }
+        return code;
+    }    
+
+    public int registerGeometryOperationBySuperType(String geomOpName,
+        GeometryOperation geomOp, int superType) {       
+        Iterator it = geometryTypeName.keySet().iterator();
+        int code = -1;
+        while (it.hasNext()) {
+            String className = (String) it.next();
+            GeometryType geometryType =
+                (GeometryType) geometryTypeName.get(className);
+            if (geometryType.isTypeOf(superType)) {
+                code =
+                    registerGeometryOperation(geomOpName, geomOp, geometryType);
+            }
+        }
+        return code;
+    }
+
+    public int registerGeometryOperationBySuperSubType(String geomOpName,
+        GeometryOperation geomOp, int superSubType) {       
+        Iterator it = geometryTypeName.keySet().iterator();
+        int code = -1;
+        while (it.hasNext()) {
+            String className = (String) it.next();
+            GeometryType geometryType =
+                (GeometryType) geometryTypeName.get(className);
+            if (geometryType.isSubTypeOf(superSubType)) {
+                code =
+                    registerGeometryOperation(geomOpName, geomOp, geometryType);
+            }
+        }
+        return code;
+    }
+
+    public GeometryType registerGeometryType(Class geomClass, String name,
+        int type, int subType) {
+        return registerGeometryType(geomClass, name, type, subType,
+            new int[0], new int[0]);
+    }    
+
+    public GeometryType registerGeometryType(Class geomClass, String name,
+        int type, int subType, int superType, int superSubType) {
+        return registerGeometryType(geomClass, name, type, subType,
+            new int[]{superType}, new int[]{superSubType});
+    }
+
+    public GeometryType registerGeometryType(Class geomClass, String name,
+        int type, int subType, int superType) {
+        return registerGeometryType(geomClass, name, type, subType,
+            new int[]{superType}, new int[0]);
+    }
+
+    public GeometryType registerGeometryType(Class geomClass, String name,
+        int type, int subType, int[] superTypes, int[] superSubTypes) {
+        return registerGeometryType(geomClass, name, geometryTypeIndex++, type, subType,
+            superTypes, superSubTypes);
+    }
+
+    public GeometryType registerGeometryType(Class geomClass, String name,
+        int type, int subType, int[] superTypes) {
+        return registerGeometryType(geomClass, name, type, subType,
+            superTypes, new int[0]);
+    }
+
+    /**
+     * Registers a Geometry implementation class with a predefined geometry type
+     * and returns the
+     * associated GeometryType instance. Available predefined types are defined
+     * in {@link Geometry.TYPES} If the class is already registered then this
+     * method throws an IllegalArgumentException.<br>
+     * 
+     * How to register a geometry class with a predefined type:
+     * 
+     * <pre>
+     * 
+     * public class Point2D implements Point {
+     *   private static final GeometryType geomType = GeometryManager.getInstance()
+     *    .registerBasicGeometryType(Point2D.class, "Point2D", Geometry.TYPES.POINT);
+     * 
+     *   public static final int CODE = geomType.getId();
+     * ...
+     *   public int getType() {
+     *      return geomType.getType();
+     *   }
+     * }
+     * </pre>
+     * 
+     * @param geomClass
+     *            Geometry subclass. It must not be null and must implement
+     *            Geometry, otherwise an exception
+     *            is raised.
+     * @param name
+     *            Symbolic name for the geometry type, it can be null. If it is
+     *            null then the symbolic name
+     *            will be the simple class name.
+     * @param id
+     *            Geometry identifier.
+     * @param type
+     *            Type of geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return Instance of GeometryType associated to the Geometry
+     *         implementation class
+     *         geomClass
+     * @throws IllegalArgumentException
+     *             If geomClass is null or does not implement Geometry
+     */
+    private GeometryType registerGeometryType(Class geomClass, String name,
+        int id, int type, int subType, int[] superTypes, int superSubTypes[]) {
+        if (geomClass == null) {
+            throw new IllegalArgumentException("geomClass cannot be null.");
+        }
+
+        if (!Geometry.class.isAssignableFrom(geomClass)) {
+            throw new IllegalArgumentException(geomClass.getName()
+                + " must implement the Geometry interface");
+        }
+
+        // Check if it is registered
+        GeometryType geomType = null;
+        if (type >= geometryTypes.length || subType >= geometryTypes[0].length
+            || (geomType = geometryTypes[type][subType]) == null) {
+            geomType =
+                new DefaultGeometryType(geomClass, name, id, type, subType,
+                    superTypes, superSubTypes);
+            registerGeometryType(geomType);
+            geometryTypeName.put(geomClass.getName(), geomType);
+        }
+
+        logger.debug("Class {} registered with name {}", geomClass,
+            geomType.getName());
+
+        return geomType;
+    }
+
+    private void registerGeometryType(GeometryType geometryType) {
+        if (geometryType.getType() >= geometryTypes.length
+            || geometryType.getSubType() >= geometryTypes[0].length) {
+
+            // Recreate the geometry type matrix if the types
+            // or subtypes don't fit
+            int newTypesSize =
+                geometryType.getType() < geometryTypes.length
+                ? geometryTypes.length : geometryType.getType() + 1;
+            int newSubTypesSize =
+                geometryType.getSubType() < geometryTypes[0].length
+                ? geometryTypes[0].length : geometryType.getSubType() + 1;
+                GeometryType[][] newMatrix =
+                    new GeometryType[newTypesSize][newSubTypesSize];
+
+                for (int i = 0; i < geometryTypes.length; i++) {
+                    System.arraycopy(geometryTypes[i], 0, newMatrix[i], 0,
+                        geometryTypes[i].length);
+                }
+                geometryTypes = newMatrix;
+        }
+
+        geometryTypes[geometryType.getType()][geometryType.getSubType()] =
+            geometryType;
+    }
+
+    public GeometryType registerGeometryType(Class geomClass, int type,
+        int subType) {
+        return registerGeometryType(geomClass, null, type, subType);
+    }
+
+    public GeometryType getGeometryType(String className)
+    throws GeometryTypeNotSupportedException {
+        if (!geometryTypeName.containsKey(className)) {
+            throw new GeometryTypeNotSupportedException(className);
+        }
+        return (GeometryType) geometryTypeName.get(className);
+    }
+
+    public GeometryType getGeometryType(int type, int subType)
+    throws GeometryTypeNotSupportedException, GeometryTypeNotValidException {
+        GeometryType gType = null;
+        if (type >= geometryTypes.length || subType >= geometryTypes[0].length) {
+            throw new GeometryTypeNotValidException(type, subType);
+        }
+
+        gType = geometryTypes[type][subType];
+
+        if (gType == null) {
+            throw new GeometryTypeNotSupportedException(type, subType);
+        }
+
+        return gType;
+    }
+
+    public Geometry create(GeometryType geomType)
+    throws CreateGeometryException {
+        return geomType.create();
+    }
+
+    public Geometry create(String name) throws CreateGeometryException {
+        if (!geometryTypeName.containsKey(name)) {
+            throw new IllegalArgumentException(name
+                + " has not been registered yet.");
+        }
+        return ((GeometryType) geometryTypeName.get(name)).create();
+    }
+
+    public Geometry create(int type, int subType)
+    throws CreateGeometryException {
+        try {
+            return getGeometryType(type, subType).create();
+        } catch (GeometryException e) {
+            throw new CreateGeometryException(type, subType, e);
+        }
+    }
+
+    public Curve createCurve(GeneralPathX generalPathX, int subType)
+    throws CreateGeometryException {
+        Curve curve = (Curve) create(TYPES.CURVE, subType);
+        curve.setGeneralPath(generalPathX);
+        return curve;
+    }
+
+    public NullGeometry createNullGeometry(int subType)
+    throws CreateGeometryException {
+        NullGeometry nullGeom = (NullGeometry) create(TYPES.NULL, subType);
+        return nullGeom;
+    }
+
+    public Point createPoint(double x, double y, int subType)
+    throws CreateGeometryException {
+        Point point = (Point) create(TYPES.POINT, subType);
+        point.setX(x);
+        point.setY(y);
+        return point;
+    }
+
+    public Surface createSurface(GeneralPathX generalPathX, int subType)
+    throws CreateGeometryException {
+        Surface surface = (Surface) create(TYPES.SURFACE, subType);
+        surface.setGeneralPath(generalPathX);
+        return surface;
+    }
+
+    public GeometryOperation getGeometryOperation(int opCode, int type,
+        int subType) throws GeometryTypeNotSupportedException,
+        GeometryOperationNotSupportedException, GeometryTypeNotValidException {
+        GeometryType geometryType = getGeometryType(type, subType);
+        return geometryType.getGeometryOperation(opCode);
+    }
+
+    public GeometryOperation getGeometryOperation(int opCode)
+        throws GeometryOperationNotSupportedException {
+        if (opCode < 0) {
+            throw new GeometryOperationNotSupportedException(opCode);
+        }
+        GeometryType type =
+            (GeometryType) geometryTypeName.get(DefaultNullGeometry.class
+                .getName());
+        if (type == null) {
+            throw new GeometryOperationNotSupportedException(opCode);
+        }
+        return type.getGeometryOperation(opCode);
+    }
+
+    public Object invokeOperation(int opCode, Geometry geom,
+        GeometryOperationContext ctx)
+    throws GeometryOperationNotSupportedException,
+    GeometryOperationException {
+        GeometryOperation geomOp =
+            geom.getGeometryType().getGeometryOperation(opCode);
+
+        if (geomOp != null) {
+            return geomOp.invoke(geom, ctx);
+        }
+
+        throw new GeometryOperationNotSupportedException(opCode,
+            geom.getGeometryType());
+    }
+
+    public Object invokeOperation(String geomOpName, Geometry geom,
+        GeometryOperationContext ctx)
+    throws GeometryOperationNotSupportedException,
+    GeometryOperationException {
+        int index = geometryOperations.indexOf(geomOpName);
+        if (index == -1) {
+            throw new GeometryOperationNotSupportedException(-1);
+        }
+        return invokeOperation(index, geom, ctx);
+    }
+
+    public Object invokeOperation(String geomOpName,
+        GeometryOperationContext ctx)
+        throws GeometryOperationNotSupportedException,
+        GeometryOperationException {
+        int index = geometryOperations.indexOf(geomOpName);
+        GeometryOperation geomOp = getGeometryOperation(index);
+        return geomOp.invoke(null, ctx);
+    }
+
+    public GeometryType unregisterGeometryType(Class geomClass) {
+        return (GeometryType) geometryTypeName.remove(geomClass.getName());
+    }
+
+    public Envelope createEnvelope(int subType) {
+        // TODO: register the envelopes!!!
+        switch (subType) {
+        case SUBTYPES.GEOM3D:
+            return new Envelope3D();
+        default:
+            return new Envelope2D();
+        }
+    }
+
+    public Envelope createEnvelope(double minX, double minY, double maxX,
+        double maxY, int subType) throws CreateEnvelopeException {
+        org.gvsig.fmap.geom.primitive.Point min = null;
+        org.gvsig.fmap.geom.primitive.Point max = null;
+        try {
+            GeometryType gType = getGeometryType(TYPES.POINT, subType);
+            min = (Point) gType.create();
+            min.setX(minX);
+            min.setY(minY);
+            max = (Point) gType.create();
+            max.setX(maxX);
+            max.setY(maxY);
+            // min = createPoint(minX, minY, subType);
+            // max = createPoint(maxX, maxY, subType);
+        } catch (CreateGeometryException e) {
+            throw new CreateEnvelopeException(subType, e);
+        } catch (GeometryTypeNotSupportedException e) {
+            throw new CreateEnvelopeException(subType, e);
+        } catch (GeometryTypeNotValidException e) {
+            throw new CreateEnvelopeException(subType, e);
+        }
+        switch (subType) {
+        case SUBTYPES.GEOM2D:
+        case SUBTYPES.GEOM2DM:
+            // Small optimization to directly create an Envelope2D
+            // return new Envelope2D(minX, minY, maxX, maxY);
+            return new Envelope2D(min, max);
+        default:
+            Envelope envelope = createEnvelope(subType);
+            envelope.setLowerCorner(min);
+            envelope.setUpperCorner(max);
+            return envelope;
+        }
+    }
+
+    public MultiCurve createMultiCurve(GeneralPathX generalPathX, int subType)
+    throws CreateGeometryException {
+        if (subType != SUBTYPES.GEOM2D) {
+            // FIXME Exception
+            throw new UnsupportedOperationException();
+        }
+        MultiCurve multiCurve = (MultiCurve) create(TYPES.MULTICURVE, subType);
+        PathIterator piter = generalPathX.getPathIterator(null);
+        GeneralPathX tmpPath = null;
+        Curve tmpCurve = null;
+        double[] coords = new double[6];
+        double[] first = new double[6];
+        int type;
+        while (!piter.isDone()) {
+            type = piter.currentSegment(coords);
+            switch (type) {
+            case PathIterator.SEG_MOVETO:
+                if (tmpPath != null) {
+                    tmpCurve = createCurve(tmpPath, subType);
+                    multiCurve.addCurve(tmpCurve);
+                }
+                System.arraycopy(coords, 0, first, 0, 2);
+                tmpPath = new GeneralPathX(piter.getWindingRule());
+                tmpPath.moveTo(coords[0], coords[1]);
+                break;
+
+            case PathIterator.SEG_LINETO:
+                if (tmpPath == null) {
+                    System.arraycopy(coords, 0, first, 0, 2);
+                    tmpPath = new GeneralPathX(piter.getWindingRule());
+                }
+                tmpPath.lineTo(coords[0], coords[1]);
+                break;
+
+            case PathIterator.SEG_QUADTO:
+                if (tmpPath == null) {
+                    System.arraycopy(coords, 0, first, 0, 2);
+                    tmpPath = new GeneralPathX(piter.getWindingRule());
+                }
+                tmpPath.quadTo(coords[0], coords[1], coords[2], coords[3]);
+                break;
+
+            case PathIterator.SEG_CUBICTO:
+                if (tmpPath == null) {
+                    System.arraycopy(coords, 0, first, 0, 2);
+                    tmpPath = new GeneralPathX(piter.getWindingRule());
+                }
+                tmpPath.curveTo(coords[0], coords[1], coords[2], coords[3],
+                    coords[4], coords[5]);
+                break;
+
+            case PathIterator.SEG_CLOSE:
+                tmpPath.lineTo(first[0], first[1]);
+                break;
+
+            } // end switch
+
+            piter.next();
+
+        }
+        if (tmpPath != null) {
+            tmpCurve = createCurve(tmpPath, subType);
+            multiCurve.addCurve(tmpCurve);
+        }
+
+        return multiCurve;
+
+    }
+
+    public MultiSurface createMultiSurface(GeneralPathX generalPathX,
+        int subType) throws CreateGeometryException {
+        if (subType != SUBTYPES.GEOM2D) {
+            // FIXME Exception
+            throw new UnsupportedOperationException();
+        }
+        MultiSurface multiSurface =
+            (MultiSurface) create(TYPES.MULTISURFACE, subType);
+        PathIterator piter = generalPathX.getPathIterator(null);
+        GeneralPathX tmpPath = null;
+        Surface tmpSurface = null;
+        double[] coords = new double[6];
+        double[] first = new double[6];
+        int type;
+        while (!piter.isDone()) {
+            type = piter.currentSegment(coords);
+            switch (type) {
+            case PathIterator.SEG_MOVETO:
+                if (tmpPath != null) {
+                    tmpSurface = createSurface(tmpPath, subType);
+                    multiSurface.addSurface(tmpSurface);
+                }
+                System.arraycopy(coords, 0, first, 0, 2);
+                tmpPath = new GeneralPathX(piter.getWindingRule());
+                tmpPath.moveTo(coords[0], coords[1]);
+
+            case PathIterator.SEG_LINETO:
+                if (tmpPath == null) {
+                    System.arraycopy(coords, 0, first, 0, 2);
+                    tmpPath = new GeneralPathX(piter.getWindingRule());
+                }
+                tmpPath.lineTo(coords[0], coords[1]);
+                break;
+
+            case PathIterator.SEG_QUADTO:
+                if (tmpPath == null) {
+                    System.arraycopy(coords, 0, first, 0, 2);
+                    tmpPath = new GeneralPathX(piter.getWindingRule());
+                }
+                tmpPath.quadTo(coords[0], coords[1], coords[2], coords[3]);
+                break;
+
+            case PathIterator.SEG_CUBICTO:
+                if (tmpPath == null) {
+                    System.arraycopy(coords, 0, first, 0, 2);
+                    tmpPath = new GeneralPathX(piter.getWindingRule());
+                }
+                tmpPath.curveTo(coords[0], coords[1], coords[2], coords[3],
+                    coords[4], coords[5]);
+                break;
+
+            case PathIterator.SEG_CLOSE:
+                tmpPath.lineTo(first[0], first[1]);
+                break;
+            } // end switch
+
+            piter.next();
+
+        }
+        if (tmpPath != null) {
+            tmpSurface = createSurface(tmpPath, subType);
+            multiSurface.addSurface(tmpSurface);
+        }
+
+        return multiSurface;
+
+    }
+
+    public int getGeometryOperationCode(String geomOpName) {
+        if (geomOpName == null) {
+            throw new IllegalArgumentException("geomOpName cannot be null.");
+        }
+
+        int index = geometryOperations.indexOf(geomOpName);
+        if (index == -1) {
+            geometryOperations.add(geomOpName);
+            index = geometryOperations.indexOf(geomOpName);
+        }
+        return index;
+    }
+
+    public List getGeometryOperationNames() {
+        List operations = new ArrayList();
+        for (int i = 0; i < operations.size(); i++) {
+            operations.add(geometryOperations.get(i));
+        }
+        return operations;
+    }
+
+    public double getFlatness() {
+        return flatness;
+    }
+
+    public void setFlatness(double flatness) {
+        this.flatness = flatness;
+    }
+
+    public Geometry createFrom(String wkt, String srs) throws GeometryException {
+        FromWKTGeometryOperationContext context =
+            new FromWKTGeometryOperationContext(wkt, srs);
+        try {
+            return (Geometry) this.invokeOperation(OPERATIONS.FROMWKT, context);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryException(e);
+        } catch (GeometryOperationException e) {
+            throw new GeometryException(e);
+        }
+    }
+
+    public Geometry createFrom(String wkt) throws GeometryException {
+        FromWKTGeometryOperationContext context =
+            new FromWKTGeometryOperationContext(wkt, null);
+        try {
+            return (Geometry) this.invokeOperation(OPERATIONS.FROMWKT, context);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryException(e);
+        } catch (GeometryOperationException e) {
+            throw new GeometryException(e);
+        }
+    }
+
+    public Geometry createFrom(byte[] wkb) throws GeometryException {
+        GeometryOperationContext context = new GeometryOperationContext();
+        context.setAttribute("data", wkb);
+        try {
+            return (Geometry) this.invokeOperation(OPERATIONS.FROMWKB, context);
+        } catch (GeometryOperationNotSupportedException e) {
+            throw new GeometryException(e);
+        } catch (GeometryOperationException e) {
+            throw new GeometryException(e);
+        }
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/DefaultGeometryManager.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/GeometryManager.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/GeometryManager.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/GeometryManager.java	(revision 38288)
@@ -0,0 +1,1169 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom;
+
+import java.util.List;
+
+import org.gvsig.fmap.geom.aggregate.MultiCurve;
+import org.gvsig.fmap.geom.aggregate.MultiSurface;
+import org.gvsig.fmap.geom.exception.CreateEnvelopeException;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.NullGeometry;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException;
+import org.gvsig.fmap.geom.type.GeometryTypeNotValidException;
+
+/**
+ * This singleton provides a centralized access to gvSIG's Geometry Model.
+ * Its responsibilities are:<br>
+ * 
+ * <ul>
+ * <li>Offering a set of convenient methods for registering and retrieving
+ * geometry types.
+ * <li>Offering a set of convenient methods for registering and retrieving
+ * geometry operations associated to one or more geometry types.
+ * <li>Offering a set of convenient methods for registering and retrieving new
+ * geometries.
+ * </ul>
+ * 
+ * @author jiyarza
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface GeometryManager {
+
+    public interface OPERATIONS {
+
+        public final static String FROMWKT = "FromWKT";
+        public final static String FROMWKB = "FromWKB";
+    }
+
+    /**
+     * <p>
+     * Registers a GeometryOperation associated to a GeometryType. Returns an
+     * unique index that is used later to identify and invoke the operation.
+     * </p>
+     * <p>
+     * By convention this index should be in a final and static variable in the
+     * class that implements the operation. The value of this variable must be
+     * set using the method
+     * {@link GeometryManager#getGeometryOperationCode(String)}:<BR>
+     * 
+     * <pre>
+     * 
+     * public class MyOperation extends GeometryOperation {
+     * 
+     *     public static final int CODE = GeometryLocator.getGeometryManager()
+     *         .getGeometryOperationCode(&quot;MyOperation&quot;);
+     * }
+     * </pre>
+     * 
+     * </p>
+     * 
+     * @param geomOpName
+     *            Operation's unique name
+     * @param geomOp
+     *            Specific GeometryOperation's instance implementing this
+     *            operation
+     * @param geomType
+     *            GeometryType instance to which this operation should be
+     *            associated
+     * @return Index assigned to this operation. This index is used later to
+     *         access the operation.
+     * 
+     */
+    public int registerGeometryOperation(String geomOpName,
+        GeometryOperation geomOp, GeometryType geomType);
+
+    /**
+     * <p>
+     * Registers a GeometryOperation that is common for all GeometryType
+     * (registered yet or not). Returns an unique index that is used later to
+     * identify and invoke the operation.
+     * </p>
+     * <p>
+     * By convention this index should be in a final and static variable in the
+     * class that implements the operation. The value of this variable must be
+     * set using the method
+     * {@link GeometryManager#getGeometryOperationCode(String)}:<BR>
+     * 
+     * <pre>
+     * 
+     * public class MyOperation extends GeometryOperation {
+     * 
+     *     public static final int CODE = GeometryLocator.getGeometryManager()
+     *         .getGeometryOperationCode(&quot;MyOperation&quot;);
+     * }
+     * </pre>
+     * 
+     * </p>
+     * 
+     * @param geomOpName
+     *            Operation's unique name
+     * @param geomOp
+     *            Specific GeometryOperation's instance implementing this
+     *            operation
+     * @return Index assigned to this operation. This index is used later to
+     *         access the operation.
+     */
+    public int registerGeometryOperation(String geomOpName,
+        GeometryOperation geomOp);
+
+    /**
+     * <p>
+     * Registers a GeometryOperation associated to a GeometryType, that has been
+     * specified using the type code and the subtype code. Returns an unique
+     * index that is used later to identify and invoke the operation.
+     * </p>
+     * <p>
+     * By convention this index should be in a final and static variable in the
+     * class that implements the operation. The value of this variable must be
+     * set using the method
+     * {@link GeometryManager#getGeometryOperationCode(String)}:<BR>
+     * 
+     * <pre>
+     * 
+     * public class MyOperation extends GeometryOperation {
+     * 
+     *     public static final int CODE = GeometryLocator.getGeometryManager()
+     *         .getGeometryOperationCode(&quot;MyOperation&quot;);
+     * }
+     * </pre>
+     * 
+     * </p>
+     * <p>
+     * This method is only used if you have not a reference to the GeometryType
+     * associated to the geometry class. If you have such reference then it is
+     * slightly faster to use the method that receives the GeometryType.<br>
+     * </p>
+     * 
+     * @param geomOpName
+     *            Operation's unique name
+     * @param geomOp
+     *            Specific GeometryOperation's instance implementing this
+     *            operation
+     * @param type
+     *            Type of geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return Index assigned to this operation. This index is used later to
+     *         access the operation.
+     * @throws GeometryTypeNotSupportedException
+     *             Returns this exception if there is not a registered geometry
+     *             with
+     *             these type and subtype
+     * @throws GeometryTypeNotValidException
+     *             Returns if the type and subtype are not valid
+     */
+    public int registerGeometryOperation(String geomOpName,
+        GeometryOperation geomOp, int type, int subType)
+        throws GeometryTypeNotSupportedException, GeometryTypeNotValidException;
+
+    /**
+     * <p>
+     * Registers a GeometryOperation associated to all the geometries with a
+     * concrete type. Returns an unique index that is used later to identify and
+     * invoke the operation.<br>
+     * </p>
+     * <p>
+     * By convention this index should be in a final and static variable in the
+     * class that implements the operation. The value of this variable must be
+     * set using the method
+     * {@link GeometryManager#getGeometryOperationCode(String)}:<BR>
+     * 
+     * <pre>
+     * 
+     * public class MyOperation extends GeometryOperation {
+     * 
+     *     public static final int CODE = GeometryLocator.getGeometryManager()
+     *         .getGeometryOperationCode(&quot;MyOperation&quot;);
+     * }
+     * </pre>
+     * 
+     * </p>
+     * 
+     * @param geomOpName
+     *            Operation's unique name
+     * @param geomOp
+     *            Specific GeometryOperation's instance implementing this
+     *            operation
+     * @param type
+     *            Type of geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @return Index assigned to this operation. This index is used later to
+     *         access the operation.
+     */
+    public int registerGeometryOperation(String geomOpName,
+        GeometryOperation geomOp, int type);
+    
+    /**
+     * <p>
+     * Registers a GeometryOperation associated to all the geometries which
+     * super type matches with a concrete type. Returns an unique index that 
+     * is used later to identify and invoke the operation.<br>
+     * </p>
+     * <p>
+     * By convention this index should be in a final and static variable in the
+     * class that implements the operation. The value of this variable must be
+     * set using the method
+     * {@link GeometryManager#getGeometryOperationCode(String)}:<BR>
+     * 
+     * <pre>
+     * 
+     * public class MyOperation extends GeometryOperation {
+     * 
+     *     public static final int CODE = GeometryLocator.getGeometryManager()
+     *         .getGeometryOperationCode(&quot;MyOperation&quot;);
+     * }
+     * </pre>
+     * 
+     * </p>
+     * 
+     * @param geomOpName
+     *            Operation's unique name
+     * @param geomOp
+     *            Specific GeometryOperation's instance implementing this
+     *            operation
+     * @param superType
+     *            super type of geometries that is used to register
+     *            the operation. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @return Index assigned to this operation. This index is used later to
+     *         access the operation.
+     */
+    public int registerGeometryOperationBySuperType(String geomOpName,
+        GeometryOperation geomOp, int superType);
+    
+    /**
+     * <p>
+     * Registers a GeometryOperation associated to all the geometries which
+     * super subType matches with a concrete subType. Returns an unique index that 
+     * is used later to identify and invoke the operation.<br>
+     * </p>
+     * <p>
+     * By convention this index should be in a final and static variable in the
+     * class that implements the operation. The value of this variable must be
+     * set using the method
+     * {@link GeometryManager#getGeometryOperationCode(String)}:<BR>
+     * 
+     * <pre>
+     * 
+     * public class MyOperation extends GeometryOperation {
+     * 
+     *     public static final int CODE = GeometryLocator.getGeometryManager()
+     *         .getGeometryOperationCode(&quot;MyOperation&quot;);
+     * }
+     * </pre>
+     * 
+     * </p>
+     * 
+     * @param geomOpName
+     *            Operation's unique name
+     * @param geomOp
+     *            Specific GeometryOperation's instance implementing this
+     *            operation
+     * @param superSubType
+     *            super subType of geometries that is used to register
+     *            the operation. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return Index assigned to this operation. This index is used later to
+     *         access the operation.
+     */
+    public int registerGeometryOperationBySuperSubType(String geomOpName,
+        GeometryOperation geomOp, int superSubType);
+
+    /**
+     * <p>
+     * Registers a GeometryOperation associated to all the geometries with a
+     * concrete subtype. Returns an unique index that is used later to identify
+     * and invoke the operation.<br>
+     * </p>
+     * <p>
+     * By convention this index should be in a final and static variable in the
+     * class that implements the operation. The value of this variable must be
+     * set using the method
+     * {@link GeometryManager#getGeometryOperationCode(String)}:<BR>
+     * 
+     * <pre>
+     * 
+     * public class MyOperation extends GeometryOperation {
+     * 
+     *     public static final int CODE = GeometryLocator.getGeometryManager()
+     *         .getGeometryOperationCode(&quot;MyOperation&quot;);
+     * }
+     * </pre>
+     * 
+     * </p>
+     * 
+     * @param geomOpName
+     *            Operation's unique name
+     * @param geomOp
+     *            Specific GeometryOperation's instance implementing this
+     *            operation
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return Index assigned to this operation. This index is used later to
+     *         access the operation.
+     */
+    public int registerGeometryOperationBySubtype(String geomOpName,
+        GeometryOperation geomOp, int subType);
+
+    /**
+     * <p>
+     * Registers a Geometry implementation class with a predefined geometry type
+     * and returns the associated GeometryType instance. Available predefined
+     * types are defined in {@link Geometry.TYPES} and the subtypes are defined
+     * in {@link Geometry.SUBTYPES}.
+     * </p>
+     * <p>
+     * How to register a geometry class with a predefined type:
+     * 
+     * <pre>
+     * 
+     * GeometryType geomType = GeometryLocator.getGeometryManager()
+     *     .registerBasicGeometryType(Point2D.class, &quot;Point2D&quot;, Geometry.TYPES.POINT,
+     *         Geometry.SYBTYPES.GEOM2D);
+     * </pre>
+     * 
+     * </p>
+     * 
+     * @param geomClass
+     *            Geometry subclass. It must not be null and must implement
+     *            Geometry, otherwise an exception
+     *            is raised.
+     * @param name
+     *            Symbolic name for the geometry type, it can be null. If it is
+     *            null then the symbolic name
+     *            will be the simple class name.
+     * @param type
+     *            Type of geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return Instance of GeometryType associated to the Geometry
+     *         implementation class
+     *         geomClass
+     * @throws IllegalArgumentException
+     *             If geomClass is null or does not implement Geometry
+     */
+    public GeometryType registerGeometryType(Class geomClass, String name,
+        int type, int subType);
+    
+    /**
+     * <p>
+     * Registers a Geometry implementation class with a predefined geometry type
+     * and returns the associated GeometryType instance. Available predefined
+     * types are defined in {@link Geometry.TYPES} and the subtypes are defined
+     * in {@link Geometry.SUBTYPES}.    
+     * </p>
+     * <p>
+     * It adds also the super type and the super subType of the geometry, that
+     * can be used to check if the type (or the subtype) inherits of other 
+     * type (or subType)
+     * </p>
+     * <p>
+     * How to register a geometry class with a predefined type:
+     * 
+     * <pre>
+     * 
+     * GeometryType geomType = GeometryLocator.getGeometryManager()
+     *     .registerBasicGeometryType(Arc3D.class, &quot;Arc3D&quot;, Geometry.TYPES.ARC,
+     *         Geometry.SYBTYPES.GEOM3D, Geometry.TYPES.CURVE, Geometry.SYBTYPES.GEOM2D);
+     * </pre>
+     * 
+     * </p>
+     * 
+     * @param geomClass
+     *            Geometry subclass. It must not be null and must implement
+     *            Geometry, otherwise an exception
+     *            is raised.
+     * @param name
+     *            Symbolic name for the geometry type, it can be null. If it is
+     *            null then the symbolic name
+     *            will be the simple class name.
+     * @param type
+     *            Type of geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @param superType
+     *              Super type of a geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @param superSubType
+     *             Super subType of a geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return Instance of GeometryType associated to the Geometry
+     *         implementation class
+     *         geomClass
+     * @throws IllegalArgumentException
+     *             If geomClass is null or does not implement Geometry
+     */
+    public GeometryType registerGeometryType(Class geomClass, String name,
+        int type, int subType, int superType, int superSubType);
+    
+    /**
+     * <p>
+     * Registers a Geometry implementation class with a predefined geometry type
+     * and returns the associated GeometryType instance. Available predefined
+     * types are defined in {@link Geometry.TYPES} and the subtypes are defined
+     * in {@link Geometry.SUBTYPES}.    
+     * </p>
+     * <p>
+     * It adds also the super type of the geometry, that can be used to 
+     * check if the type inherits of other type.
+     * </p>
+     * <p>
+     * How to register a geometry class with a predefined type:
+     * 
+     * <pre>
+     * 
+     * GeometryType geomType = GeometryLocator.getGeometryManager()
+     *     .registerBasicGeometryType(Arc3D.class, &quot;Arc3D&quot;, Geometry.TYPES.ARC,
+     *         Geometry.SYBTYPES.GEOM3D, Geometry.TYPES.CURVE);
+     * </pre>
+     * 
+     * </p>
+     * 
+     * @param geomClass
+     *            Geometry subclass. It must not be null and must implement
+     *            Geometry, otherwise an exception
+     *            is raised.
+     * @param name
+     *            Symbolic name for the geometry type, it can be null. If it is
+     *            null then the symbolic name
+     *            will be the simple class name.
+     * @param type
+     *            Type of geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @param superType
+     *              Super type of a geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}   
+     * @return Instance of GeometryType associated to the Geometry
+     *         implementation class
+     *         geomClass
+     * @throws IllegalArgumentException
+     *             If geomClass is null or does not implement Geometry
+     */
+    public GeometryType registerGeometryType(Class geomClass, String name,
+        int type, int subType, int superType);
+    
+    /**
+     * <p>
+     * Registers a Geometry implementation class with a predefined geometry type
+     * and returns the associated GeometryType instance. Available predefined
+     * types are defined in {@link Geometry.TYPES} and the subtypes are defined
+     * in {@link Geometry.SUBTYPES}.    
+     * </p>
+     * <p>
+     * It adds also the super types and the super subTypes of the geometry, that
+     * can be used to check if the type (or the subtype) inherits of other 
+     * types (or subTypes)
+     * </p>
+     * <p>
+     * How to register a geometry class with a predefined type:
+     * 
+     * <pre>
+     * 
+     * GeometryType geomType = GeometryLocator.getGeometryManager()
+     *     .registerBasicGeometryType(Circle3DM.class, &quot;Circle3DM&quot;, Geometry.TYPES.CIRCLE,
+     *         Geometry.SYBTYPES.GEOM3DM,
+     *         new int[]{Geometry.TYPES.CURVE, Geometry.TYPES.GEOMETRY},
+     *         new int[]{Geometry.SYBTYPES.GEOM2D, Geometry.SYBTYPES.GEOM3D});
+     * </pre>
+     * 
+     * </p>
+     * 
+     * @param geomClass
+     *            Geometry subclass. It must not be null and must implement
+     *            Geometry, otherwise an exception
+     *            is raised.
+     * @param name
+     *            Symbolic name for the geometry type, it can be null. If it is
+     *            null then the symbolic name
+     *            will be the simple class name.
+     * @param type
+     *            Type of geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @param superTypes
+     *              List of the super types of a geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @param superSubTypes
+     *             List of the super subType of a geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return Instance of GeometryType associated to the Geometry
+     *         implementation class
+     *         geomClass
+     * @throws IllegalArgumentException
+     *             If geomClass is null or does not implement Geometry
+     */
+    public GeometryType registerGeometryType(Class geomClass, String name,
+        int type, int subType, int[] superTypes, int superSubTypes[]);
+    
+    /**
+     * <p>
+     * Registers a Geometry implementation class with a predefined geometry type
+     * and returns the associated GeometryType instance. Available predefined
+     * types are defined in {@link Geometry.TYPES} and the subtypes are defined
+     * in {@link Geometry.SUBTYPES}.    
+     * </p>
+     * <p>
+     * It adds also the super types and the super subTypes of the geometry, that
+     * can be used to check if the type inherits of other types.
+     * </p>
+     * <p>
+     * How to register a geometry class with a predefined type:
+     * 
+     * <pre>
+     * 
+     * GeometryType geomType = GeometryLocator.getGeometryManager()
+     *     .registerBasicGeometryType(Circle2D.class, &quot;Circle2DM&quot;, Geometry.TYPES.CIRCLE,
+     *         Geometry.SYBTYPES.GEOM2D,
+     *         new int[]{Geometry.TYPES.CURVE, Geometry.TYPES.SURFACE});        
+     * </pre>
+     * 
+     * </p>
+     * 
+     * @param geomClass
+     *            Geometry subclass. It must not be null and must implement
+     *            Geometry, otherwise an exception
+     *            is raised.
+     * @param name
+     *            Symbolic name for the geometry type, it can be null. If it is
+     *            null then the symbolic name
+     *            will be the simple class name.
+     * @param type
+     *            Type of geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @param superTypes
+     *              List of the super types of a geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @return Instance of GeometryType associated to the Geometry
+     *         implementation class
+     *         geomClass
+     * @throws IllegalArgumentException
+     *             If geomClass is null or does not implement Geometry
+     */
+    public GeometryType registerGeometryType(Class geomClass, String name,
+        int type, int subType, int[] superTypes);
+
+    /**
+     * <p>
+     * Registers a Geometry implementation class with a predefined geometry type
+     * and returns the associated GeometryType instance. Available predefined
+     * types are defined in {@link Geometry.TYPES} and the subtypes are defined
+     * in {@link Geometry.SUBTYPES}.
+     * </p>
+     * <p>
+     * In this case the symbolic name will be the geometry's simple class name
+     * </p>
+     * How to register a new geometry type:
+     * 
+     * <pre>
+     * 
+     * GeometryType geomType = GeometryLocator.getGeometryManager()
+     *     .registerBasicGeometryType(Point2D.class, Geometry.TYPES.POINT,
+     *         Geometry.SYBTYPES.GEOM2D);
+     * </pre>
+     * 
+     * @param geomClass
+     *            Geometry implementation class. It must not be null and must
+     *            implement Geometry,
+     *            otherwise an exception is thrown.
+     * @param type
+     *            Type of geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return Instance of GeometryType associated to the Geometry
+     *         implementation class
+     * @throws IllegalArgumentException
+     *             If geomClass is null or does not implement Geometry
+     */
+    public GeometryType registerGeometryType(Class geomClass, int type,
+        int subType);
+
+    /**
+     * <p>
+     * Returns an instance of GeometryType given the Geometry type and the
+     * subtype.
+     * </p>
+     * 
+     * @param type
+     *            Type of geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return Instance of GeometryType associated to the type and the subtype
+     * @throws GeometryTypeNotSupportedException
+     *             Returns this exception if there is not a registered geometry
+     *             with
+     *             these type and subtype
+     * @throws GeometryTypeNotValidException
+     *             Returns if the type and subtype are not valid
+     */
+    public GeometryType getGeometryType(int type, int subType)
+        throws GeometryTypeNotSupportedException, GeometryTypeNotValidException;
+
+    /**
+     * <p>
+     * This method creates a {@link Geometry} with the type specified by this
+     * GeometryType. The geometry is empty, and all the internal attributes must
+     * be assigned to a value when the geometry has been created.
+     * </p>
+     * <p>
+     * This example creates a point2D and sets the coordinates to 1,1:
+     * 
+     * <pre>
+     * Point point =
+     *     (Point) GeometryLocator.getGeometryManager().create(GEOMETRY.TYPES.POINT,
+     *         GEOMETRY.SUBTYPES.GEOM2D);
+     * point.setX(1);
+     * point.setY(1);
+     * </pre>
+     * 
+     * </p>
+     * 
+     * @param geomType
+     *            The geometry type
+     * @return
+     *         A instance of a geometry.
+     * @throws CreateGeometryException
+     *             This exception is thrown when the manager can not create
+     *             the geometry.
+     */
+    public Geometry create(GeometryType geomType)
+        throws CreateGeometryException;
+
+    /**
+     * <p>
+     * Creates a Envelope with a concrete subtype. The envelope is empty and it
+     * have to be filled with the corners once has been created.
+     * </p>
+     * 
+     * @param subType
+     *            SubType of envelope. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return
+     *         A Envelope
+     * @throws CreateEnvelopeException
+     *             If it is not possible to create the envelope.
+     */
+    public Envelope createEnvelope(int subType) throws CreateEnvelopeException;
+
+    /**
+     * <p>
+     * Creates a Envelope with a concrete subtype. It sets the values for the
+     * lower corner and the upper corner (in 2D) using the method parameters.
+     * </p>
+     * 
+     * @param minX
+     *            The minimum value for the X coordinate.
+     * @param minY
+     *            The minimum value for the Y coordinate.
+     * @param maxX
+     *            The maximum value for the X coordinate.
+     * @param maxY
+     *            The maximum value for the Y coordinate.
+     * @param subType
+     *            SubType of envelope. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return
+     * @throws CreateEnvelopeException
+     */
+    public Envelope createEnvelope(double minX, double minY, double maxX,
+        double maxY, int subType) throws CreateEnvelopeException;
+
+    /**
+     * <p>
+     * This method creates a {@link Geometry} with the type specified by this
+     * name. If a geometry with this name doesn't exist, a
+     * {@link IllegalArgumentException} is thrown. The geometry is empty, and
+     * all the internal attributes must be assigned to a value when the geometry
+     * has been created.
+     * </p>
+     * <p>
+     * This example creates a point2D and sets the coordinates to 1,1: It
+     * supposes that there is a Point2D class with name "Point2D".
+     * </p>
+     * 
+     * <pre>
+     * Point point = (Point) GeometryLocator.getGeometryManager().create(&quot;Point2D&quot;);
+     * point.setX(1);
+     * point.setY(1);
+     * </pre>
+     * 
+     * @param name
+     *            The name of the geometry type
+     * @return
+     *         A instance of a geometry.
+     * @throws CreateGeometryException
+     *             This exception is thrown when the manager can not create
+     *             the geometry.
+     */
+    public Geometry create(String name) throws CreateGeometryException;
+
+    /**
+     * Create a geometry from a WKT definition.
+     * 
+     * This is a utility method to wrap the invocation to the operation
+     * {@link OPERATIONS#FROMWKT}.
+     * 
+     * @param wkt
+     *            geometry in Well-known text format
+     * 
+     * @return the geometry as a Geometry
+     * 
+     * @throws CreateGeometryException
+     * @throws GeometryException
+     */
+    public Geometry createFrom(String wkt, String srs)
+        throws CreateGeometryException, GeometryException;
+
+    public Geometry createFrom(String wkt) throws CreateGeometryException,
+        GeometryException;
+
+    /**
+     * Create a geometry from a WKB definition.
+     * 
+     * This is a utility method to wrap the invocation to the operation
+     * {@link OPERATIONS#FROMWKB}.
+     * 
+     * @param wkb
+     *            geometry in well-known binary format
+     * 
+     * @return the geometry as a Geometry
+     * 
+     * @throws CreateGeometryException
+     * @throws GeometryException
+     */
+    public Geometry createFrom(byte[] wkb) throws CreateGeometryException,
+        GeometryException;
+
+    /**
+     * <p>
+     * This method creates a {@link Geometry} with a concrete type and subtype.
+     * The geometry is empty, and all the internal attributes must be assigned
+     * to a value when the geometry has been created.
+     * </p>
+     * <p>
+     * This example creates a point2D and sets the coordinates to 1,1. It
+     * supposes that there is a Point2D class with the id 1.
+     * </p>
+     * 
+     * <pre>
+     * Point point =
+     *     (Point) GeometryLocator.getGeometryManager().create(Geometry.TYPES.POINT,
+     *         Geometry.SYBTYPES.GEOM2D);
+     * point.setX(1);
+     * point.setY(1);
+     * </pre>
+     * 
+     * @param type
+     *            Type of geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return
+     *         A instance of a geometry.
+     * @throws CreateGeometryException
+     *             This exception is thrown when the manager can not create
+     *             the geometry.
+     */
+    public Geometry create(int type, int subType)
+        throws CreateGeometryException;
+
+    /**
+     * <p>
+     * It creates a null geometry with a concrete subtype.
+     * <p>
+     * 
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return
+     *         A NullGeometry
+     * @throws CreateGeometryException
+     *             This exception is thrown when the manager can not create
+     *             the geometry.
+     */
+    public NullGeometry createNullGeometry(int subType)
+        throws CreateGeometryException;
+
+    /**
+     * <p>
+     * Create a new point with a concrete type and sets the value for the X and
+     * the Y.
+     * </p>
+     * 
+     * @param x
+     *            The X coordinate
+     * @param y
+     *            The y coordinate
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @throws CreateGeometryException
+     *             This exception is thrown when the manager can not create
+     *             the geometry.
+     * @return
+     *         The Point
+     */
+    public Point createPoint(double x, double y, int subType)
+        throws CreateGeometryException;
+
+    /**
+     * <p>
+     * Create a new curve with a concrete type and sets the value for the
+     * coordinates using a GeneralPathX.
+     * </p>
+     * 
+     * @param generalPathX
+     *            It is used to set the values for the X and Y coordinates.
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return
+     *         A curve
+     * @throws CreateGeometryException
+     *             This exception is thrown when the manager can not create
+     *             the geometry.
+     */
+    public Curve createCurve(GeneralPathX generalPathX, int subType)
+        throws CreateGeometryException;
+
+    /**
+     * <p>
+     * Create a new multicurve with a concrete type and sets the value for the
+     * coordinates using a GeneralPathX.
+     * </p>
+     * 
+     * @param generalPathX
+     *            It is used to set the values for the X and Y coordinates.
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return A multicurve
+     * @throws CreateGeometryException
+     *             This exception is thrown when the manager can not create the
+     *             geometry.
+     */
+    public MultiCurve createMultiCurve(GeneralPathX generalPathX, int subType)
+        throws CreateGeometryException;
+
+    /**
+     * <p>
+     * Create a new surface with a concrete type and sets the value for the
+     * coordinates using a GeneralPathX.
+     * </p>
+     * 
+     * @param generalPathX
+     *            It is used to set the values for the X and Y coordinates.
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return
+     *         A surface
+     * @throws CreateGeometryException
+     *             This exception is thrown when the manager can not create
+     *             the geometry.
+     */
+    public Surface createSurface(GeneralPathX generalPathX, int subType)
+        throws CreateGeometryException;
+
+    /**
+     * <p>
+     * Create a new multisurface with a concrete type and sets the value for the
+     * coordinates using a GeneralPathX.
+     * </p>
+     * 
+     * @param generalPathX
+     *            It is used to set the values for the X and Y coordinates.
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return A multisurface
+     * @throws CreateGeometryException
+     *             This exception is thrown when the manager can not create the
+     *             geometry.
+     */
+    public MultiSurface createMultiSurface(GeneralPathX generalPathX,
+        int subType) throws CreateGeometryException;
+
+    /**
+     * <p>
+     * Returns an operation given the Geometry type, the Geometry subtype and
+     * and the operation code. If opCode corresponds to a common operation (a
+     * common operation is an operation registered for all geometries), then
+     * this method returns the common operation.
+     * </p>
+     * <p>
+     * For better performance, if you need to call an operation multiple times,
+     * use this method only once and keep the returned object in a local
+     * variable over which you can iterate. For instance:
+     * 
+     * <pre>
+     * // Get the operation you need
+     * GeometryManager gm = GeometryLocator.getGeometryManager()
+     * GeometryOperation geomOp = null;
+     * try {
+     *    geomOp = gm.getGeometryOperation(Draw2D.CODE, Geometry.TYPES.POINT, 
+     *    Geometry.SUBTYPES.GEOM2D);
+     * } catch (GeometryTypeNotSupportedException gtnse) {
+     *    // treat exception
+     * } catch (GeometryOperationNotSupportedException gonse) {
+     *    // treat exception
+     * }
+     * 
+     *  // Fill the operation context with required params
+     * GeometryOperationContext ctx = new GeometryOperationContext();
+     * 
+     *  // Here is the main loop where you call the operation
+     * for (int i=0; i<myGeometries.length; i++) {
+     *    Object result = geomOp.invoke(myGeometries[i], ctx);
+     * }
+     * </pre>
+     * 
+     * </p>
+     * 
+     * @param opCode
+     *            The operation code
+     * @param type
+     *            Type of geometry. Must be a value defined in
+     *            {@link Geometry.TYPES}
+     * @param subType
+     *            SubType of geometry. Must be a value defined in
+     *            {@link Geometry.SUBTYPES}
+     * @return Geometry operation
+     * @throws GeometryTypeNotSupportedException
+     *             Returns this exception if there is not a registered geometry
+     *             with
+     *             these type and subtype
+     * @throws GeometryTypeNotValidException
+     *             Returns this exception if the type and subtype are not valid
+     * @throws GeometryOperationNotSupportedException
+     *             Returns this exception if there is not a registered operation
+     *             with
+     *             this operation code
+     */
+    public GeometryOperation getGeometryOperation(int opCode, int type,
+        int subType) throws GeometryTypeNotSupportedException,
+        GeometryOperationNotSupportedException, GeometryTypeNotValidException;
+
+    /**
+     * <p>
+     * Returns an common operation with given operation code. A common operation
+     * is an operation registered for all geometries.
+     * </p>
+     * <p>
+     * For better performance, if you need to call an operation multiple times,
+     * use this method only once and keep the returned object in a local
+     * variable over which you can iterate. For instance:
+     * 
+     * <pre>
+     * // Get the operation you need
+     * GeometryManager gm = GeometryLocator.getGeometryManager()
+     * GeometryOperation geomOp = null;
+     * try {
+     *    geomOp = gm.getGeometryOperation(FromWKB.CODE);
+     * } catch (GeometryOperationNotSupportedException gonse) {
+     *    // treat exception
+     * }
+     * 
+     *  // Fill the operation context with required params
+     * FromWKBGeometryOperationContext ctx = new FromWKBGeometryOperationContext();
+     * 
+     *  // Here is the main loop where you call the operation
+     * for (int i=0; i<myGeometriesWKB.length; i++) {
+     *    ctx.setData(myGeometriesWKB[i]);
+     *    Object result = geomOp.invoke(null, ctx);
+     * }
+     * </pre>
+     * 
+     * </p>
+     * 
+     * @param opCode
+     *            The operation code
+     * @return Geometry operation
+     * @throws GeometryOperationNotSupportedException
+     *             Returns this exception if there is not a registered operation
+     *             with
+     *             this operation code
+     */
+    public GeometryOperation getGeometryOperation(int opCode)
+        throws GeometryOperationNotSupportedException;
+
+    /**
+     * <p>
+     * Invokes an operation given its code, the geometry and the operation
+     * context holding the parameters required for the operation.
+     * </p>
+     * 
+     * @param opCode
+     *            Operation code.
+     * @param geom
+     *            Geometry to which apply the operation
+     * @param ctx
+     *            Context holding the operation parameters
+     * @return
+     *         The object returned by an operation, depends on each operation.
+     */
+    public Object invokeOperation(int opCode, Geometry geom,
+        GeometryOperationContext ctx)
+        throws GeometryOperationNotSupportedException,
+        GeometryOperationException;
+
+    /**
+     * <p>
+     * Invokes an operation given its code, the geometry and the operation
+     * context holding the parameters required for the operation.
+     * </p>
+     * 
+     * @param geomOpName
+     *            Operation name.
+     * @param geom
+     *            Geometry to which apply the operation
+     * @param ctx
+     *            Context holding the operation parameters
+     * @return
+     *         The object returned by an operation, depends on each operation.
+     */
+    public Object invokeOperation(String geomOpName, Geometry geom,
+        GeometryOperationContext ctx)
+        throws GeometryOperationNotSupportedException,
+        GeometryOperationException;
+
+    /**
+     * <p>
+     * Invokes an operation given its code, and the operation context holding
+     * the parameters required for the operation.
+     * </p>
+     * 
+     * @param geomOpName
+     *            Operation name.
+     * @param ctx
+     *            Context holding the operation parameters
+     * @return
+     *         The object returned by an operation, depends on each operation.
+     */
+    public Object invokeOperation(String geomOpName,
+        GeometryOperationContext ctx)
+        throws GeometryOperationNotSupportedException,
+        GeometryOperationException;
+
+    /**
+     * <p>
+     * Registers the unique name of one operation. If it already exists then
+     * this method does nothing but returning the name's corresponding index.
+     * </p>
+     * <p>
+     * By convention this method is used to set the value of the final and
+     * static variable that is located in the classes that implements the
+     * operation:<BR>
+     * 
+     * <pre>
+     * 
+     * public class MyOperation extends GeometryOperation {
+     * 
+     *     public static final int CODE = GeometryLocator.getGeometryManager()
+     *         .getGeometryOperationCode(&quot;MyOperation&quot;);
+     * }
+     * </pre>
+     * 
+     * </p>
+     * 
+     * @param geomOpName
+     *            Name used to register the geometry operation
+     * @return
+     *         Index assigned to the operation name passed as parameter
+     */
+    public int getGeometryOperationCode(String geomOpName);
+
+    /**
+     * Returns a list with the name of the operations that have been
+     * registered.
+     * 
+     * @return
+     *         A list of the registered operations.
+     */
+    public List getGeometryOperationNames();
+
+    /**
+     * Returns the flatness used to convert a curve is a set
+     * of points.
+     * 
+     * @return
+     *         The flatness.
+     */
+    public double getFlatness();
+
+    /**
+     * Sets the application flatness.
+     * 
+     * @param flatness
+     *            The flatness to set
+     */
+    public void setFlatness(double flatness);
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/GeometryManager.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/Composite.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/Composite.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/Composite.java	(revision 38288)
@@ -0,0 +1,48 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.complex;
+/**
+ * <p>
+ * This interface is equivalent to the GM_Composite specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * A geometric composite shall be a geometric complex with an underlying core 
+ * geometry that is isomorphic to a primitive. Thus, a composite curve is 
+ * a collection of curves whose geometry interface could be satisfied 
+ * by a single curve (albeit a much more complex one). 
+ * </p>
+ * <p>
+ * Composites are intended for use as attribute values in datasets in 
+ * which the underlying geometry has been decomposed, usually to expose its topological nature.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface Composite extends Complex {
+
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/Composite.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/Complex.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/Complex.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/Complex.java	(revision 38288)
@@ -0,0 +1,46 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.complex;
+
+import org.gvsig.fmap.geom.Geometry;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_Complex specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * A Complex is a collection of geometrically disjoint, simple {@link Primitive}'s. 
+ * If a {@link Primitive} (other than a {@link Point}) is in a particular Complex, 
+ * then there exists a set of primitives of lower dimension in the same complex 
+ * that form the boundary of this primitive.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface Complex extends Geometry {
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/Complex.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositeCurve.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositeCurve.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositeCurve.java	(revision 38288)
@@ -0,0 +1,44 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.complex;
+/**
+ * <p>
+ * This interface is equivalent to the GM_CompositeCurve specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * A composite curve shall be a {@link Composite} with all the geometric 
+ * properties of a curve. These properties are instantiated in the operation "curve". 
+ * Essentially, a composite curve is a list of orientable curves ({@link OrientableCurve}) 
+ * agreeing in orientation in a manner such that each curve (except the first) begins 
+ * where the previous one ends.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface CompositeCurve extends Composite{
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositeCurve.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositeSurface.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositeSurface.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositeSurface.java	(revision 38288)
@@ -0,0 +1,44 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.complex;
+/**
+ * <p>
+ * This interface is equivalent to the GM_CompositeSurface specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * A composite surface shall be a {@link Complex} with all the geometric properties 
+ * of a surface, and thus can be considered as a type of orientable surface 
+ * ({@link OrientableSurface}). Essentially, a composite surface is a collection 
+ * of oriented surfaces that join in pairs on common boundary curves and which, 
+ * when considered as a whole, form a single surface.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface CompositeSurface extends Composite{
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositeSurface.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositePoint.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositePoint.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositePoint.java	(revision 38288)
@@ -0,0 +1,42 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.complex;
+/**
+ * <p>
+ * This interface is equivalent to the GM_CompositePoint specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * A separate class for composite point is included for completeness. 
+ * It is a {@link Complex} containing one and only one Point.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface CompositePoint {
+
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositePoint.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositeSolid.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositeSolid.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositeSolid.java	(revision 38288)
@@ -0,0 +1,42 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.complex;
+/**
+ * <p>
+ * This interface is equivalent to the GM_CompositeSolid specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * A CompositeSolid shall be a {@link Complex} with all the geometric properties of a solid. 
+ * Essentially, a composite solid is a set of solids that join in pairs on common 
+ * boundary surfaces to form a single solid.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface CompositeSolid extends Composite{
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/complex/CompositeSolid.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/CompositeSurface.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/CompositeSurface.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/CompositeSurface.java	(revision 38288)
@@ -0,0 +1,7 @@
+package org.gvsig.fmap.geom.primitive;
+
+import org.gvsig.fmap.geom.aggregate.MultiSurface;
+
+public interface CompositeSurface extends Surface, MultiSurface {
+
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Envelope.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Envelope.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Envelope.java	(revision 38288)
@@ -0,0 +1,189 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.primitive;
+
+import org.cresques.cts.ICoordTrans;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.tools.lang.Cloneable;
+import org.gvsig.tools.persistence.Persistent;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_Envelope specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * A minimum bounding box or rectangle. Regardless of dimension, an Envelope
+ * can be represented without ambiguity as two direct positions (coordinate
+ * points). To encode an Envelope, it is sufficient to encode these two
+ * points. This is consistent with all of the data types in this
+ * specification, their state is represented by their publicly accessible
+ * attributes.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface Envelope extends Persistent, Cloneable{
+    /**
+     * Returns the center ordinate along the specified dimension.
+     * @param dimension.
+     * The dimension
+     * @return 
+     * The value of the ordinate.
+     * @throws EnvelopeNotInitializedException
+     * if the envelope is empty.
+     */
+    double getCenter(int dimension);
+
+    /**
+     * The length of coordinate sequence (the number of entries) in this
+     * envelope.
+     * @return 
+     * The dimension of the envelope.
+     */
+    int getDimension();
+
+    /**
+     * Returns the envelope length along the specified dimension.
+     * @param dimension
+     * The dimension.
+     * @return
+     * The envelope length along a dimension.
+     * @throws EnvelopeNotInitializedException
+     * if the envelope is empty.
+     */
+    double getLength(int dimension);
+
+    /**
+     * A coordinate position consisting of all the minimal ordinates for each
+     * dimension for all points within the Envelope.
+     * @return
+     * The lower corner.
+     */
+    Point getLowerCorner();
+    
+    /**
+     * Sets the coordinate position consisting of all the minimal ordinates for each
+     * dimension for all points within the Envelope.
+     * @param point
+     * The lower corner.
+     */
+    void setLowerCorner(Point point);
+
+    /**
+     * Returns the maximal ordinate along the specified dimension.
+     * @param dimension
+     * The dimension.
+     * @return
+     * The maximum value
+     * @throws EnvelopeNotInitializedException
+     * if the envelope is empty.
+     */
+    double getMaximum(int dimension);
+
+    /**
+     * Returns the minimal ordinate along the specified dimension.
+     * @param dimension     
+     * The dimension.
+     * @return
+     * The minimum value.
+     * @throws EnvelopeNotInitializedException
+     * if the envelope is empty.
+     */
+    double getMinimum(int dimension);
+
+    /**
+     * A coordinate position consisting of all the maximal ordinates for each
+     * dimension for all points within the Envelope.
+     * @return
+     * The upper corner
+     */
+    Point getUpperCorner();
+    
+    /**
+     * Sets the coordinate position consisting of all the maximal ordinates for each
+     * dimension for all points within the Envelope.
+     * @param point
+     * The upper corner.
+     */
+    void setUpperCorner(Point upperCorner);
+
+    /**
+     * Adds a envelope to the current envelope.
+     * @param envelope
+     * The envelope to add.
+     */
+	void add(Envelope envelope);
+
+	/**
+	 * It returns the equivalent of an envelope like a geometry.
+	 * @return
+	 * A geometry that contains the same area that the envelope.
+	 * @throws EnvelopeNotInitializedException
+     * if the envelope is empty.
+	 */
+	Geometry getGeometry();
+
+	/**
+	 * Returns <code>true</code> if the new envelope is contained in the 
+	 * current envelope.
+	 * @param envelope
+	 * The envelope to compare.
+	 * @return
+	 * If the current envelope contains the new envelope
+	 */
+	boolean contains(Envelope envelope);
+
+	/**
+	 * Returns <code>true</code> if the new envelope intersects with the 
+	 * current envelope.
+	 * @param envelope
+	 * The envelope to compare.
+	 * @return
+	 * If the current envelope intersects with the new envelope
+	 */
+	boolean intersects(Envelope envelope);
+
+	/**
+	 * Converts the envelope to other coordinate reference system
+	 * @param trans
+	 * The CRS conversor
+	 * @return
+	 * A new envelope in other CRS 
+	 * @throws EnvelopeNotInitializedException
+     * if the envelope is empty.
+	 */
+	Envelope convert(ICoordTrans trans);
+	
+	/**
+	 * Gets if the envelope is <code>null</code> or not. Is
+	 * Empty means that the lower and upper corner are 
+	 * <code>null</code>.
+	 * @return
+	 * <code>null</code> or not if is empty.
+	 */
+	boolean isEmpty();
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/OrientablePrimitive.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/OrientablePrimitive.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/OrientablePrimitive.java	(revision 38288)
@@ -0,0 +1,160 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.primitive;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_OrientablePrimitive specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * Orientable primitives are those that can be mirrored into new 
+ * geometric objects in terms of their internal local coordinate 
+ * systems (manifold charts).
+ * </p>
+ * <p>
+ * For curves, the orientation reflects the direction in which the curve is traversed, 
+ * that is, the sense of its parameterization. When used as boundary curves, 
+ * the surface being bounded is to the "left" of the oriented curve. 
+ * </p>
+ * <p>
+ * For surfaces, the orientation reflects from which direction the local coordinate 
+ * system can be viewed as right handed, the "top" or the surface being the direction 
+ * of a completing z-axis that would form a right-handed system.
+ * </p>
+ * <p>
+ * When used as a boundary surface, the bounded solid is "below" the surface. 
+ * The orientation of points and solids has no immediate geometric interpretation 
+ * in 3-dimensional space.
+ * </p>
+ * <p> OrientablePrimitive objects are essentially references to geometric primitives 
+ * that carry an "orientation" reversal flag (either "+" or "-") that determines whether 
+ * this primitive agrees or disagrees with the orientation of the referenced object.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface OrientablePrimitive extends Primitive {
+    
+    /**
+     * Sets all the coordinates of the curve 
+     * @param generalPathX
+     * The generalPath that contains all the coordinates
+     */
+    public void setGeneralPath(GeneralPathX generalPathX);
+    
+    /**
+     * Gets the one of the values of a coordinate (direct position) in a
+     * concrete dimension.
+     * 
+     * @param index
+     *            The index of the direct position to set.
+     * @param dimension
+     *            The dimension of the direct position.
+     * @return The value of the coordinate
+     */
+    public double getCoordinateAt(int index, int dimension);
+    
+    
+    /**
+     * Sets the value of a coordinate (direct position) in a concrete dimension
+     * @param index
+     * The index of the direct position to set
+     * @param dimension
+     * The dimension of the direct position
+     * @param value
+     * The value to set
+     */
+    public void setCoordinateAt(int index, int dimension, double value);
+    
+    /**
+     * Adds a vertex (or direct position) to the curve
+     * @param point
+     * The new point to add
+     */
+    public void addVertex(Point point);
+    
+    /**
+     * Adds a vertex (or direct position) to the curve
+     * @param point
+     * The new point to add
+     * @deprecated
+     *      create a multigeometry or use methods to
+     *      add an inner surface
+     */
+    public void addMoveToVertex(Point point);
+    
+    /**
+     * Closes the geometry
+     * @deprecated
+     *      create a multigeometry, and it is not necessary to close a
+     *      geometry.
+     */
+    public void closePrimitive();
+    
+    /**
+     * Remove a vertex (direct position) to the curve
+     * @param index
+     * The index of the vertex to remove
+     */
+    public void removeVertex(int index);
+        
+    /**
+     * Gets a vertex (direct position) 
+     * @param index
+     * The index of the vertex to get
+     * @return
+     * One point
+     */
+    public Point getVertex(int index);
+    
+    /**
+     * Gets the number of vertices (direct positions) of the curve
+     * @return
+     * The number of vertices
+     */
+    public int getNumVertices();
+        
+    /**
+     * Inserts a vertex (direct position) to the curve.
+     * @param index
+     * The index of the vertex where the new point has to be added.
+     * @param p
+     * The vertex to add.
+     */
+    public void insertVertex(int index, Point p);
+    
+    /**
+     * Sets a vertex in a concrete position and replaces the
+     * previous one that was in this position.
+     * @param index
+     * The index of the vertex where the new point has to be replaced.
+     * @param p
+     * The vertex to set.
+     */
+    public void setVertex(int index, Point p);
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/OrientablePrimitive.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/GeneralPathAdapter.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/GeneralPathAdapter.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/GeneralPathAdapter.java	(revision 38288)
@@ -0,0 +1,109 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.Rectangle;
+import java.awt.Shape;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.FlatteningPathIterator;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.GeneralPathXIterator;
+import org.gvsig.fmap.geom.primitive.GeneralPathXIteratorSimple;
+
+
+/**
+ * @author gvSIG Team
+ * @version $Id$
+ * @deprecated
+ */
+public class GeneralPathAdapter implements Shape {
+    private AffineTransform affineTransform;
+    private GeneralPathX generalPathX;
+
+    public GeneralPathAdapter(AffineTransform affineTransform,
+        GeneralPathX generalPathX) {
+        super();
+        this.affineTransform = affineTransform;
+        this.generalPathX = generalPathX;
+    }
+
+    public Rectangle getBounds() {      
+        return generalPathX.getBounds();
+    }
+
+    public Rectangle2D getBounds2D() {       
+        return generalPathX.getBounds2D();
+    }
+
+    public boolean contains(double x, double y) {
+        return generalPathX.contains(x, y);
+    }
+
+    public boolean contains(Point2D p) {       
+        return generalPathX.contains(p);
+    }
+
+    public boolean intersects(double x, double y, double w, double h) {      
+        return generalPathX.intersects(x, y, w, h);
+    }
+
+    public boolean intersects(Rectangle2D r) {       
+        return generalPathX.intersects(r);
+    }
+
+    public boolean contains(double x, double y, double w, double h) {     
+        return generalPathX.contains(x, y, w, h);
+    }
+
+    public boolean contains(Rectangle2D r) {       
+        return generalPathX.contains(r);
+    }
+
+    public PathIterator getPathIterator(AffineTransform at) {     
+        AffineTransform applicableTransform = null;
+
+        if (affineTransform != null){
+            if (at != null){
+                applicableTransform = (AffineTransform)at.clone();
+                applicableTransform.concatenate(affineTransform);                
+            }else{
+                applicableTransform = affineTransform;
+            }
+        }else{
+            applicableTransform = at;
+        }        
+
+        if (generalPathX.isSimple()){
+            return new GeneralPathXIteratorSimple(generalPathX, applicableTransform);
+        }else{
+            return new GeneralPathXIterator(generalPathX, applicableTransform);
+        }
+    }
+
+    public PathIterator getPathIterator(AffineTransform at, double flatness) {
+        return new FlatteningPathIterator(getPathIterator(at), flatness);        
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/GeneralPathAdapter.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Arc2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Arc2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Arc2D.java	(revision 38288)
@@ -0,0 +1,565 @@
+/*
+ * Created on 09-feb-2005
+ *
+ * gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+   USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.util.ArrayList;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.handler.AbstractHandler;
+import org.gvsig.fmap.geom.handler.CenterHandler;
+import org.gvsig.fmap.geom.handler.FinalHandler;
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.geom.primitive.Arc;
+import org.gvsig.fmap.geom.primitive.FShape;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.geom.util.UtilFunctions;
+
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class Arc2D extends Curve2D implements Arc {
+	private static final long serialVersionUID = 6416027005106924030L;
+
+	private Point2D init;
+	private Point2D center;
+	private Point2D end;
+	
+	private static final GeometryManager geomManager = GeometryLocator.getGeometryManager();
+		
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public Arc2D(GeometryType geometryType) {
+		super(geometryType);		
+	}
+	
+	/**
+	 * Constructor used in the {@link Geometry#cloneGeometry()} method
+	 * @param id
+	 * @param projection
+	 * @param gpx
+	 * @param i
+	 * @param c
+	 * @param e
+	 */
+	protected Arc2D(GeometryType geometryType, String id, IProjection projection, GeneralPathX gpx, Point2D i,Point2D c, Point2D e) {
+		super(geometryType, id, projection, gpx);
+		init=i;
+		center=c;
+		end=e;
+	}	
+	
+	/* (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.core.FShape#cloneFShape()
+	 */
+	public FShape cloneFShape() {
+		Arc2D arc = new Arc2D(getGeometryType(), id, projection, (GeneralPathX) gp.clone(),init,center,end);
+		return arc;
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.impl.OrientablePrimitive2D#transform(java.awt.geom.AffineTransform)
+	 */
+	public void transform(AffineTransform at) {
+		gp.transform(at);
+		InitHandler inithandler=(InitHandler)getStretchingHandlers()[0];
+		//CenterHandler centerhandler=(CenterHandler)getHandlers()[1];
+		EndHandler endhandler=(EndHandler)getStretchingHandlers()[1];
+		Point2D aux1=new Point2D.Double();
+		Point2D aux2=new Point2D.Double();
+		Point2D aux3=new Point2D.Double();
+		at.transform(inithandler.getPoint(),aux1);
+		inithandler.setPoint(aux1);
+		//at.transform(centerhandler.getPoint(),aux2);
+		//centerhandler.setPoint(aux2);
+		at.transform(endhandler.getPoint(),aux3);
+		endhandler.setPoint(aux3);
+		CenterSelHandler centerhandler=(CenterSelHandler)getSelectHandlers()[1];
+		at.transform(centerhandler.getPoint(),aux2);
+		centerhandler.setPoint(aux2);
+
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.impl.Curve2D#getShapeType()
+	 */
+	public int getShapeType() {
+		return TYPES.ARC;
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.impl.OrientablePrimitive2D#getStretchingHandlers()
+	 */
+	public Handler[] getStretchingHandlers() {
+		ArrayList handlers = new ArrayList();
+
+		handlers.add(new InitHandler(0, init.getX(), init.getY()));
+		//handlers.add(new CenterHandler(1, center.getX(), center.getY()));
+		handlers.add(new EndHandler(1, end.getX(), end.getY()));
+
+		return (Handler[]) handlers.toArray(new Handler[0]);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.impl.OrientablePrimitive2D#getSelectHandlers()
+	 */	
+	public Handler[] getSelectHandlers() {
+		ArrayList handlers = new ArrayList();
+
+		handlers.add(new InitSelHandler(0, init.getX(), init.getY()));
+		handlers.add(new CenterSelHandler(1, center.getX(), center.getY()));
+		handlers.add(new EndSelHandler(2, end.getX(), end.getY()));
+
+		return (Handler[]) handlers.toArray(new Handler[0]);
+	}
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @author Vicente Caballero Navarro
+	 */	
+	class CenterSelHandler extends AbstractHandler implements CenterHandler{
+		/**
+		 * Crea un nuevo PointHandler.
+		 *
+		 * @param i DOCUMENT ME!
+		 * @param x DOCUMENT ME!
+		 * @param y DOCUMENT ME!
+		 */
+		public CenterSelHandler(int i, double x, double y) {
+			center = new Point2D.Double(x, y);
+			index = i;
+		}
+
+		/**
+		 * DOCUMENT ME!
+		 *
+		 * @param x DOCUMENT ME!
+		 * @param y DOCUMENT ME!
+		 *
+		 * @return DOCUMENT ME!
+		 */
+		public void move(double x, double y) {
+		}
+		public void setPoint(Point2D p){
+			center=p;
+		}
+		public Point2D getPoint(){
+			return center;
+		}
+
+		/**
+		 * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+		 */
+		public void set(double x, double y) {
+			center=new Point2D.Double(x,y);
+			java.awt.geom.Arc2D arco = UtilFunctions.createArc(init, center, end);
+			gp = new GeneralPathX(arco.getPathIterator(null));
+		}
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @author Vicente Caballero Navarro
+	 */
+	class InitHandler extends AbstractHandler implements FinalHandler{
+		/**
+		 * Crea un nuevo PointHandler.
+		 *
+		 * @param i DOCUMENT ME!
+		 * @param x DOCUMENT ME!
+		 * @param y DOCUMENT ME!
+		 */
+		public InitHandler(int i, double x, double y) {
+			init = new Point2D.Double(x, y);
+			index = i;
+		}
+
+		/**
+		 * DOCUMENT ME!
+		 *
+		 * @param x DOCUMENT ME!
+		 * @param y DOCUMENT ME!
+		 *
+		 * @return DOCUMENT ME!
+		 */
+		public void move(double x, double y) {
+			Point2D mediop=new Point2D.Double((init.getX()+end.getX())/2,(init.getY()+end.getY())/2);
+			double dist=mediop.distance(center);
+			init=new Point2D.Double(init.getX()+x,init.getY()+y);
+
+			mediop=new Point2D.Double((init.getX()+end.getX())/2,(init.getY()+end.getY())/2);
+			Point2D[] perp=UtilFunctions.getPerpendicular(init,end,mediop);
+			if (UtilFunctions.getAngle(end,init)<=Math.PI){
+				dist=-dist;
+			}
+			center=UtilFunctions.getPoint(mediop,perp[1],dist);
+
+			java.awt.geom.Arc2D arco = UtilFunctions.createArc(init,center, end);
+			gp=new GeneralPathX(arco.getPathIterator(null));
+		}
+		public void setPoint(Point2D p){
+			init=p;
+		}
+		public Point2D getPoint(){
+			return init;
+		}
+
+		/**
+		 * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+		 */
+		public void set(double x, double y) {
+			}
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @author Vicente Caballero Navarro
+	 */
+	class EndHandler extends AbstractHandler implements FinalHandler{
+		/**
+		 * Crea un nuevo PointHandler.
+		 *
+		 * @param i DOCUMENT ME!
+		 * @param x DOCUMENT ME!
+		 * @param y DOCUMENT ME!
+		 */
+		public EndHandler(int i, double x, double y) {
+			end = new Point2D.Double(x, y);
+			index = i;
+		}
+
+		/**
+		 * DOCUMENT ME!
+		 *
+		 * @param x DOCUMENT ME!
+		 * @param y DOCUMENT ME!
+		 *
+		 * @return DOCUMENT ME!
+		 */
+		public void move(double x, double y) {
+			Point2D mediop=new Point2D.Double((init.getX()+end.getX())/2,(init.getY()+end.getY())/2);
+			double dist=mediop.distance(center);
+			end=new Point2D.Double(end.getX()+x,end.getY()+y);
+
+			mediop=new Point2D.Double((init.getX()+end.getX())/2,(init.getY()+end.getY())/2);
+			Point2D[] perp=UtilFunctions.getPerpendicular(init,end,mediop);
+			if (UtilFunctions.getAngle(end,init)<=Math.PI){
+				dist=-dist;
+			}
+			center=UtilFunctions.getPoint(mediop,perp[1],dist);
+
+			java.awt.geom.Arc2D arco = UtilFunctions.createArc(init,center, end);
+			gp=new GeneralPathX(arco.getPathIterator(null));
+		}
+		public void setPoint(Point2D p){
+			end=p;
+		}
+		public Point2D getPoint(){
+			return end;
+		}
+
+		/**
+		 * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+		 */
+		public void set(double x, double y) {
+
+		}
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @author Vicente Caballero Navarro
+	 */
+	class InitSelHandler extends AbstractHandler implements FinalHandler{
+		/**
+		 * Crea un nuevo PointHandler.
+		 *
+		 * @param i DOCUMENT ME!
+		 * @param x DOCUMENT ME!
+		 * @param y DOCUMENT ME!
+		 */
+		public InitSelHandler(int i, double x, double y) {
+			init = new Point2D.Double(x, y);
+			index = i;
+		}
+
+		/**
+		 * DOCUMENT ME!
+		 *
+		 * @param x DOCUMENT ME!
+		 * @param y DOCUMENT ME!
+		 *
+		 * @return DOCUMENT ME!
+		 */
+		public void move(double x, double y) {
+			Point2D mediop=new Point2D.Double((init.getX()+end.getX())/2,(init.getY()+end.getY())/2);
+			double dist=mediop.distance(center);
+			init=new Point2D.Double(init.getX()+x,init.getY()+y);
+
+			mediop=new Point2D.Double((init.getX()+end.getX())/2,(init.getY()+end.getY())/2);
+			Point2D[] perp=UtilFunctions.getPerpendicular(init,end,mediop);
+			if (UtilFunctions.getAngle(end,init)<=Math.PI){
+				dist=-dist;
+			}
+			center=UtilFunctions.getPoint(mediop,perp[1],dist);
+
+			java.awt.geom.Arc2D arco = UtilFunctions.createArc(init,center, end);
+			gp=new GeneralPathX(arco.getPathIterator(null));
+		}
+		public void setPoint(Point2D p){
+			init=p;
+		}
+		public Point2D getPoint(){
+			return init;
+		}
+
+		/**
+		 * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+		 */
+		public void set(double x, double y) {
+			Point2D mediop=new Point2D.Double((init.getX()+end.getX())/2,(init.getY()+end.getY())/2);
+			double dist=mediop.distance(center);
+			init=new Point2D.Double(x,y);
+
+			mediop=new Point2D.Double((init.getX()+end.getX())/2,(init.getY()+end.getY())/2);
+			// TODO comentado para quitar warning: Point2D[] perp=UtilFunctions.getPerpendicular(init,end,mediop);
+			if (UtilFunctions.getAngle(end,init)<=Math.PI){
+				dist=-dist;
+			}
+			///center=TrigonometricalFunctions.getPoint(mediop,perp[1],dist);
+			java.awt.geom.Arc2D arco = UtilFunctions.createArc(init,center, end);
+			gp=new GeneralPathX(arco.getPathIterator(null));
+		}
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @author Vicente Caballero Navarro
+	 */
+	class EndSelHandler extends AbstractHandler implements FinalHandler{
+		/**
+		 * Crea un nuevo PointHandler.
+		 *
+		 * @param i DOCUMENT ME!
+		 * @param x DOCUMENT ME!
+		 * @param y DOCUMENT ME!
+		 */
+		public EndSelHandler(int i, double x, double y) {
+			end = new Point2D.Double(x, y);
+			index = i;
+		}
+
+		/**
+		 * DOCUMENT ME!
+		 *
+		 * @param x DOCUMENT ME!
+		 * @param y DOCUMENT ME!
+		 *
+		 * @return DOCUMENT ME!
+		 */
+		public void move(double x, double y) {
+			Point2D mediop=new Point2D.Double((init.getX()+end.getX())/2,(init.getY()+end.getY())/2);
+			double dist=mediop.distance(center);
+			end=new Point2D.Double(end.getX()+x,end.getY()+y);
+
+			mediop=new Point2D.Double((init.getX()+end.getX())/2,(init.getY()+end.getY())/2);
+			Point2D[] perp=UtilFunctions.getPerpendicular(init,end,mediop);
+			if (UtilFunctions.getAngle(end,init)<=Math.PI){
+				dist=-dist;
+			}
+			center=UtilFunctions.getPoint(mediop,perp[1],dist);
+
+			java.awt.geom.Arc2D arco = UtilFunctions.createArc(init,center, end);
+			gp=new GeneralPathX(arco.getPathIterator(null));
+		}
+		public void setPoint(Point2D p){
+			end=p;
+		}
+		public Point2D getPoint(){
+			return end;
+		}
+
+		/**
+		 * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+		 */
+		public void set(double x, double y) {
+			Point2D mediop=new Point2D.Double((init.getX()+end.getX())/2,(init.getY()+end.getY())/2);
+			double dist=mediop.distance(center);
+			end=new Point2D.Double(x,y);
+
+			mediop=new Point2D.Double((init.getX()+end.getX())/2,(init.getY()+end.getY())/2);
+			// TODO comentado para quitar warning: Point2D[] perp=UtilFunctions.getPerpendicular(init,end,mediop);
+			if (UtilFunctions.getAngle(end,init)<=Math.PI){
+				dist=-dist;
+			}
+			///center=TrigonometricalFunctions.getPoint(mediop,perp[1],dist);
+			java.awt.geom.Arc2D arco = UtilFunctions.createArc(init,center, end);
+			gp=new GeneralPathX(arco.getPathIterator(null));
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.core.FPolyline2D#intersects(java.awt.geom.Rectangle2D)
+	 */
+	public boolean intersects(Rectangle2D r) {
+		return gp.intersects(r);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Arc#setPoints(org.gvsig.fmap.geom.primitive.Point, org.gvsig.fmap.geom.primitive.Point, org.gvsig.fmap.geom.primitive.Point)
+	 */
+	public void setPoints(Point p1, Point p2, Point p3) {
+		Point2D _p1 = new java.awt.geom.Point2D.Double(p1.getCoordinateAt(0), p1.getCoordinateAt(1));
+		Point2D _p2 = new java.awt.geom.Point2D.Double(p2.getCoordinateAt(0), p2.getCoordinateAt(1));
+		Point2D _p3 = new java.awt.geom.Point2D.Double(p3.getCoordinateAt(0), p3.getCoordinateAt(1));
+		setPoints(_p1, _p2, _p3);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Curve2D#setGeneralPath(org.gvsig.fmap.geom.primitive.GeneralPathX)
+	 */
+	public void setGeneralPath(GeneralPathX generalPathX) {
+		throw new UnsupportedOperationException("Use setPoints(Point p1, Point p2, Point p3)");
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Arc#setPoints(java.awt.geom.Point2D, java.awt.geom.Point2D, java.awt.geom.Point2D)
+	 */
+	private void setPoints(Point2D p1, Point2D p2, Point2D p3) {
+		java.awt.geom.Arc2D arco = UtilFunctions.createArc(p1, p2, p3);
+		if (arco == null) {
+			throw new IllegalArgumentException();
+		}
+		this.gp = new GeneralPathX(arco.getPathIterator(null));
+		this.center = p1;
+		this.init = p2;
+		this.end = p3;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Arc#setPoints(org.gvsig.fmap.geom.primitive.Point, double, double, double)
+	 */
+	public void setPoints(Point center, double radius, double initAngle,
+			double angleExt) {
+		Point2D _center = new java.awt.geom.Point2D.Double(center.getCoordinateAt(0), center.getCoordinateAt(1));
+		setPoints(_center, radius, initAngle, angleExt);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Arc#setPoints(java.awt.geom.Point2D, double, double, double)
+	 */
+	private void setPoints(Point2D center, double radius, double initAngle,
+			double angleExt) {
+		java.awt.geom.Arc2D arco = UtilFunctions.createArc(center, radius, initAngle, angleExt);
+
+		java.awt.geom.Arc2D semiarco = UtilFunctions.createArc(center, radius, initAngle, angleExt/2);
+		if (arco == null || semiarco == null) {
+			return;
+		}
+
+		Point2D p1 = arco.getStartPoint();
+		Point2D p2 = semiarco.getEndPoint();
+		Point2D p3 = arco.getEndPoint();
+
+		setPoints(p1, p2, p3);		
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Curve2D#setPoints(org.gvsig.fmap.geom.primitive.Point, org.gvsig.fmap.geom.primitive.Point)
+	 */
+	public void setPoints(Point startPoint, Point endPoint) {
+		throw new UnsupportedOperationException("Use setGeneralPathX");
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Arc#getEndPoint()
+	 */
+	public Point getEndPoint() {
+		return new org.gvsig.fmap.geom.primitive.impl.Point2D(end.getX(), end.getY());
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Arc#getInitPoint()
+	 */
+	public Point getInitPoint() {
+		return new org.gvsig.fmap.geom.primitive.impl.Point2D(init.getX(), init.getY());
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Arc#getCenterPoint()
+	 */
+	public Point getCenterPoint() {
+		Point2D p = UtilFunctions.getCenter(init, center,end);
+		try {
+			return new org.gvsig.fmap.geom.primitive.impl.Point2D(p.getX(), p.getY());
+		} catch (Exception e) {
+			return  null;
+		}
+	}		
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Arc2D.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/DefaultNullGeometry.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/DefaultNullGeometry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/DefaultNullGeometry.java	(revision 38288)
@@ -0,0 +1,213 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.Rectangle;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+
+import org.cresques.cts.ICoordTrans;
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.primitive.FShape;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.NullGeometry;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class DefaultNullGeometry extends AbstractPrimitive implements NullGeometry {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public DefaultNullGeometry(GeometryType geometryType) {
+		super(geometryType);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#intersects(java.awt.geom.Rectangle2D)
+	 */
+	public boolean intersects(Rectangle2D r) {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#getBounds2D()
+	 */
+	public Rectangle2D getBounds2D() {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#cloneGeometry()
+	 */
+	public org.gvsig.fmap.geom.Geometry cloneGeometry() {
+		return this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#reProject(org.cresques.cts.ICoordTrans)
+	 */
+	public void reProject(ICoordTrans ct) {
+	}
+
+	/**
+	 * @see org.gvsig.fmap.geom.Geometry#getPathIterator(AffineTransform)
+	 */
+	public PathIterator getPathIterator(AffineTransform at) {
+		// TODO falta implementar.
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#fastIntersects(double,
+	 *      double, double, double)
+	 */
+	public boolean fastIntersects(double x, double y, double w, double h) {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#getHandlers(int)
+	 */
+	public Handler[] getHandlers(int type) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public void transform(AffineTransform at) {
+
+	}
+
+	public PathIterator getPathIterator(AffineTransform at, double flatness) {
+		return null;
+	}
+
+	public boolean contains(double arg0, double arg1) {
+		return false;
+	}
+
+	public boolean contains(double arg0, double arg1, double arg2, double arg3) {
+		return false;
+	}
+
+	public boolean intersects(double arg0, double arg1, double arg2, double arg3) {
+		return false;
+	}
+
+	public Rectangle getBounds() {
+		return null;
+	}
+
+	public boolean contains(Point2D arg0) {
+		return false;
+	}
+
+	public boolean contains(Rectangle2D arg0) {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#isSimple()
+	 */
+	public boolean isSimple() {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.gvsig.geometries.iso.GM_Object#coordinateDimension()
+	 */
+	public int getDimension() {
+		return 0;
+	}
+
+	public FShape cloneFShape() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Handler[] getSelectHandlers() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Handler[] getStretchingHandlers() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Envelope getEnvelope() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	public GeneralPathX getGeneralPath() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/DefaultNullGeometry.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/AbstractPrimitive.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/AbstractPrimitive.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/AbstractPrimitive.java	(revision 38288)
@@ -0,0 +1,700 @@
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.Shape;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+import java.io.Serializable;
+
+import org.cresques.cts.ICoordTrans;
+import org.cresques.cts.IProjection;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.operation.relationship.DefaultRelationshipGeometryOperationContext;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.primitive.FShape;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.Primitive;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.geom.util.Converter;
+
+
+/**
+ * @author Jorge Piera Llodr� (jorge.piera@iver.es)
+ */
+public abstract class AbstractPrimitive implements Primitive, FShape, Shape, Serializable {
+	
+	private static final Logger logger = LoggerFactory.getLogger(GeometryManager.class);
+
+	private static final long serialVersionUID = -4334977368955260872L;
+	protected String id = null;
+	protected IProjection projection = null;
+	protected GeometryType geometryType = null;
+	protected static GeometryManager geomManager = GeometryLocator.getGeometryManager();
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public AbstractPrimitive(GeometryType geometryType) {
+		this(geometryType, null, null);		
+	}
+	
+	AbstractPrimitive(int type, int subtype) {
+		try {
+			geometryType = geomManager.getGeometryType(type, subtype);
+		} catch (Exception e) {
+			//TODO Not registered geometry
+			geometryType = null;
+		}
+	}	
+	
+	public AbstractPrimitive(GeometryType geometryType, String id, IProjection projection) {
+		super();
+		this.id = id;
+		this.projection = projection;
+		this.geometryType = geometryType;
+	}
+
+	public AbstractPrimitive(GeometryType geometryType, IProjection projection) {
+		this(geometryType, null, projection);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.Geometry#getGeometryType()
+	 */
+	public GeometryType getGeometryType() {
+		return geometryType;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.Geometry#getType()
+	 */
+	public int getType() {
+		return geometryType.getType();
+	}
+
+	/**
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.core.Geometry#getInternalShape()
+	 * @deprecated this Geometry is a Shape.
+	 */
+	public Shape getInternalShape() {
+		return this;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.geometries.iso.AbstractGeometry#getId()
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.geometries.iso.AbstractGeometry#getSRS()
+	 */
+	public IProjection getSRS() {
+		return projection;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.geometries.iso.AbstractGeometry#transform(org.cresques.cts.IProjection)
+	 */
+	public AbstractPrimitive transform(IProjection newProjection) {
+		Geometry newGeom = cloneGeometry();
+		ICoordTrans coordTrans = projection.getCT(newProjection);
+		newGeom.reProject(coordTrans);
+		return (AbstractPrimitive)newGeom;
+	}
+
+
+	/*
+	 * TODO adaptar metodo procedente de UtilFunctions
+	 */
+	public static void rotateGeom(Geometry geometry, double radAngle, double basex, double basey) {
+		AffineTransform at = new AffineTransform();
+		at.rotate(radAngle,basex,basey);
+		geometry.transform(at);
+
+	}
+
+	/*
+	 * TODO adaptar metodo procedente de UtilFunctions
+	 */
+	public static void moveGeom(Geometry geometry, double dx, double dy) {
+        AffineTransform at = new AffineTransform();
+        at.translate(dx, dy);
+        geometry.transform(at);
+	}
+
+	/*
+	 * TODO adaptar metodo procedente de UtilFunctions
+	 */
+	public static void scaleGeom(Geometry geometry, Point2D basePoint, double sx, double sy) {
+		AffineTransform at = new AffineTransform();
+		at.setToTranslation(basePoint.getX(),basePoint.getY());
+		at.scale(sx,sy);
+		at.translate(-basePoint.getX(),-basePoint.getY());
+		geometry.transform(at);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.Geometry#fastIntersects(double, double, double, double)
+	 */
+	public boolean fastIntersects(double x, double y, double w, double h) {
+
+		boolean resp = true;
+		
+		try {
+			resp = intersectsRectangle(this, x, y, w, h);
+		} catch (GeometryOperationException e) {
+			logger.error("While doing fastintersects: " + e.getMessage(), e);
+		}
+		
+		return resp;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
+	 */
+	public Geometry cloneGeometry() {
+		return (Geometry)cloneFShape();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.Geometry#getHandlers(int)
+	 */
+	public Handler[] getHandlers(int type) {
+		if (type==STRETCHINGHANDLER){
+			return getStretchingHandlers();
+		}else if (type==SELECTHANDLER){
+			return getSelectHandlers();
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.Geometry#isSimple()
+	 */
+	public boolean isSimple() {
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.Geometry#invokeOperation(int, org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invokeOperation(int index, GeometryOperationContext ctx) throws GeometryOperationNotSupportedException, GeometryOperationException {
+		return geomManager.invokeOperation(index, this, ctx);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.Geometry#invokeOperation(java.lang.String, org.gvsig.fmap.geom.operation.GeometryOperationContext)
+	 */
+	public Object invokeOperation(String oppName, GeometryOperationContext ctx) throws GeometryOperationNotSupportedException, GeometryOperationException {
+		return geomManager.invokeOperation(oppName, this, ctx);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see java.lang.Comparable#compareTo(T)
+	 */
+	public int compareTo(Object arg0) {
+		// TODO Auto-generated method stub
+		return -1;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see java.lang.Object#toString()
+	 */
+	public String toString() {
+		String name=getGeometryType().getName();
+		return name.substring(name.lastIndexOf(".")+1);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	public boolean equals(Object obj) {
+		if (obj == null) {
+			return false;
+		}
+		if (this.getClass() != obj.getClass()) {
+			return false;
+		}
+
+		AbstractPrimitive other = (AbstractPrimitive) obj;
+		if (this.getGeometryType().getType() != other.getGeometryType()
+				.getType()) {
+			return false;
+
+		}
+		if (this.getGeometryType().getSubType() != other.getGeometryType()
+				.getSubType()) {
+			return false;
+
+		}
+		if (this.projection != other.projection) {
+			if (this.projection == null) {
+				return false;
+			}
+			if (this.projection.getAbrev() != other.projection.getAbrev()) { //FIXME this must be false
+				return false;
+			}
+		}
+		if (!this.getBounds().equals(other.getBounds())) {
+			return false;
+		}
+
+
+		GeneralPathX myPath = this.getGeneralPath();
+		GeneralPathX otherPath = other.getGeneralPath();
+		if (myPath == null) {
+			if (otherPath != null) {
+				return false;
+			} else {
+				// TODO checkThis
+				return true;
+			}
+
+		}
+		if (myPath.getNumTypes() != otherPath.getNumTypes()) {
+			return false;
+		}
+		if (Math.abs(myPath.getNumCoords() - otherPath.getNumCoords()) > this
+				.getDimension()) {
+			return false;
+		}
+		PathIterator myIter = myPath.getPathIterator(null);
+		PathIterator otherIter = otherPath.getPathIterator(null);
+		int myType,otherType;
+		// FIXME when 3D, 2DM and 3DM
+		double[] myData = new double[6];
+		double[] otherData = new double[6];
+		double[] myFirst = new double[] { myPath.getPointAt(0).getX(),myPath.getPointAt(0).getY()};
+		double[] otherFirst = new double[] { otherPath.getPointAt(0).getX(),otherPath.getPointAt(0).getY()};
+
+		while (!myIter.isDone()) {
+			if (otherIter.isDone()) {
+				return false;
+			}
+			for (int i = 0; i < myData.length; i++) {
+				myData[i] = 0.0;
+				otherData[i] = 0.0;
+			}
+
+			myType = myIter.currentSegment(myData);
+			otherType = otherIter.currentSegment(otherData);
+
+			switch (myType) {
+			case PathIterator.SEG_LINETO:
+				if (otherType != myType) {
+					if (otherType == PathIterator.SEG_CLOSE){
+						if (!comparePathIteratorData(otherFirst, myData)) {
+							return false;
+						}
+					} else {
+						return false;
+					}
+				} else {
+					if (!comparePathIteratorData(myData, otherData)) {
+						return false;
+					}
+				}
+				break;
+
+
+			case PathIterator.SEG_CLOSE:
+				if (otherType != myType) {
+					if (otherType == PathIterator.SEG_LINETO) {
+						if (!comparePathIteratorData(myFirst, otherData)) {
+							return false;
+						}
+					} else {
+						return false;
+					}
+				} else {
+					if (!comparePathIteratorData(myData, otherData)) {
+						return false;
+					}
+				}
+				break;
+
+
+
+			case PathIterator.SEG_MOVETO:
+			case PathIterator.SEG_QUADTO:
+			case PathIterator.SEG_CUBICTO:
+				if (otherType != myType) {
+					return false;
+				}
+				if (!comparePathIteratorData(myData, otherData)) {
+					return false;
+				}
+				break;
+
+			} // end switch
+
+
+			myIter.next();
+			otherIter.next();
+		}
+		if (!otherIter.isDone()) {
+			return false;
+		}
+		return true;
+	}
+
+	private boolean comparePathIteratorData(double[] org, double[] other) {
+		for (int i = 0; i < org.length; i++) {
+			if (Math.abs(org[i] - other[i]) > 0.0000001) {
+				return false;
+			}
+		}
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.FShape#getShapeType()
+	 */
+	public int getShapeType() {
+		return getType();
+	}
+	
+	
+	
+	
+	
+	
+	
+	
+	/**
+	 * Utility method
+	 * @param geometry
+	 * @param x
+	 * @param y
+	 * @return
+	 * @throws GeometryOperationException
+	 */
+	protected boolean containsPoint(Geometry geom, double x, double y) throws GeometryOperationException {
+		
+		// exclude disjoint 
+		Envelope env = geom.getEnvelope();
+		if (x > env.getMaximum(0)) return false; 
+		if (y > env.getMaximum(1)) return false; 
+		if (x < env.getMinimum(0)) return false; 
+		if (y < env.getMinimum(1)) return false; 
+		
+		// boxes overlap, need long version
+		
+		Geometry geompoint = null;
+		try {
+			geompoint = GeometryLocator.getGeometryManager().createPoint(x, y, SUBTYPES.GEOM2D);
+		} catch (Exception e1) {
+			throw new GeometryOperationException(geom.getType(), GeometryOperation.OPERATION_CONTAINS_CODE, e1);
+		}
+		
+		DefaultRelationshipGeometryOperationContext drgoc =
+			new DefaultRelationshipGeometryOperationContext(geompoint);
+		
+		Object resp = null;
+		boolean respboolean = true;
+		try {
+			resp = geom.invokeOperation(GeometryOperation.OPERATION_CONTAINS_CODE, drgoc);
+			respboolean = ((Boolean) resp).booleanValue();
+		} catch (Exception e) {
+			throw new GeometryOperationException(geom.getType(), GeometryOperation.OPERATION_CONTAINS_CODE, e);
+		}
+
+		return respboolean;
+	}
+
+	/**
+	 * 
+	 * @param geometry
+	 * @param x
+	 * @param y
+	 * @param w
+	 * @param h
+	 * @return
+	 */
+	protected boolean containsRectangle(Geometry geom, double x, double y,
+			double w, double h) throws GeometryOperationException {
+		
+		
+		// exclude disjoint boxes
+		Envelope env = geom.getEnvelope();
+		if (x > env.getMaximum(0)) return false; 
+		if ((x+w) < env.getMinimum(0)) return false; 
+		if (y > env.getMaximum(1)) return false; 
+		if ((y+h) < env.getMinimum(1)) return false; 
+		
+		if (w == 0 && h == 0) {
+			return  containsPoint(geom, x, y); 
+		}
+		
+		// boxes overlap, need long version
+		Geometry rectgeom = null;
+		GeneralPathX gpx = new GeneralPathX();
+		gpx.moveTo(x, y);
+		gpx.lineTo(x+w, y);
+		gpx.lineTo(x+w, y+h);
+		gpx.lineTo(x, y+h);
+		gpx.lineTo(x, y);
+		
+		try {
+			rectgeom = GeometryLocator.getGeometryManager().createSurface(gpx, SUBTYPES.GEOM2D);
+		} catch (Exception e1) {
+			throw new GeometryOperationException(geom.getType(), GeometryOperation.OPERATION_CONTAINS_CODE, e1);
+		}
+		
+		DefaultRelationshipGeometryOperationContext drgoc =
+			new DefaultRelationshipGeometryOperationContext(rectgeom);
+		
+		Object resp = null;
+		boolean respboolean = true;
+		try {
+			resp = geom.invokeOperation(GeometryOperation.OPERATION_CONTAINS_CODE, drgoc);
+			respboolean = ((Boolean) resp).booleanValue();
+		} catch (Exception e) {
+			throw new GeometryOperationException(geom.getType(), GeometryOperation.OPERATION_CONTAINS_CODE, e);
+		}
+
+		return respboolean;
+	}
+	
+
+	/**
+	 * 
+	 * @param geom
+	 * @param x
+	 * @param y
+	 * @param w
+	 * @param h
+	 * @return
+	 */
+	protected boolean intersectsRectangle(Geometry geom, double x, double y,
+			double w, double h) throws GeometryOperationException {
+		
+		// exclude disjoint boxes
+		Envelope env = geom.getEnvelope();
+		if (x > env.getMaximum(0)) return false; 
+		if ((x+w) < env.getMinimum(0)) return false; 
+		if (y > env.getMaximum(1)) return false; 
+		if ((y+h) < env.getMinimum(1)) return false; 
+		
+		// boxes overlap, need long version
+		Geometry rectgeom = null;
+		GeneralPathX gpx = new GeneralPathX();
+		gpx.moveTo(x, y);
+		gpx.lineTo(x+w, y);
+		gpx.lineTo(x+w, y+h);
+		gpx.lineTo(x, y+h);
+		gpx.lineTo(x, y);
+		
+		try {
+			rectgeom = GeometryLocator.getGeometryManager().createSurface(gpx, SUBTYPES.GEOM2D);
+		} catch (Exception e1) {
+			throw new GeometryOperationException(geom.getType(), GeometryOperation.OPERATION_INTERSECTS_CODE, e1);
+		}
+		
+		DefaultRelationshipGeometryOperationContext drgoc =
+			new DefaultRelationshipGeometryOperationContext(rectgeom);
+		
+		Object resp = null;
+		boolean respboolean = true;
+		try {
+			resp = geom.invokeOperation(GeometryOperation.OPERATION_INTERSECTS_CODE, drgoc);
+			respboolean = ((Boolean) resp).booleanValue();
+		} catch (Exception e) {
+			throw new GeometryOperationException(geom.getType(), GeometryOperation.OPERATION_INTERSECTS_CODE, e);
+		}
+
+		return respboolean;
+
+
+	}
+
+	private com.vividsolutions.jts.geom.Geometry getJTS() {
+		return Converter.geometryToJts(this);
+	}
+	
+	public byte[] convertToWKB() throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		return (byte[]) this.invokeOperation(OPERATIONS.CONVERTTOWKB, null);
+	}
+
+	public String convertToWKT() throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		return (String) this.invokeOperation(OPERATIONS.CONVERTTOWKT, null);
+	}
+
+	public Geometry buffer(double distance)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		// TODO: this method can be implemented throw invokeOperation 
+		try {
+			return Converter.jtsToGeometry( getJTS().buffer(distance) );
+		} catch (CreateGeometryException e) {
+			throw new GeometryOperationException(e);
+		}
+	}
+	
+	public boolean contains(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		// TODO: this method can be implemented throw invokeOperation 
+		return getJTS().contains(Converter.geometryToJts(geometry));
+	}
+	
+	public double distance(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		// TODO: this method can be implemented throw invokeOperation 
+		return getJTS().distance( Converter.geometryToJts(geometry));
+	}
+	
+	public boolean overlaps(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		// TODO: this method can be implemented throw invokeOperation 
+		return getJTS().overlaps(Converter.geometryToJts(geometry));
+	}
+	
+	public Geometry convexHull() throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		// TODO: this method can be implemented throw invokeOperation 
+		try {
+			return Converter.jtsToGeometry( getJTS().convexHull() );
+		} catch (CreateGeometryException e) {
+			throw new GeometryOperationException(e);
+		}
+	}
+	
+	public boolean coveredBy(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		// TODO: this method can be implemented throw invokeOperation 
+		return getJTS().coveredBy( Converter.geometryToJts(geometry));
+	}
+	
+	public boolean crosses(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		// TODO: this method can be implemented throw invokeOperation 
+		return getJTS().crosses(Converter.geometryToJts(geometry));
+	}
+	
+	public Geometry difference(Geometry other)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		// TODO: this method can be implemented throw invokeOperation 
+		try {
+			return Converter.jtsToGeometry( getJTS().difference( Converter.geometryToJts(other)) );
+		} catch (CreateGeometryException e) {
+			throw new GeometryOperationException(e);
+		}
+	}
+	
+	public Geometry intersection(Geometry other)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		// TODO: this method can be implemented throw invokeOperation 
+		try {
+			return Converter.jtsToGeometry( getJTS().intersection(Converter.geometryToJts(other)) );
+		} catch (CreateGeometryException e) {
+			throw new GeometryOperationException(e);
+		}
+	}
+	
+	public boolean intersects(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		// TODO: this method can be implemented throw invokeOperation 
+		return getJTS().intersects(Converter.geometryToJts(geometry));
+	}
+	
+	public boolean touches(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		// TODO: this method can be implemented throw invokeOperation 
+		return getJTS().touches(Converter.geometryToJts(geometry));
+	}
+	
+	public Geometry union(Geometry other)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		// TODO: this method can be implemented throw invokeOperation 
+		try {
+			return Converter.jtsToGeometry( getJTS().union(Converter.geometryToJts(other)) );
+		} catch (CreateGeometryException e) {
+			throw new GeometryOperationException(e);
+		}
+	}
+	
+	public boolean disjoint(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		// TODO: this method can be implemented throw invokeOperation 
+		return getJTS().disjoint(Converter.geometryToJts(geometry));
+	}
+	
+	public boolean within(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException {
+		// TODO: this method can be implemented throw invokeOperation 
+		return getJTS().within(Converter.geometryToJts(geometry));
+	}
+	
+	public Point centroid() throws GeometryOperationNotSupportedException, GeometryOperationException {
+		com.vividsolutions.jts.geom.Geometry geometry = getJTS();
+		com.vividsolutions.jts.geom.Point point = geometry.getCentroid();
+		GeometryOperationContext geometryOperationContext = new GeometryOperationContext();
+		geometryOperationContext.setAttribute("JTSGeometry", point);
+		return (Point)this.invokeOperation("fromJTS", geometryOperationContext);		
+	}	
+	
+	public double area() throws GeometryOperationNotSupportedException, GeometryOperationException
+    {
+        //Using get getJTS method instead of use the "toJTS" operation just for performance
+        return getJTS().getArea();
+    }
+    
+    public double perimeter() throws GeometryOperationNotSupportedException, GeometryOperationException
+    {
+      //Using get getJTS method instead of use the "toJTS" operation just for performance
+        return getJTS().getLength();
+    }
+
+    public Shape getShape() {
+        return this;
+    }  
+    
+    public Shape getShape(AffineTransform affineTransform) {
+        if (affineTransform == null){
+            return this;
+        }
+        return new GeneralPathAdapter(affineTransform, getGeneralPath());
+    }     
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/AbstractPrimitive.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/OrientablePrimitive2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/OrientablePrimitive2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/OrientablePrimitive2D.java	(revision 38288)
@@ -0,0 +1,442 @@
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.Rectangle;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Line2D;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.util.ArrayList;
+
+import org.cresques.cts.ICoordTrans;
+import org.cresques.cts.IProjection;
+
+import org.gvsig.fmap.geom.handler.AbstractHandler;
+import org.gvsig.fmap.geom.handler.FinalHandler;
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.GeneralPathXIterator;
+import org.gvsig.fmap.geom.primitive.OrientablePrimitive;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id: FOrientablePrimitive2D.java,v 1.1 2008/03/12 08:46:20 cvs Exp $
+ * $Log: FOrientablePrimitive2D.java,v $
+ * Revision 1.1  2008/03/12 08:46:20  cvs
+ * *** empty log message ***
+ *
+ *
+ */
+/**
+ * @author Jorge Piera Llodr� (jorge.piera@iver.es)
+ */
+public abstract class OrientablePrimitive2D extends AbstractPrimitive implements OrientablePrimitive {
+    private static final long serialVersionUID = -820881421374434713L;
+    protected GeneralPathX gp;
+
+    /**
+     * The constructor with the GeometryType like and argument 
+     * is used by the {@link GeometryType}{@link #create()}
+     * to create the geometry
+     * @param type
+     * The geometry type
+     */
+    public OrientablePrimitive2D(GeometryType geometryType) {
+        super(geometryType, null, null);
+        gp = new GeneralPathX();
+    }
+
+    public OrientablePrimitive2D(GeometryType geometryType, String id, IProjection projection, GeneralPathX gp){
+        super(geometryType, id, projection);
+        this.gp = gp;		
+    }
+
+    /**
+     * TODO método creado para dar visibilidad a gp despues de la refactorización
+     * @return
+     */
+    public GeneralPathX getGeneralPathX() {
+        return gp;
+    }
+
+    /* (non-Javadoc)
+     * @see java.awt.Shape#contains(double, double)
+     */
+    public boolean contains(double x, double y) {
+        return gp.contains(x, y);
+    }
+
+    /* (non-Javadoc)
+     * @see java.awt.Shape#contains(double, double, double, double)
+     */
+    public boolean contains(double x, double y, double w, double h) {
+        return gp.contains(x, y, w, h);
+    }
+
+    /* (non-Javadoc)
+     * @see java.awt.Shape#intersects(double, double, double, double)
+     */
+    public boolean intersects(double x, double y, double w, double h) {
+        // M�s r�pido
+        return gp.intersects(x, y, w, h);
+    }
+
+    /* (non-Javadoc)
+     * @see java.awt.Shape#getBounds()
+     */
+    public Rectangle getBounds() {
+        return gp.getBounds();
+    }
+
+    /* (non-Javadoc)
+     * @see java.awt.Shape#contains(java.awt.geom.Point2D)
+     */
+    public boolean contains(Point2D p) {
+        return gp.contains(p);
+    }
+
+    /* (non-Javadoc)
+     * @see java.awt.Shape#getBounds2D()
+     */
+    public Rectangle2D getBounds2D() {
+        return gp.getBounds2D();
+    }
+
+    /* (non-Javadoc)
+     * @see java.awt.Shape#contains(java.awt.geom.Rectangle2D)
+     */
+    public boolean contains(Rectangle2D r) {
+        return gp.contains(r);
+    }
+
+    /**
+     * El m�todo intersects de java.awt.Shape que define la intersecci�n entre
+     * una polil�nea y un Rectangle2D considera la polil�nea como un Shape
+     * gen�rico y se producen errores en la selecci�n de polil�neas. Por este
+     * motivo se ha modificado este m�todo intersect() de FPolyline2D para que
+     * realize la intersecci�n estricta entre el Rectangle2D y la polil�nea en
+     * cuesti�n. El precio es un incremento de tiempo m�ximo del 50%.
+     *
+     * @param r Rect�ngulo.
+     *
+     * @return True si intersecta con el rectangulo que se pasa como par�metro.
+     */
+    public boolean intersects(Rectangle2D r) {
+        //return gp.intersects(r);
+        // M�s exacto
+        boolean bool = false;
+        if (gp.intersects(r)) {
+            ArrayList arrayCoords;
+            int theType;
+            //Use this array to store segment coordinate data
+            double[] theData = new double[6];
+            PathIterator theIterator;
+
+            Point2D p1 = new Point2D.Double(r.getMinX(),r.getMinY());
+            Point2D p2 = new Point2D.Double(r.getMinX(),r.getMaxY());
+            Point2D p3 = new Point2D.Double(r.getMaxX(),r.getMaxY());
+            Point2D p4 = new Point2D.Double(r.getMaxX(),r.getMinY());
+            Line2D l1 = new Line2D.Double(p1,p2);
+            Line2D l2 = new Line2D.Double(p2,p3);
+            Line2D l3 = new Line2D.Double(p3,p4);
+            Line2D l4 = new Line2D.Double(p4,p1);
+
+            theIterator = this.getPathIterator(null, geomManager.getFlatness());
+            arrayCoords = new ArrayList();
+            while(!theIterator.isDone()) {
+                theType = theIterator.currentSegment(theData);
+                if (theType==PathIterator.SEG_MOVETO) {
+                    arrayCoords.add(new Point2D.Double(theData[0], theData[1]));
+                } else if (theType==PathIterator.SEG_LINETO) {
+                    arrayCoords.add(new Point2D.Double(theData[0], theData[1]));
+                    Point2D pAnt = (Point2D)arrayCoords.get(arrayCoords.size()-2);
+                    Line2D l = new Line2D.Double(pAnt.getX(),pAnt.getY(),theData[0],theData[1]);
+                    if (l.intersectsLine(l1.getX1(),l1.getY1(),l1.getX2(),l1.getY2())
+                        || l.intersectsLine(l2.getX1(),l2.getY1(),l2.getX2(),l2.getY2())
+                        || l.intersectsLine(l3.getX1(),l3.getY1(),l3.getX2(),l3.getY2())
+                        || l.intersectsLine(l4.getX1(),l4.getY1(),l4.getX2(),l4.getY2())
+                        || r.intersectsLine(l)) {
+                        bool = true;
+                    }
+                } else if(theType==PathIterator.SEG_CLOSE){
+                    Point2D firstPoint=(Point2D)arrayCoords.get(0);
+                    Point2D pAnt = (Point2D)arrayCoords.get(arrayCoords.size()-1);
+                    Line2D l = new Line2D.Double(pAnt.getX(),pAnt.getY(),firstPoint.getX(),firstPoint.getY());
+                    if (l.intersectsLine(l1.getX1(),l1.getY1(),l1.getX2(),l1.getY2())
+                        || l.intersectsLine(l2.getX1(),l2.getY1(),l2.getX2(),l2.getY2())
+                        || l.intersectsLine(l3.getX1(),l3.getY1(),l3.getX2(),l3.getY2())
+                        || l.intersectsLine(l4.getX1(),l4.getY1(),l4.getX2(),l4.getY2())
+                        || r.intersectsLine(l)) {
+                        bool = true;
+                    }
+                }else {
+                    System.out.println("Not supported here");
+                }
+                theIterator.next();
+            }
+        }
+        return bool;
+    }
+
+    /* (non-Javadoc)
+     * @see java.awt.Shape#getPathIterator(java.awt.geom.AffineTransform)
+     */
+    public PathIterator getPathIterator(AffineTransform at) {
+        return gp.getPathIterator(at);
+    }
+
+    /* (non-Javadoc)
+     * @see java.awt.Shape#getPathIterator(java.awt.geom.AffineTransform, double)
+     */
+    public PathIterator getPathIterator(AffineTransform at, double flatness) {
+        return gp.getPathIterator(at, flatness);
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param at DOCUMENT ME!
+     */
+    public void transform(AffineTransform at) {
+
+        // TODO: PRUEBA. BORRAR ESTA LINEA
+        // gp = FConverter.transformToInts(gp, at);
+
+        gp.transform(at);
+    }
+
+    /* (non-Javadoc)
+     * @see com.iver.cit.gvsig.fmap.core.FShape#reProject(org.cresques.cts.ICoordTrans)
+     */
+    public void reProject(ICoordTrans ct) {
+        gp.reProject(ct);
+    }
+
+    /* (non-Javadoc)
+     * @see com.iver.cit.gvsig.fmap.core.FShape#getStretchingHandlers()
+     */
+    public Handler[] getStretchingHandlers() {
+        ArrayList handlers = new ArrayList();
+        GeneralPathXIterator gpi = null;
+        gpi = (GeneralPathXIterator) getPathIterator(null);
+
+        double[] theData = new double[6];
+        int i=0;
+        while (!gpi.isDone()) {
+            gpi.currentSegment(theData);
+            //g.fillRect((int)(theData[0]-3),(int)(theData[1]-3),6,6);
+            handlers.add(new PointHandler(i,theData[0], theData[1]));
+            i++;
+            gpi.next();
+        }
+
+        return (Handler[]) handlers.toArray(new Handler[0]);
+    }
+
+    /* (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#getCoordinateAt(int, int)
+     */
+    public double getCoordinateAt(int index, int dimension) {
+        if (index > gp.getNumCoords()){
+            throw new ArrayIndexOutOfBoundsException();
+        }
+        return gp.getPointAt(index).getCoordinateAt(dimension);         
+    }
+
+    /* (non-Javadoc)
+     * @see com.iver.cit.gvsig.fmap.core.FShape#getSelectHandlers()
+     */
+    public Handler[] getSelectHandlers() {
+        Handler[] handlers = new Handler[gp.getNumCoords()];
+        for (int i=0 ; i<gp.getNumCoords() ; i++){
+            handlers[i] = new PointSelHandler(i, gp.getPointAt(i).getX(), gp.getPointAt(i).getY());
+        } 
+        return handlers;        
+    }
+    
+    /**
+     * DOCUMENT ME!
+     *
+     * @author Vicente Caballero Navarro
+     */
+    class PointHandler extends AbstractHandler implements FinalHandler{
+        /**
+         * Crea un nuevo PointHandler.
+         *
+         * @param x DOCUMENT ME!
+         * @param y DOCUMENT ME!
+         */
+        public PointHandler(int i,double x, double y) {
+            point = new Point2D.Double(x, y);
+            index = i;
+        }
+
+        /**
+         * DOCUMENT ME!
+         *
+         * @param x DOCUMENT ME!
+         * @param y DOCUMENT ME!
+         *
+         * @return DOCUMENT ME!
+         */
+        public void move(double x, double y) {
+            Point point = gp.getPointAt(index);
+            point.setX(point.getX() + x);
+            point.setY(point.getY() + y);
+        }
+
+        /**
+         * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+         */
+        public void set(double x, double y) {
+            Point point = gp.getPointAt(index);
+            point.setX(x);
+            point.setY(y);
+        }
+    }
+    /**
+     * DOCUMENT ME!
+     *
+     * @author Vicente Caballero Navarro
+     */
+    class PointSelHandler extends AbstractHandler implements FinalHandler{
+        /**
+         * Crea un nuevo PointHandler.
+         *
+         * @param x DOCUMENT ME!
+         * @param y DOCUMENT ME!
+         */
+        public PointSelHandler(int i,double x, double y) {
+            point = new Point2D.Double(x, y);
+            index = i;
+        }
+
+        /**
+         * DOCUMENT ME!
+         *
+         * @param x DOCUMENT ME!
+         * @param y DOCUMENT ME!
+         *
+         * @return DOCUMENT ME!
+         */
+        public void move(double x, double y) {
+            Point point = gp.getPointAt(index);
+            point.setX(point.getX() + x);
+            point.setY(point.getY() + y);
+        }
+
+        /**
+         * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+         */
+        public void set(double x, double y) {
+            Point point = gp.getPointAt(index);
+            point.setX(x);
+            point.setY(y);
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.geometries.iso.GM_Object#coordinateDimension()
+     */
+    public int getDimension() {
+        return 2;
+    }
+
+    public Envelope getEnvelope() {
+        Rectangle2D r=gp.getBounds2D();
+        return new Envelope2D(r.getX(),r.getY(),r.getMaxX(),r.getMaxY());
+    }
+
+    public GeneralPathX getGeneralPath() {
+        return gp;
+    }
+
+    public int getNumVertices() {
+        return gp.getNumCoords();
+    }
+
+    public void addVertex(Point point) {
+        gp.lineTo(point);
+    }  
+    
+    public void addMoveToVertex(Point point) {
+        gp.moveTo(point);        
+    }
+
+    public void closePrimitive() {
+        gp.closePath();        
+    }
+
+    public void setVertex(int index, Point p) {
+        throw new UnsupportedOperationException("Use setGeneralPathX");     
+    }
+
+    public Point getVertex(int index) {
+        return gp.getPointAt(index);
+    }
+
+    public void insertVertex(int index, Point p) {
+        throw new UnsupportedOperationException("Method not implemented");      
+    }
+
+    public void removeVertex(int index) {
+        throw new UnsupportedOperationException("Method not implemented");      
+    }
+
+    public void setCoordinateAt(int index, int dimension, double value) {
+        gp.getPointAt(index).setCoordinateAt(dimension, value);      
+    }
+
+    public void setGeneralPath(GeneralPathX generalPathX) {
+        this.gp = generalPathX;
+    }
+
+    public void setPoints(Point startPoint, Point endPoint) {
+        throw new UnsupportedOperationException("Method not implemented");      
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/OrientablePrimitive2D.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Envelope2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Envelope2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Envelope2D.java	(revision 38288)
@@ -0,0 +1,108 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.geom.Rectangle2D;
+
+import org.cresques.cts.ICoordTrans;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.primitive.EnvelopeNotInitializedException;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DynStruct;
+import org.gvsig.tools.lang.Cloneable;
+import org.gvsig.tools.persistence.PersistenceManager;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class Envelope2D extends DefaultEnvelope implements Cloneable{
+	public static final String PERSISTENCE_DEFINITION_NAME = "Envelope2Dimensions";
+	
+	public Envelope2D() {
+		super();	
+	}
+
+	public Envelope2D(Point min, Point max) {
+		super(min, max);
+	}
+
+	public Envelope2D(double minX,double minY,double maxX, double maxY){
+		this(new Point2D(minX, minY), new Point2D(maxX, maxY));
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Envelope#getDimension()
+	 */
+	public int getDimension() {
+		return 2;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Envelope#convert(org.cresques.cts.ICoordTrans)
+	 */
+	public Envelope convert(ICoordTrans trans) {
+	    if (isEmpty){
+            throw new EnvelopeNotInitializedException();
+        }
+	    if (this.getDimension() > 2) {
+			return null;
+		}
+		Rectangle2D rect = new Rectangle2D.Double(this.getMinimum(0), this
+				.getMinimum(1), this.getLength(0), this.getLength(1));
+		Rectangle2D rectDest = trans.convert(rect);
+		if (rectDest == null){
+			return null;
+		}
+		Point2D p1 = new Point2D(rectDest.getMinX(), rectDest.getMinY());
+		Point2D p2 = new Point2D(rectDest.getMaxX(), rectDest.getMaxY());
+
+		return new Envelope2D(p1, p2);
+	}
+
+	public static void registerPersistent() {
+		PersistenceManager manager = ToolsLocator.getPersistenceManager();
+		if( manager.getDefinition(PERSISTENCE_DEFINITION_NAME)==null ) {
+			DynStruct definition = manager.addDefinition(
+					Envelope2D.class,
+					PERSISTENCE_DEFINITION_NAME,
+					"Envelope2D persistence definition",
+					null, 
+					null
+			); 
+			
+			definition.extend(manager.getDefinition(DefaultEnvelope.PERSISTENCE_DEFINITION_NAME));	
+		}
+	}
+	
+    public Object clone() throws CloneNotSupportedException {
+        return super.clone();
+    }
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Envelope2D.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Curve2DZ.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Curve2DZ.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Curve2DZ.java	(revision 38288)
@@ -0,0 +1,100 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import org.cresques.cts.IProjection;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.FShape;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * Polilinea 3D.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class Curve2DZ extends Curve2D implements Curve {
+    private static final long serialVersionUID = 3431077088722464314L;
+   
+    /**
+     * The constructor with the GeometryType like and argument 
+     * is used by the {@link GeometryType}{@link #create()}
+     * to create the geometry
+     * @param type
+     * The geometry type
+     */
+    public Curve2DZ(GeometryType geometryType) {
+        super(geometryType);
+    }
+
+    /**
+     * Constructor used in the {@link Geometry#cloneGeometry()} method
+     * @param id
+     * @param projection
+     * @param gpx
+     * @param pZ
+     */
+    Curve2DZ(GeometryType geometryType, String id, IProjection projection, GeneralPathX gpx) {
+        super(geometryType, id, projection, gpx);      
+    }	
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.impl.Curve2D#getShapeType()
+     */
+    public int getShapeType() {
+        return TYPES.CURVE;
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.impl.Curve2D#cloneFShape()
+     */
+    public FShape cloneFShape() {
+        return new Curve2DZ(getGeometryType(), id, projection, (GeneralPathX) gp.clone());
+    }
+    
+    public int getDimension() {
+        return 3;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Curve2DZ.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Envelope3D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Envelope3D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Envelope3D.java	(revision 38288)
@@ -0,0 +1,86 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.primitive.impl;
+
+import org.cresques.cts.ICoordTrans;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DynStruct;
+import org.gvsig.tools.lang.Cloneable;
+import org.gvsig.tools.persistence.PersistenceManager;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class Envelope3D extends DefaultEnvelope implements Cloneable{
+	public static final String PERSISTENCE_DEFINITION_NAME = "Envelope3Dimensions";
+	
+	public Envelope3D() {
+		super();		
+	}
+
+	public Envelope3D(Point min, Point max) {
+		super(min, max);
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Envelope#getDimension()
+	 */
+	public int getDimension() {
+		return 3;
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Envelope#convert(org.cresques.cts.ICoordTrans)
+	 */
+	public Envelope convert(ICoordTrans trans) {
+		return null;
+	}
+	
+	public static void registerPersistent() {
+		PersistenceManager manager = ToolsLocator.getPersistenceManager();
+		if( manager.getDefinition(PERSISTENCE_DEFINITION_NAME)==null ) {
+			DynStruct definition = manager.addDefinition(
+					Envelope3D.class,
+					PERSISTENCE_DEFINITION_NAME,
+					"Envelope3D persistence definition",
+					null, 
+					null
+			); 
+			
+			definition.extend(manager.getDefinition(DefaultEnvelope.PERSISTENCE_DEFINITION_NAME));	
+		}
+	}
+
+	public Object clone() throws CloneNotSupportedException {
+	    return super.clone();
+	}
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Envelope3D.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Surface2DZ.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Surface2DZ.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Surface2DZ.java	(revision 38288)
@@ -0,0 +1,102 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import org.cresques.cts.IProjection;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.primitive.FShape;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+
+/**
+ * Polilinea 3D.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class Surface2DZ extends Surface2D implements Surface {
+	private static final long serialVersionUID = 1L;
+	
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public Surface2DZ(GeometryType geometryType) {
+		super(geometryType);
+	}
+
+	/**
+	 * Constructor used in the {@link Geometry#cloneGeometry()} method
+	 * @param id
+	 * @param projection
+	 * @param gpx
+	 * @param pZ
+	 */
+	Surface2DZ(GeometryType geometryType, String id, IProjection projection, GeneralPathX gpx) {
+		super(geometryType, id, projection, gpx);		
+	}
+
+	/**
+	 * Clona FPolygon3D.
+	 *
+	 * @return FShape clonado.
+	 */
+	public FShape cloneFShape() {
+		return new Surface2DZ(getGeometryType(), id, projection, (GeneralPathX) gp.clone());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.impl.Surface2D#getShapeType()
+	 */
+	public int getShapeType() {
+		return TYPES.SURFACE;
+	}	
+
+    public int getDimension() {
+        return 3;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Surface2DZ.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Point2DZ.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Point2DZ.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Point2DZ.java	(revision 38288)
@@ -0,0 +1,136 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import org.cresques.cts.IProjection;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.primitive.FShape;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * Punto 3D.
+ * 
+ * @author Vicente Caballero Navarro
+ */
+public class Point2DZ extends Point2D implements Point {
+
+    public static final String PERSISTENCE_DEFINITION_NAME =
+        "Point2DimensionsZ";
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * The constructor with the GeometryType like and argument
+     * is used by the {@link GeometryType}{@link #create()} to create the
+     * geometry
+     * 
+     * @param type
+     *            The geometry type
+     */
+    public Point2DZ(GeometryType geomType) {
+        super(geomType);
+        coordinates[2] = 0;
+    }
+
+    /**
+     * Constructor used in the {@link Geometry#cloneGeometry()} method
+     * 
+     * @param id
+     * @param projection
+     * @param x
+     * @param y
+     * @param z
+     */
+    Point2DZ(GeometryType geomType, String id, IProjection projection,
+        double x, double y, double z) {
+        super(geomType, id, projection, x, y);
+        coordinates[2] = z;
+    }
+
+    public Point2DZ(double x, double y, double z) {
+        super(TYPES.POINT, SUBTYPES.GEOM3D);
+        coordinates[0] = x;
+        coordinates[1] = y;
+        coordinates[2] = z;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.gvsig.fmap.geom.primitive.impl.Point2D#getShapeType()
+     */
+    public int getShapeType() {
+        return TYPES.POINT;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.gvsig.fmap.geom.primitive.impl.Point2D#cloneFShape()
+     */
+    public FShape cloneFShape() {
+        return new Point2DZ(getGeometryType(), id, projection, coordinates[0],
+            coordinates[1], coordinates[2]);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.gvsig.fmap.geom.primitive.impl.Point2D#getDimension()
+     */
+    public int getDimension() {
+        return 3;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.gvsig.fmap.geom.primitive.impl.Point2D#equals(java.lang.Object)
+     */
+    public boolean equals(Object other) {
+        if (!super.equals(other)) {
+            return false;
+        }
+
+        Point2DZ pother = (Point2DZ) other;
+        if (Math.abs(this.coordinates[2] - pother.coordinates[2]) > 0.0000001) {
+            return false;
+        }
+        return true;
+    }
+
+    public void setCoordinates(double[] values) {
+        super.setCoordinates(values);
+        if (values.length > 2) {
+            coordinates[2] = values[2];
+        }
+    }
+
+    public String toString() {
+        StringBuffer buffer = new StringBuffer();
+        buffer.append("Point2DZ(");
+        toStringCoordinates(buffer);
+        buffer.append(")");
+        return buffer.toString();
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Point2DZ.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Spline2DZ.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Spline2DZ.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Spline2DZ.java	(revision 38288)
@@ -0,0 +1,59 @@
+/**
+ *
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.geom.Point2D;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.primitive.Spline;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * @author paco
+ *
+ */
+public class Spline2DZ extends Spline2D implements Spline {
+	private static final long serialVersionUID = 8745988712085629939L;
+	private double z;
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public Spline2DZ(GeometryType geometryType) {
+		super(geometryType);		
+	}
+	
+	/**
+	 * Constructor used in the {@link Geometry#cloneGeometry()} method
+	 * @param geometryType
+	 * @param id
+	 * @param projection
+	 * @param ps
+	 * @param z
+	 */
+	Spline2DZ(GeometryType geometryType, String id, IProjection projection, Point2D[] ps, double z) {
+		super(geometryType, id, projection, ps);
+		this.z = z;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Curve2D#setCoordinateAt(int, int, double)
+	 */
+	public void setCoordinateAt(int index, int dimension, double value) {
+		if (dimension == 2){
+			z = value;
+		}else{
+			super.setCoordinateAt(index, dimension, value);
+		}
+	}	
+
+    public int getDimension() {
+        return 3;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Spline2DZ.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Curve2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Curve2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Curve2D.java	(revision 38288)
@@ -0,0 +1,119 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.geom.Line2D;
+import java.awt.geom.Point2D;
+
+import org.cresques.cts.IProjection;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.FShape;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.geom.util.UtilFunctions;
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Fernando Gonz�lez Cort�s
+ */
+public class Curve2D extends DefaultCurve implements Curve {
+	private static final long serialVersionUID = 8161943328767877860L;
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public Curve2D(GeometryType geomType) {
+		super(geomType);
+	}
+
+	/**
+	 * Constructor used in the {@link Geometry#cloneGeometry()} method.
+	 * @param geomType
+	 * @param id
+	 * @param projection
+	 * @param gpx
+	 */
+	public Curve2D(GeometryType geomType, String id, IProjection projection, GeneralPathX gpx) {
+		super(geomType, id, projection, gpx);
+		gp=gpx;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.Geometry#getShapeType()
+	 */
+	public int getShapeType() {
+		return TYPES.CURVE;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.FShape#cloneFShape()
+	 */
+	public FShape cloneFShape() {
+		return new Curve2D(getGeometryType(), id, projection, (GeneralPathX) gp.clone());
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Curve#setPoints(org.gvsig.fmap.geom.primitive.Point, org.gvsig.fmap.geom.primitive.Point)
+	 */
+	public void setPoints(Point startPoint, Point endPoint) {
+		Point2D _startPoint = new java.awt.geom.Point2D.Double(startPoint.getCoordinateAt(0), startPoint.getCoordinateAt(1));
+		Point2D _endPoint = new java.awt.geom.Point2D.Double(endPoint.getCoordinateAt(0), endPoint.getCoordinateAt(1));
+		setPoints(_startPoint, _endPoint);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Curve#setPoints(java.awt.geom.Point2D, java.awt.geom.Point2D)
+	 */
+	private void setPoints(Point2D startPoint, Point2D endPoint) {
+		Line2D line = UtilFunctions.createLine(startPoint, endPoint);
+		setGeneralPath(new GeneralPathX(line.getPathIterator(null)));
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Curve2D.java
___________________________________________________________________
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/EllipticArc2DZ.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/EllipticArc2DZ.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/EllipticArc2DZ.java	(revision 38288)
@@ -0,0 +1,52 @@
+/**
+ *
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.geom.Point2D;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * @author paco
+ *
+ */
+public class EllipticArc2DZ extends EllipticArc2D implements Curve {
+	private static final long serialVersionUID = -7625487589450160319L;
+	
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public EllipticArc2DZ(GeometryType geometryType) {
+		super(geometryType);		
+	}
+	
+	/**
+	 * Constructor used in the {@link Geometry#cloneGeometry()} method
+	 * @param geometryType
+	 * @param id
+	 * @param projection
+	 * @param gpx
+	 * @param axis1Start
+	 * @param axis1End
+	 * @param axis2Dist
+	 * @param angSt
+	 * @param andExt
+	 * @param z
+	 */
+	EllipticArc2DZ(GeometryType geometryType, String id, IProjection projection, GeneralPathX gpx, Point2D axis1Start,Point2D axis1End, double axis2Dist, double angSt, double andExt) {
+		super(geometryType, id, projection, gpx, axis1Start, axis1End, axis2Dist, angSt, andExt);		
+	}	
+
+    public int getDimension() {
+        return 3;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/EllipticArc2DZ.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Ellipse2DZ.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Ellipse2DZ.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Ellipse2DZ.java	(revision 38288)
@@ -0,0 +1,47 @@
+/**
+ *
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.geom.Point2D;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * @author paco
+ *
+ */
+public class Ellipse2DZ extends Ellipse2D implements Surface {
+	private static final long serialVersionUID = -6678908069111004754L;
+	
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public Ellipse2DZ(GeometryType geometryType) {
+		super(geometryType);		
+	}
+	
+	/**
+	 * @param id
+	 * @param projection
+	 * @param gpx
+	 * @param i
+	 * @param e
+	 * @param d
+	 */
+	Ellipse2DZ(GeometryType geometryType, String id, IProjection projection, GeneralPathX gpx,
+			Point2D i, Point2D e, double d, double z) {
+		super(geometryType, id, projection, gpx, i, e, d);		
+	}
+	
+    public int getDimension() {
+        return 3;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Ellipse2DZ.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Surface2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Surface2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Surface2D.java	(revision 38288)
@@ -0,0 +1,117 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.geom.Rectangle2D;
+
+import org.cresques.cts.IProjection;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.primitive.FShape;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.fmap.geom.primitive.SurfaceAppearance;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * Pol�gono 2D.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class Surface2D extends OrientableSurface2D implements Surface {
+	private static final long serialVersionUID = -8448256617197415743L;
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public Surface2D(GeometryType geomType) {
+		super(geomType);
+	}
+
+	/**
+	 * Constructor used in the {@link Geometry#cloneGeometry()} method.
+	 * @param geomType
+	 * @param id
+	 * @param projection
+	 * @param gpx
+	 */
+	Surface2D(GeometryType geomType, String id, IProjection projection, GeneralPathX gpx) {
+		super(geomType, id, projection, gpx);
+	}	
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.Geometry#getShapeType()
+	 */
+	public int getShapeType() {
+		return TYPES.SURFACE;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.FShape#cloneFShape()
+	 */
+	public FShape cloneFShape() {
+		return new Surface2D(getGeometryType(), id, projection, (GeneralPathX) gp.clone());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.impl.OrientablePrimitive2D#intersects(java.awt.geom.Rectangle2D)
+	 */
+	public boolean intersects(Rectangle2D r) {
+		return gp.intersects(r);
+	}
+
+	public SurfaceAppearance getSurfaceAppearance() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public void setSurfaceAppearance(SurfaceAppearance app) {
+		// TODO Auto-generated method stub
+		
+	}
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Surface2D.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/OrientableCurve2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/OrientableCurve2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/OrientableCurve2D.java	(revision 38288)
@@ -0,0 +1,78 @@
+package org.gvsig.fmap.geom.primitive.impl;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.OrientableCurve;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id: FOrientablePolyline2D.java,v 1.1 2008/03/12 08:46:20 cvs Exp $
+ * $Log: FOrientablePolyline2D.java,v $
+ * Revision 1.1  2008/03/12 08:46:20  cvs
+ * *** empty log message ***
+ *
+ *
+ */
+/**
+ * @author Jorge Piera Llodr� (jorge.piera@iver.es)
+ */
+public abstract class OrientableCurve2D extends OrientablePrimitive2D implements OrientableCurve{
+	private static final long serialVersionUID = 5985127974671632981L;
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public OrientableCurve2D(GeometryType geometryType) {
+		super(geometryType);		
+	}
+	
+	public OrientableCurve2D(GeometryType geometryType, String id, IProjection projection, GeneralPathX gpx) {
+		super(geometryType, id, projection, gpx);		
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/OrientableCurve2D.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Point2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Point2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Point2D.java	(revision 38288)
@@ -0,0 +1,444 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.Rectangle;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Rectangle2D;
+import java.util.ArrayList;
+
+import org.cresques.cts.ICoordTrans;
+import org.cresques.cts.IProjection;
+
+import org.gvsig.fmap.geom.DirectPosition;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.handler.AbstractHandler;
+import org.gvsig.fmap.geom.handler.FinalHandler;
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.primitive.FShape;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.PointIterator;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * Punto 2D.
+ * 
+ * @author Vicente Caballero Navarro
+ */
+public class Point2D extends AbstractPrimitive implements Point, DirectPosition {
+
+    protected static final String COORDINATES_FIELD = "coordinates";
+
+    private static final long serialVersionUID = 1836257305083881299L;
+    protected double[] coordinates;
+
+    /**
+     * The constructor with the GeometryType like and argument
+     * is used by the {@link GeometryType}{@link #create()} to create the
+     * geometry
+     * 
+     * @param type
+     *            The geometry type
+     */
+    public Point2D(GeometryType geometryType) {
+        this(geometryType, null, null, 0.0, 0.0);
+    }
+
+    /**
+     * Constructor used in the {@link Geometry#cloneGeometry()} method
+     */
+    Point2D(GeometryType geometryType, String id, IProjection projection,
+        double x, double y) {
+        super(geometryType, id, projection);
+        coordinates = new double[getDimension()];
+        coordinates[0] = x;
+        coordinates[1] = y;
+    }
+
+    public Point2D(double x, double y) {
+        super(TYPES.POINT, SUBTYPES.GEOM2D);
+        coordinates = new double[getDimension()];
+        coordinates[0] = x;
+        coordinates[1] = y;
+    }
+
+    public Point2D(int type, int subtype) {
+        super(type, subtype);
+        coordinates = new double[getDimension()];
+    }
+
+    public Point2D(java.awt.geom.Point2D point) {
+        super(TYPES.POINT, SUBTYPES.GEOM2D);
+        coordinates = new double[getDimension()];
+        coordinates[0] = point.getX();
+        coordinates[1] = point.getY();
+    }
+
+    /**
+     * Aplica la transformaci�nn de la matriz de transformaci�n que se pasa como
+     * par�metro.
+     * 
+     * @param at
+     *            Matriz de transformaci�n.
+     */
+    public void transform(AffineTransform at) {
+        at.transform(coordinates, 0, coordinates, 0, 1);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.awt.Shape#contains(double, double)
+     */
+    public boolean contains(double x, double y) {
+        if ((x == coordinates[0]) || (y == coordinates[1])) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.awt.Shape#contains(double, double, double, double)
+     */
+    public boolean contains(double x, double y, double w, double h) {
+        return false;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.awt.Shape#intersects(double, double, double, double)
+     */
+    public boolean intersects(double x, double y, double w, double h) {
+        Rectangle2D.Double rAux = new Rectangle2D.Double(x, y, w, h);
+
+        return rAux.contains(coordinates[0], coordinates[1]);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.awt.Shape#getBounds()
+     */
+    public Rectangle getBounds() {
+        return new Rectangle((int) coordinates[0], (int) coordinates[1], 0, 0);
+    }
+
+    /**
+     * Devuelve la coordenada x del punto.
+     * 
+     * @return Coordenada x.
+     */
+    public double getX() {
+        return coordinates[0];
+    }
+
+    /**
+     * Devuelve la coordenada y del punto.
+     * 
+     * @return Coordenada y.
+     */
+    public double getY() {
+        return coordinates[1];
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.awt.Shape#contains(java.awt.geom.Point2D)
+     */
+    public boolean contains(java.awt.geom.Point2D p) {
+        return false;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.awt.Shape#getBounds2D()
+     */
+    public Rectangle2D getBounds2D() {
+        return new Rectangle2D.Double(coordinates[0] - 0.01,
+            coordinates[1] - 0.01, 0.02, 0.02);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.awt.Shape#contains(java.awt.geom.Rectangle2D)
+     */
+    public boolean contains(Rectangle2D r) {
+        return false;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.awt.Shape#intersects(java.awt.geom.Rectangle2D)
+     */
+    public boolean intersects(Rectangle2D r) {
+        return r.contains(coordinates[0], coordinates[1]);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.awt.Shape#getPathIterator(java.awt.geom.AffineTransform)
+     */
+    public PathIterator getPathIterator(AffineTransform at) {
+        return new PointIterator(getPoint2D(), at);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.awt.Shape#getPathIterator(java.awt.geom.AffineTransform,
+     * double)
+     */
+    public PathIterator getPathIterator(AffineTransform at, double flatness) {
+        return new PointIterator(getPoint2D(), at);
+    }
+
+    private java.awt.geom.Point2D getPoint2D() {
+        return new java.awt.geom.Point2D.Double(coordinates[0], coordinates[1]);
+    }
+
+    /**
+     * @see org.gvsig.fmap.geom.primitive.FShape#getShapeType()
+     */
+    public int getShapeType() {
+        return TYPES.POINT;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see com.iver.cit.gvsig.fmap.core.FShape#cloneFShape()
+     */
+    public FShape cloneFShape() {
+        return new Point2D(getGeometryType(), id, projection, coordinates[0],
+            coordinates[1]);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * com.iver.cit.gvsig.fmap.core.FShape#reProject(org.cresques.cts.ICoordTrans
+     * )
+     */
+    public void reProject(ICoordTrans ct) {
+        java.awt.geom.Point2D p = getPoint2D();
+        p = ct.convert(p, p);
+        coordinates[0] = p.getX();
+        coordinates[1] = p.getY();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see com.iver.cit.gvsig.fmap.core.FShape#getStretchingHandlers()
+     */
+    public Handler[] getStretchingHandlers() {
+        ArrayList handlers = new ArrayList();
+        handlers.add(new PointHandler(0, coordinates[0], coordinates[1]));
+        return (Handler[]) handlers.toArray(new Handler[0]);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see com.iver.cit.gvsig.fmap.core.FShape#getSelectHandlers()
+     */
+    public Handler[] getSelectHandlers() {
+        ArrayList handlers = new ArrayList();
+        handlers.add(new PointHandler(0, coordinates[0], coordinates[1]));
+        return (Handler[]) handlers.toArray(new Handler[0]);
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @author Vicente Caballero Navarro
+     */
+    class PointHandler extends AbstractHandler implements FinalHandler {
+
+        /**
+         * Crea un nuevo PointHandler.
+         * 
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         */
+        public PointHandler(int i, double x, double y) {
+            point = new java.awt.geom.Point2D.Double(x, y);
+            index = i;
+        }
+
+        /**
+         * DOCUMENT ME!
+         * 
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         * 
+         * @return DOCUMENT ME!
+         */
+        public void move(double x, double y) {
+            coordinates[0] = coordinates[0] + x;
+            coordinates[1] = coordinates[1] + y;
+        }
+
+        /**
+         * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+         */
+        public void set(double x, double y) {
+            coordinates[0] = x;
+            coordinates[1] = y;
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.gvsig.geometries.iso.GM_Object#coordinateDimension()
+     */
+    public int getDimension() {
+        return 2;
+    }
+
+    public Envelope getEnvelope() {
+        return new Envelope2D(coordinates[0] - 0.01, coordinates[1] - 0.01,
+            coordinates[0] + 0.02, coordinates[1] + 0.02);
+    }
+
+    public GeneralPathX getGeneralPath() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public DirectPosition getDirectPosition() {
+        return this;
+    }
+
+    public double getOrdinate(int dim) {
+        if (dim == 0) {
+            return getX();
+        } else
+            if (dim == 1) {
+                return getY();
+            } else {
+                return 0;
+            }
+    }
+
+    public boolean equals(Object other) {
+        if (!super.equals(other)) {
+            return false;
+        }
+        Point2D pother = (Point2D) other;
+        if (Math.abs(this.getX() - pother.getX()) > 0.0000001) {
+            return false;
+        }
+        if (Math.abs(this.getY() - pother.getY()) > 0.0000001) {
+            return false;
+        }
+        return true;
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.gvsig.fmap.geom.primitive.Point#getCoordinates()
+     */
+    public double[] getCoordinates() {
+        return coordinates;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.gvsig.fmap.geom.primitive.Point#getDoordinateAt(int)
+     */
+    public double getCoordinateAt(int dimension) {
+        return coordinates[dimension];
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.gvsig.fmap.geom.primitive.Point#setCoordinateAt(int, double)
+     */
+    public void setCoordinateAt(int dimension, double value) {
+        coordinates[dimension] = value;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.gvsig.fmap.geom.primitive.Point#setCoordinates(double[])
+     */
+    public void setCoordinates(double[] values) {
+        coordinates = values;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.gvsig.fmap.geom.primitive.Point#setX(double)
+     */
+    public void setX(double x) {
+        coordinates[0] = x;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.gvsig.fmap.geom.primitive.Point#setY(double)
+     */
+    public void setY(double y) {
+        coordinates[1] = y;
+    }
+
+    public String toString() {
+        StringBuffer buffer = new StringBuffer();
+        buffer.append("Point2D(");
+        toStringCoordinates(buffer);
+        buffer.append(")");
+        return buffer.toString();
+    }
+
+    protected void toStringCoordinates(StringBuffer buffer) {
+        buffer.append(coordinates[0]);
+        for (int i = 1; i < coordinates.length; i++) {
+            buffer.append(",").append(coordinates[i]);
+        }
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Point2D.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Spline2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Spline2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Spline2D.java	(revision 38288)
@@ -0,0 +1,302 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Point2D;
+import java.util.ArrayList;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.handler.AbstractHandler;
+import org.gvsig.fmap.geom.handler.FinalHandler;
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.geom.primitive.FShape;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.Spline;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+
+/**
+ * Spline2D.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class Spline2D extends Curve2D implements Spline {
+	private static final long serialVersionUID = -8109393343595560984L;
+	private ArrayList points;
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public Spline2D(GeometryType geometryType) {
+		super(geometryType);
+		points = new ArrayList();
+		gp = new GeneralPathX();
+	}	
+	
+	Spline2D(GeometryType geometryType, String id, IProjection projection, Point2D[] ps) {
+		super(geometryType, id, projection, getGeneralPathX(ps));
+		for (int i=0 ; i<ps.length ; i++){
+			points.add(ps[i]);
+		}
+	}
+
+	private static GeneralPathX getGeneralPathX(Point2D[] ps) {
+		GeneralPathX gpx=new GeneralPathX();
+		int num=ps.length;
+		double[] px=new double[num];
+		double[] py=new double[num];
+		for (int i=0;i<num;i++) {
+			Point2D p=ps[i];
+			px[i]=p.getX();
+			py[i]=p.getY();
+
+		}
+		Spline splineX = new Spline(px);
+		Spline splineY = new Spline(py);
+		gpx.moveTo(px[0],py[0]);
+		for (int i = 0; i < px.length - 1; i++) {
+			for (int t = 1; t < 31; t++) {
+				double x1 = splineX.fn(i, ((double) t) / 30.0);
+				double y1 = splineY.fn(i, ((double) t) / 30.0);
+				gpx.lineTo(x1,y1);
+			}
+		}
+		if (ps[0].getX()==ps[ps.length-1].getX() && ps[0].getY()==ps[ps.length-1].getY())
+			gpx.closePath();
+		return gpx;
+	}
+
+	private static GeneralPathX getGeneralPathX(ArrayList ps) {
+		Point2D[] _ps  = new Point2D[ps.size()];
+		for (int i=0 ; i<ps.size() ; i++){
+			_ps[i] = (Point2D)ps.get(i);
+		}
+		return getGeneralPathX(_ps);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.impl.Curve2D#getShapeType()
+	 */
+	 public int getShapeType() {
+		 return TYPES.CURVE;
+	 }
+
+	 /* (non-Javadoc)
+	  * @see com.iver.cit.gvsig.fmap.core.FShape#cloneFShape()
+	  */
+	 public FShape cloneFShape() {
+		 Spline2D curve = new Spline2D(getGeometryType());
+		 for (int i=0;i<points.size();i++){
+			 curve.addVertex(new org.gvsig.fmap.geom.primitive.impl.Point2D((Point2D)points.get(i)));
+		 }
+		 return (FShape)curve;
+	 }
+
+	 /* (non-Javadoc)
+	  * @see com.iver.cit.gvsig.fmap.core.FShape#getStretchingHandlers()
+	  */
+	 public Handler[] getStretchingHandlers() {
+		 ArrayList handlers = new ArrayList();
+		 for (int i=0;i<points.size();i++) {
+			 handlers.add(new PointHandler(i, ((Point)points.get(i)).getX(), ((Point)points.get(i)).getY()));
+		 }
+		 return (Handler[]) handlers.toArray(new Handler[0]);
+	 }
+
+	 /* (non-Javadoc)
+	  * @see com.iver.cit.gvsig.fmap.core.FShape#getSelectHandlers()
+	  */
+	 public Handler[] getSelectHandlers() {
+		 ArrayList handlers = new ArrayList();
+		 for (int i=0;i<points.size();i++) {
+			 Point2D p=((Point2D)points.get(i));
+			 handlers.add(new PointSelHandler(i, p.getX(), p.getY()));
+		 }
+		 return (Handler[]) handlers.toArray(new Handler[0]);
+	 }
+
+	 /**
+	  * DOCUMENT ME!
+	  *
+	  * @author Vicente Caballero Navarro
+	  */
+	 class PointHandler extends AbstractHandler implements FinalHandler{
+		 /**
+		  * Crea un nuevo PointHandler.
+		  *
+		  * @param x DOCUMENT ME!
+		  * @param y DOCUMENT ME!
+		  */
+		 public PointHandler(int i,double x, double y) {
+			 point = new Point2D.Double(x,y);
+			 index=i;
+		 }
+
+		 /**
+		  * DOCUMENT ME!
+		  *
+		  * @param x DOCUMENT ME!
+		  * @param y DOCUMENT ME!
+		  *
+		  * @return DOCUMENT ME!
+		  */
+		 public void move(double x, double y) {
+			 point.setLocation(point.getX()+x,point.getY()+y);
+			 //TODO falta actualizar el GeneralPathX
+		 }
+
+		 /**
+		  * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+		  */
+		 public void set(double x, double y) {
+			 point.setLocation(x,y);
+			 //TODO falta actualizar el GeneralPathX
+		 }
+	 }
+	 /**
+	  * DOCUMENT ME!
+	  *
+	  * @author Vicente Caballero Navarro
+	  */
+	 class PointSelHandler extends AbstractHandler implements FinalHandler{
+		 /**
+		  * Crea un nuevo PointHandler.
+		  *
+		  * @param x DOCUMENT ME!
+		  * @param y DOCUMENT ME!
+		  */
+		 public PointSelHandler(int i,double x, double y) {
+			 point = new Point2D.Double(x,y);
+			 index=i;
+		 }
+
+		 /**
+		  * DOCUMENT ME!
+		  *
+		  * @param x DOCUMENT ME!
+		  * @param y DOCUMENT ME!
+		  *
+		  * @return DOCUMENT ME!
+		  */
+		 public void move(double x, double y) {
+			 point.setLocation(point.getX()+x,point.getY()+y);
+			 ((Point)points.get(index)).setX(point.getX());
+			 ((Point)points.get(index)).setY(point.getY());
+			 gp = getGeneralPathX(points);
+		 }
+
+		 /**
+		  * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+		  */
+		 public void set(double x, double y) {
+			 point.setLocation(x,y);
+			 ((Point)points.get(index)).setX(point.getX());
+			 ((Point)points.get(index)).setY(point.getY());
+			 gp=getGeneralPathX(points);
+		 }
+	 }
+	 static class Spline {
+		 private double y[];
+		 private double y2[];
+
+		 /**
+		  * The constructor calculates the second derivatives of the interpolating function
+		  * at the tabulated points xi, with xi = (i, y[i]).
+		  * Based on numerical recipes in C, http://www.library.cornell.edu/nr/bookcpdf/c3-3.pdf .
+		  * @param y Array of y coordinates for cubic-spline interpolation.
+		  */
+		 public Spline(double y[]) {
+			 this.y = y;
+			 int n = y.length;
+			 y2 = new double[n];
+			 double u[] = new double[n];
+			 for (int i = 1; i < n - 1; i++) {
+				 y2[i] = -1.0 / (4.0 + y2[i - 1]);
+				 u[i] = (6.0 * (y[i + 1] - 2.0 * y[i] + y[i - 1]) - u[i - 1]) / (4.0 + y2[i - 1]);
+			 }
+			 for (int i = n - 2; i >= 0; i--) {
+				 y2[i] = y2[i] * y2[i + 1] + u[i];
+			 }
+		 }
+
+		 /**
+		  * Returns a cubic-spline interpolated value y for the point between
+		  * point (n, y[n]) and (n+1, y[n+1), with t ranging from 0 for (n, y[n])
+		  * to 1 for (n+1, y[n+1]).
+		  * @param n The start point.
+		  * @param t The distance to the next point (0..1).
+		  * @return A cubic-spline interpolated value.
+		  */
+		 public double fn(int n, double t) {
+			 return t * y[n + 1] - ((t - 1.0) * t * ((t - 2.0) * y2[n] - (t + 1.0) * y2[n + 1])) / 6.0 + y[n] - t * y[n];
+		 }
+
+	 }
+
+	 /*
+	  * (non-Javadoc)
+	  * @see org.gvsig.fmap.geom.primitive.impl.OrientablePrimitive2D#transform(java.awt.geom.AffineTransform)
+	  */
+	 public void transform(AffineTransform at) {
+		 for (int i=0;i<points.size();i++) {
+			 Point2D p= (Point2D)points.get(i);
+			 at.transform(p, p);
+		 }
+		 gp.transform(at);
+	 }
+
+	 /* (non-Javadoc)
+	  * @see org.gvsig.fmap.geom.primitive.Curve2D#addPoint(org.gvsig.fmap.geom.primitive.Point)
+	  */
+	 public void addVertex(Point point) {
+		 points.add(new java.awt.geom.Point2D.Double(point.getX(), point.getY()));
+		 gp = getGeneralPathX(points);
+	 }
+
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Spline2D.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/EllipticArc2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/EllipticArc2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/EllipticArc2D.java	(revision 38288)
@@ -0,0 +1,610 @@
+/*
+ * Created on 09-feb-2005
+ *
+ * gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+   USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Arc2D;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.util.ArrayList;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.handler.AbstractHandler;
+import org.gvsig.fmap.geom.handler.CuadrantHandler;
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.geom.primitive.EllipticArc;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.SurfaceAppearance;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.geom.util.UtilFunctions;
+
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class EllipticArc2D extends Curve2D implements EllipticArc {
+    private static final long serialVersionUID = 2988037614443119814L;
+
+    private Point2D axis1Start;
+    private Point2D axis1End;
+    private double semiAxis2Length;
+    private double angSt;
+    private double angExt;
+
+    /**
+     * The constructor with the GeometryType like and argument 
+     * is used by the {@link GeometryType}{@link #create()}
+     * to create the geometry
+     * @param type
+     * The geometry type
+     */
+    public EllipticArc2D(GeometryType geometryType) {
+        super(geometryType);		
+    }
+
+    /**
+     * Constructor used in the {@link Geometry#cloneGeometry()} method
+     * @param id
+     * @param projection
+     * @param gpx
+     * @param axis1Start
+     * @param axis1End
+     * @param semiAxis2Length
+     * @param angSt
+     * @param angExt
+     */
+    EllipticArc2D(GeometryType geometryType, String id, IProjection projection, GeneralPathX gpx, Point2D axis1Start,Point2D axis1End, double semiAxis2Length, double angSt, double angExt) {
+        super(geometryType, id, projection, gpx);
+        this.axis1Start = axis1Start;
+        this.axis1End = axis1End;
+        this.semiAxis2Length = semiAxis2Length;
+        this.angSt = angSt;
+        this.angExt = angExt;
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.EllipticArc#getAxis1Start()
+     */
+    public Point getAxis1Start(){
+        try {
+            return new org.gvsig.fmap.geom.primitive.impl.Point2D(axis1Start);
+        } catch (Exception e){
+            return null;
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.EllipticArc#getAxis1End()
+     */
+    public Point getAxis1End(){
+        try {
+            return new org.gvsig.fmap.geom.primitive.impl.Point2D(axis1End);
+        } catch (Exception e){
+            return null;
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.EllipticArc#getAxis2Dist()
+     */
+    public double getAxis2Dist(){
+        return this.semiAxis2Length;
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.EllipticArc#getAngSt()
+     */
+    public double getAngSt(){
+        return this.angSt;
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.EllipticArc#getAngExt()
+     */
+    public double getAngExt(){
+        return this.angExt;
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.impl.OrientablePrimitive2D#transform(java.awt.geom.AffineTransform)
+     */
+    public void transform(AffineTransform at) {
+        Point2D center = new Point2D.Double((axis1Start.getX() + axis1End.getX()) / 2,
+            (axis1Start.getY() + axis1End.getY()) / 2);
+        Point2D pdist = UtilFunctions.getPerpendicularPoint(axis1Start, axis1End, center,
+            semiAxis2Length);
+        Point2D aux1 = new Point2D.Double();
+        at.transform(axis1Start, aux1);
+        axis1Start = aux1;
+        Point2D aux2 = new Point2D.Double();
+        at.transform(axis1End, aux2);
+        axis1End = aux2;
+
+        center = new Point2D.Double((axis1Start.getX() + axis1End.getX()) / 2, (axis1Start
+            .getY() + axis1End.getY()) / 2);
+
+        Point2D aux3 = new Point2D.Double();
+        at.transform(pdist, aux3);
+        semiAxis2Length = center.distance(aux3);
+        gp.transform(at);
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.impl.Curve2D#getShapeType()
+     */
+    public int getShapeType() {
+        return TYPES.ELLIPTICARC;
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.impl.OrientablePrimitive2D#getStretchingHandlers()
+     */
+    public Handler[] getStretchingHandlers() {
+        ArrayList handlers = new ArrayList();
+        Rectangle2D rect = this.getBounds2D();
+        handlers.add(new CenterHandler(0, rect.getCenterX(), rect.getCenterY()));
+        return (Handler[]) handlers.toArray(new Handler[0]);
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.impl.OrientablePrimitive2D#getSelectHandlers()
+     */
+    public Handler[] getSelectHandlers() {
+        //TODO: Faltaria tener en cuenta handlers para los angulos angSt y angExt
+        ArrayList handlers = new ArrayList();
+        Rectangle2D rect = this.getBounds2D();
+        handlers.add(new CenterSelHandler(0, rect.getCenterX(), rect.getCenterY()));
+        handlers.add(new Axis1StSelHandler(1, axis1Start.getX(), axis1Start.getY()));
+        handlers.add(new Axis1EndSelHandler(2, axis1End.getX(), axis1End.getY()));
+        Point2D mediop = new Point2D.Double((axis1End.getX() + axis1Start.getX()) / 2,
+            (axis1End.getY() + axis1Start.getY()) / 2);
+        Point2D[] p = UtilFunctions.getPerpendicular(axis1Start, axis1End, mediop);
+        Point2D u = UtilFunctions.getPoint(mediop, p[1], semiAxis2Length);
+        Point2D d = UtilFunctions.getPoint(mediop, p[1], -semiAxis2Length);
+
+        handlers.add(new RadioSelYHandler(3, u.getX(), u.getY()));
+        handlers.add(new RadioSelYHandler(4, d.getX(), d.getY()));
+
+        return (Handler[]) handlers.toArray(new Handler[0]);
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @author Vicente Caballero Navarro
+     */
+    class CenterHandler extends AbstractHandler implements Handler {
+        /**
+         * Crea un nuevo PointHandler.
+         *
+         * @param i
+         *            DOCUMENT ME!
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         */
+        public CenterHandler(int i, double x, double y) {
+            point = new Point2D.Double(x, y);
+            index = i;
+        }
+
+        /**
+         * DOCUMENT ME!
+         *
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         *
+         * @return DOCUMENT ME!
+         */
+        public void move(double x, double y) {
+            Point point;
+            for (int i = 0; i < gp.getNumCoords(); i++) {
+                point = gp.getPointAt(i);
+                point.setX(point.getX() + x);
+                point.setY(point.getY() + y);
+            }
+            axis1Start = new Point2D.Double(axis1Start.getX() + x, axis1Start.getY() + y);
+            axis1End = new Point2D.Double(axis1End.getX() + x, axis1End.getY() + y);
+        }
+
+        /**
+         * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+         */
+        public void set(double x, double y) {
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @author Vicente Caballero Navarro
+     */
+    class CenterSelHandler extends AbstractHandler implements Handler {
+        /**
+         * Crea un nuevo PointHandler.
+         *
+         * @param i
+         *            DOCUMENT ME!
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         */
+        public CenterSelHandler(int i, double x, double y) {
+            point = new Point2D.Double(x, y);
+            index = i;
+        }
+
+        /**
+         * DOCUMENT ME!
+         *
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         *
+         * @return DOCUMENT ME!
+         */
+        public void move(double x, double y) {
+            Point point;
+            for (int i = 0; i < gp.getNumCoords(); i++) {
+                point = gp.getPointAt(i);
+                point.setX(point.getX() + x);
+                point.setY(point.getY() + y);
+            }
+        }
+
+        /**
+         * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+         */
+        public void set(double x, double y) {
+            Point2D center = new Point2D.Double((axis1Start.getX() + axis1End.getX()) / 2,
+                (axis1Start.getY() + axis1End.getY()) / 2);
+            double dx = x - center.getX();
+            double dy = y - center.getY();
+            Point point;
+            for (int i = 0; i < gp.getNumCoords(); i++) {
+                point = gp.getPointAt(i);
+                point.setX(point.getX() + dx);
+                point.setY(point.getY() + dy);
+            }
+            axis1Start = new Point2D.Double(axis1Start.getX() + dx, axis1Start.getY() + dy);
+            axis1End = new Point2D.Double(axis1End.getX() + dx, axis1End.getY() + dy);
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @author Vicente Caballero Navarro
+     */
+    class Axis1StSelHandler extends AbstractHandler implements CuadrantHandler {
+        /**
+         * Crea un nuevo PointHandler.
+         *
+         * @param i
+         *            DOCUMENT ME!
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         */
+        public Axis1StSelHandler(int i, double x, double y) {
+            point = new Point2D.Double(x, y);
+            index = i;
+        }
+
+        /**
+         * DOCUMENT ME!
+         *
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         *
+         * @return DOCUMENT ME!
+         */
+        public void move(double x, double y) {
+
+        }
+
+        /**
+         * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+         */
+        public void set(double x, double y) {
+            // TODO comentado para quitar warning: double dx=x-init.getX();
+            // TODO comentado para quitar warning: double dy=y-init.getY();
+            Point2D center = new Point2D.Double((axis1Start.getX() + axis1End.getX()) / 2,
+                (axis1Start.getY() + axis1End.getY()) / 2);
+            // Point2D[]
+            // p1=TrigonometricalFunctions.getPerpendicular(init,end,center);
+            // Point2D[]
+            // p2=TrigonometricalFunctions.getPerpendicular(p1[0],p1[1],new
+            // Point2D.Double(x,y));
+
+            // Point2D
+            // pl=TrigonometricalFunctions.getIntersection(p2[0],p2[1],p1[0],p1[1]);
+            // double xdist=2*pl.distance(x,y);
+            double xdist = 2 * center.distance(x, y);
+            // init=new Point2D.Double(init.getX()+dx,init.getY()+dy);
+            axis1Start = UtilFunctions.getPoint(center, axis1Start, center.distance(x, y));
+            axis1End = UtilFunctions.getPoint(axis1Start, center, xdist);
+            Arc2D.Double arc = new Arc2D.Double(axis1Start.getX(), axis1Start.getY()
+                - semiAxis2Length, xdist, 2 * semiAxis2Length, Math.toDegrees(angSt), Math.toDegrees(angExt), Arc2D.OPEN);
+            // TODO comentado para quitar warning: Point2D rotationPoint = new
+            // Point2D.Double(init.getX() + xdist /2, init.getY());
+
+            double angle = UtilFunctions.getAngle(axis1Start, axis1End);
+            AffineTransform mT = AffineTransform.getRotateInstance(angle, axis1Start
+                .getX(), axis1Start.getY());
+            gp = new GeneralPathX(arc.getPathIterator(null));
+            gp.transform(mT);
+
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @author Vicente Caballero Navarro
+     */
+    class Axis1EndSelHandler extends AbstractHandler implements CuadrantHandler {
+        /**
+         * Crea un nuevo PointHandler.
+         *
+         * @param i
+         *            DOCUMENT ME!
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         */
+        public Axis1EndSelHandler(int i, double x, double y) {
+            point = new Point2D.Double(x, y);
+            index = i;
+        }
+
+        /**
+         * DOCUMENT ME!
+         *
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         *
+         * @return DOCUMENT ME!
+         */
+        public void move(double x, double y) {
+
+        }
+
+        /**
+         * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+         */
+        public void set(double x, double y) {
+            // double dx=x-getPoint().getX();
+            // double dy=y-getPoint().getY();
+            Point2D center = new Point2D.Double((axis1Start.getX() + axis1End.getX()) / 2,
+                (axis1Start.getY() + axis1End.getY()) / 2);
+            // Point2D[]
+            // p1=TrigonometricalFunctions.getPerpendicular(init,end,center);
+            // Point2D[]
+            // p2=TrigonometricalFunctions.getPerpendicular(p1[0],p1[1],new
+            // Point2D.Double(x,y));
+
+            // Point2D
+            // pl=TrigonometricalFunctions.getIntersection(p2[0],p2[1],p1[0],p1[1]);
+            // double xdist=2*pl.distance(x,y);
+            double xdist = 2 * center.distance(x, y);
+            axis1End = UtilFunctions.getPoint(center, axis1End, center.distance(x, y));
+            // end=new Point2D.Double(end.getX()+dx,end.getY()+dy);
+            axis1Start = UtilFunctions.getPoint(axis1End, center, xdist);
+            Arc2D.Double arc = new Arc2D.Double(axis1Start.getX(), axis1Start.getY()
+                - semiAxis2Length, xdist, 2 * semiAxis2Length, Math.toDegrees(angSt), Math.toDegrees(angExt), Arc2D.OPEN);
+            // Point2D rotationPoint = new Point2D.Double(init.getX() + xdist
+            // /2, init.getY());
+
+            double angle = UtilFunctions.getAngle(axis1Start, axis1End);
+            AffineTransform mT = AffineTransform.getRotateInstance(angle, axis1Start
+                .getX(), axis1Start.getY());
+            gp = new GeneralPathX(arc.getPathIterator(null));
+            gp.transform(mT);
+
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @author Vicente Caballero Navarro
+     */
+    class RadioSelYHandler extends AbstractHandler implements CuadrantHandler {
+        /**
+         * Crea un nuevo PointHandler.
+         *
+         * @param i
+         *            DOCUMENT ME!
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         */
+        public RadioSelYHandler(int i, double x, double y) {
+            point = new Point2D.Double(x, y);
+            index = i;
+        }
+
+        /**
+         * DOCUMENT ME!
+         *
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         *
+         * @return DOCUMENT ME!
+         */
+        public void move(double x, double y) {
+
+        }
+
+        /**
+         * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+         */
+        public void set(double x, double y) {
+            semiAxis2Length = new Point2D.Double((axis1Start.getX() + axis1End.getX()) / 2, (axis1Start
+                .getY() + axis1End.getY()) / 2).distance(x, y);
+            // ydist=getSelectHandlers()[1].getPoint().distance(x,y);
+            // Point2D center=new Point2D.Double((init.getX() + end.getX()) / 2,
+            // (init.getY() + end.getY()) / 2);
+            // Point2D[]
+            // p=TrigonometricalFunctions.getPerpendicular(init,end,new
+            // Point2D.Double(x,y));
+            // Point2D
+            // pl=TrigonometricalFunctions.getIntersection(p[0],p[1],init,end);
+            // double xdist=2*pl.distance(x,y);
+            double xdist = axis1Start.distance(axis1End);
+            Arc2D.Double arc = new Arc2D.Double(axis1Start.getX(), axis1Start.getY()
+                - semiAxis2Length, xdist, 2 * semiAxis2Length, Math.toDegrees(angSt), Math.toDegrees(angExt), Arc2D.OPEN);
+            // Point2D rotationPoint = new Point2D.Double(init.getX() + xdist
+            // /2, init.getY());
+
+            double angle = UtilFunctions.getAngle(axis1Start, axis1End);
+            AffineTransform mT = AffineTransform.getRotateInstance(angle, axis1Start
+                .getX(), axis1Start.getY());
+            gp = new GeneralPathX(arc.getPathIterator(null));
+            gp.transform(mT);
+        }
+    }
+
+    //TODO: Faltan Handlers para los angulos inicial y de extension (o final)
+
+
+
+    /* (non-Javadoc)
+     * @see com.iver.cit.gvsig.fmap.core.FPolyline2D#intersects(java.awt.geom.Rectangle2D)
+     */
+    public boolean intersects(Rectangle2D r) {
+        return gp.intersects(r);
+    }
+
+    /* (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.EllipticArc#setPoints(org.gvsig.fmap.geom.primitive.Point, java.awt.geom.Point2D, double, double, double)
+     */
+    public void setPoints(Point axis1Start, Point axis1End,
+        double semiAxis2Length, double angSt, double angExt) {
+        Point2D _axis1Start = new java.awt.geom.Point2D.Double(axis1Start.getCoordinateAt(0), axis1Start.getCoordinateAt(1));
+        Point2D _axis1End = new java.awt.geom.Point2D.Double(axis1End.getCoordinateAt(0), axis1End.getCoordinateAt(1));
+        setPoints(_axis1Start, _axis1End, semiAxis2Length, angSt, angExt);
+    }
+
+    /* (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.EllipticArc#setPoints(java.awt.geom.Point2D, java.awt.geom.Point2D, double, double, double)
+     */
+    private void setPoints(Point2D axis1Start, Point2D axis1End,
+        double semiAxis2Length, double angSt, double angExt) {
+        double axis1Lenght = axis1Start.distance(axis1End);
+        Point2D center = new Point2D.Double((axis1Start.getX()+axis1End.getX())/2, (axis1Start.getY()+axis1End.getY())/2);
+        double x = center.getX()-axis1Lenght/2;
+        double y = center.getY()-semiAxis2Length;
+
+        double angle = UtilFunctions.getAngle(center, axis1Start);
+
+        Arc2D.Double arc = new Arc2D.Double(
+            x,
+            y,
+            axis1Lenght,
+            2 * semiAxis2Length,
+            Math.toDegrees(angSt),
+            Math.toDegrees(angExt),
+            Arc2D.OPEN);
+        AffineTransform mT = AffineTransform.getRotateInstance(angle,
+            center.getX(), center.getY());
+        GeneralPathX gp = new GeneralPathX(arc.getPathIterator(null));
+        gp.transform(mT);
+
+        this.gp = gp;
+        this.axis1Start = axis1Start;
+        this.axis1End = axis1End;
+        this.semiAxis2Length = semiAxis2Length;
+        this.angSt = angSt;
+        this.angExt = angExt;		
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.Curve2D#setGeneralPath(org.gvsig.fmap.geom.primitive.GeneralPathX)
+     */
+    public void setGeneralPath(GeneralPathX generalPathX) {
+        throw new UnsupportedOperationException("Use setPoints(Point center, Point radious)");
+    }
+
+    public SurfaceAppearance getSurfaceAppearance() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public void setSurfaceAppearance(SurfaceAppearance app) {
+        // TODO Auto-generated method stub
+
+    }
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/EllipticArc2D.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Circle2DZ.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Circle2DZ.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Circle2DZ.java	(revision 38288)
@@ -0,0 +1,61 @@
+/**
+ *
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.geom.Point2D;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.primitive.Circle;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * @author paco
+ *
+ */
+public class Circle2DZ extends Circle2D implements Circle {
+	private static final long serialVersionUID = 5806439460681368421L;
+	private double z;
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public Circle2DZ(GeometryType geometryType) {
+		super(geometryType);		
+	}
+	
+	/**
+	 * Constructor used in the {@link Geometry#cloneGeometry()} method
+	 * @param id
+	 * @param projection
+	 * @param gpx
+	 * @param c
+	 * @param r
+	 * @param z
+	 */
+	Circle2DZ(GeometryType geometryType, String id, IProjection projection, GeneralPathX gpx, Point2D c, double r, double z) {
+		super(geometryType, id, projection, gpx, c, r);
+		this.z = z;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Circle2D#setCoordinateAt(int, int, double)
+	 */
+	public void setCoordinateAt(int index, int dimension, double value) {
+		if (dimension == 2){
+			z = value;
+		}else{
+			super.setCoordinateAt(index, dimension, value);
+		}
+	}
+
+    public int getDimension() {
+        return 3;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Circle2DZ.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Geometry2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Geometry2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Geometry2D.java	(revision 38288)
@@ -0,0 +1,47 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.primitive.impl;
+
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class Geometry2D extends DefaultNullGeometry{
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -1819538043275127099L;
+
+	public Geometry2D(GeometryType geometryType) {
+		super(geometryType);
+		throw new InstantiationError("Can't instantiate generic geometry 2D.");
+	}
+
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Geometry2D.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/DefaultEnvelope.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/DefaultEnvelope.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/DefaultEnvelope.java	(revision 38288)
@@ -0,0 +1,380 @@
+
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * ${year} IVER T.I. S.A.   {{Task}}
+ */
+
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+/*
+ * AUTHORS (In addition to CIT):
+ * ${year} IVER T.I. S.A.   {{Task}}
+ */
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+/*
+ * AUTHORS (In addition to CIT):
+ * ${year} IVER T.I. S.A.   {{Task}}
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.text.MessageFormat;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.primitive.EnvelopeNotInitializedException;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DynStruct;
+import org.gvsig.tools.persistence.PersistenceManager;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+
+
+/**
+ * A minimum bounding box or rectangle. Regardless of dimension, an Envelope
+ * can be represented without ambiguity as two direct positions (coordinate
+ * points). To encode an Envelope, it is sufficient to encode these two
+ * points. This is consistent with all of the data types in this
+ * specification, their state is represented by their publicly accessible
+ * attributes.
+
+ * @author Vicente Caballero Navarro
+ */
+public abstract class DefaultEnvelope implements Envelope, org.gvsig.tools.lang.Cloneable{
+    private static final Logger LOG =
+        LoggerFactory.getLogger(DefaultEnvelope.class);
+
+    public static final String PERSISTENCE_DEFINITION_NAME = "Envelope";
+
+    protected static final String LOWERCORNER_FIELD = "lowerCorner";
+    protected static final String UPPERCORNER_FIELD = "upperCorner";
+
+    protected Point min;
+    protected Point max;
+
+    protected boolean isEmpty;
+
+    protected static GeometryManager manager = GeometryLocator.getGeometryManager();
+
+    public DefaultEnvelope(){
+        super();
+        isEmpty = true;
+    }
+
+    public DefaultEnvelope(Point min, Point max){
+        super();
+        this.min = min;
+        this.max = max;
+        isEmpty = false;
+    }
+
+    public String toString() {
+        return MessageFormat.format(
+            "Envelop(min={0},max={1})", 
+            new Object[] {
+                min.toString(),
+                max.toString()
+            }
+        );
+    }
+
+    /**
+     * Returns the center ordinate along the specified dimension.
+     *
+     * @param dimension DOCUMENT ME!
+     *
+     * @return DOCUMENT ME!
+     */
+    public double getCenter(int dimension) {
+        if (isEmpty){
+            throw new EnvelopeNotInitializedException();
+        }
+        return (min.getCoordinateAt(dimension) + max.getCoordinateAt(dimension)) * 0.5;
+    }
+
+    /**
+     * Returns the envelope length along the specified dimension.
+     *
+     * @param dimension
+     *
+     * @return
+     */
+    public double getLength(int dimension) {
+        if (isEmpty){
+            throw new EnvelopeNotInitializedException();
+        }
+        if (max.getCoordinateAt(dimension) > min.getCoordinateAt(dimension)) {
+            return max.getCoordinateAt(dimension) - min.getCoordinateAt(dimension);
+        }
+
+        return min.getCoordinateAt(dimension) - max.getCoordinateAt(dimension);
+    }
+
+    /**
+     * A coordinate position consisting of all the minimal ordinates for each
+     * dimension for all points within the Envelope.
+     *
+     * @return
+     */
+    public Point getLowerCorner() {
+        return min;
+    }
+
+    /**
+     * Returns the maximal ordinate along the specified dimension.
+     *
+     * @param dimension
+     *
+     * @return
+     */
+    public double getMaximum(int dimension) {
+        if (isEmpty){
+            throw new EnvelopeNotInitializedException();
+        }
+        return max.getCoordinateAt(dimension);
+    }
+
+    /**
+     * Returns the minimal ordinate along the specified dimension.
+     *
+     * @param dimension
+     *
+     * @return
+     */
+    public double getMinimum(int dimension) {
+        if (isEmpty){
+            throw new EnvelopeNotInitializedException();
+        }
+        return min.getCoordinateAt(dimension);
+    }
+
+    /**
+     * A coordinate position consisting of all the maximal ordinates for each
+     * dimension for all points within the Envelope.
+     *
+     * @return
+     */
+    public Point getUpperCorner() {
+        return max;
+    }
+
+    public void add(Envelope envelope) {
+        if (isEmpty){
+            setLowerCorner((Point)envelope.getLowerCorner().cloneGeometry());
+            setUpperCorner((Point)envelope.getUpperCorner().cloneGeometry());          
+        }else{
+            int maxDimension = Math.min(getDimension(), envelope.getDimension());
+            int i;
+            for (i=0;i<maxDimension;i++){
+                this.min.setCoordinateAt(i,
+                    Math.min(this.min.getCoordinateAt(i), envelope.getMinimum(i)));
+                this.max.setCoordinateAt(i,
+                    Math.max(this.max.getCoordinateAt(i), envelope.getMaximum(i)));
+            }
+        }
+    }
+
+    public Geometry getGeometry() {
+        if (isEmpty){
+            throw new EnvelopeNotInitializedException();
+        }
+        try {
+            Surface surface = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM2D);
+            surface.addMoveToVertex((Point)min.cloneGeometry());
+            surface.addVertex(manager.createPoint(getMaximum(0),getMinimum(1), SUBTYPES.GEOM2D));
+            surface.addVertex((Point)max.cloneGeometry());
+            surface.addVertex(manager.createPoint(getMinimum(0),getMaximum(1), SUBTYPES.GEOM2D));
+            surface.closePrimitive();
+            return surface;
+        } catch (CreateGeometryException e) {
+            LOG.error("Error creting the surface", e);
+        }	  
+        return null;
+    }
+
+    public boolean contains(Envelope envelope) {
+        if (isEmpty){
+            return false;
+        }
+        if((envelope == null) || (envelope.isEmpty())) {
+            return false;
+        }
+        for (int i = 0; i < getDimension(); i++) {
+            if (getMinimum(i) > envelope.getMinimum(i)
+                || getMaximum(i) < envelope.getMaximum(i)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    public boolean intersects(Envelope envelope) {
+        if (isEmpty){
+            return false;
+        }
+        if((envelope == null) || (envelope.isEmpty())) {
+            return false;
+        }
+        int dimension = getDimension();
+        for (int i = 0; i < dimension; i++) {
+            if (getMinimum(i)>envelope.getMaximum(i)){
+                return false;
+            } else if (getMaximum(i)<envelope.getMinimum(i)){
+                return false;
+            }
+        }
+        return true;
+    }
+
+    public boolean equals(Object other) {
+        if (!(other == null || other instanceof Envelope)) {
+            return false;
+        }
+        Envelope otherEnv = (Envelope) other;
+        if (isEmpty && otherEnv.isEmpty()){
+            return true;
+        }
+        if (otherEnv.getDimension() != this.getDimension()) {
+            return false;
+        }
+        for (int i = 0; i < this.getDimension(); i++) {
+            if (otherEnv.getMinimum(i) != this.getMinimum(i)) {
+                return false;
+            }
+            if (otherEnv.getMaximum(i) != this.getMaximum(i)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /* (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.Envelope#setLowerCorner(org.gvsig.fmap.geom.primitive.Point)
+     */
+    public void setLowerCorner(Point lowerCorner) {
+        this.min = lowerCorner;
+        if (max != null){
+            isEmpty = false;
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.Envelope#setUpperCorner(org.gvsig.fmap.geom.primitive.Point)
+     */
+    public void setUpperCorner(Point upperCorner) {
+        this.max = upperCorner;
+        if (min != null){
+            isEmpty = false;
+        }
+    }
+
+    public static void registerPersistent() {
+        PersistenceManager manager = ToolsLocator.getPersistenceManager();
+        if( manager.getDefinition(PERSISTENCE_DEFINITION_NAME)==null ) {
+            DynStruct definition = manager.addDefinition(
+                DefaultEnvelope.class,
+                PERSISTENCE_DEFINITION_NAME,
+                "DefaultEnvelope persistence definition",
+                null, 
+                null
+            ); 
+
+            definition.addDynFieldObject(LOWERCORNER_FIELD).setClassOfValue(Point.class).setMandatory(true);
+            definition.addDynFieldObject(UPPERCORNER_FIELD).setClassOfValue(Point.class).setMandatory(true);
+        }
+    }
+
+    public void loadFromState(PersistentState state)
+    throws PersistenceException {
+        setLowerCorner((Point)state.get(LOWERCORNER_FIELD));		
+        setUpperCorner((Point)state.get(UPPERCORNER_FIELD));		
+    }
+
+    public void saveToState(PersistentState state) throws PersistenceException {
+        state.set(LOWERCORNER_FIELD, min);	
+        state.set(UPPERCORNER_FIELD, max);		
+    }
+
+    public Object clone() throws CloneNotSupportedException {
+        DefaultEnvelope other = (DefaultEnvelope) super.clone();
+        if (!isEmpty){        
+            other.max = (Point) max.cloneGeometry();
+            other.min = (Point) min.cloneGeometry();
+        }
+        return other;
+    }
+
+    public boolean isEmpty() {       
+        return isEmpty;
+    }	
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Ellipse2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Ellipse2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Ellipse2D.java	(revision 38288)
@@ -0,0 +1,566 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Arc2D;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.util.ArrayList;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.handler.AbstractHandler;
+import org.gvsig.fmap.geom.handler.CuadrantHandler;
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.geom.primitive.Ellipse;
+import org.gvsig.fmap.geom.primitive.FShape;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.geom.util.UtilFunctions;
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class Ellipse2D extends Surface2D implements Ellipse {
+    private static final long serialVersionUID = 7624230115118134004L;
+
+    private Point2D init;
+    private Point2D end;
+    private double ydist;
+
+    /**
+     * The constructor with the GeometryType like and argument 
+     * is used by the {@link GeometryType}{@link #create()}
+     * to create the geometry
+     * @param type
+     * The geometry type
+     */
+    public Ellipse2D(GeometryType geometryType) {
+        super(geometryType);		
+    }
+
+    /**
+     * Constructor used in the {@link Geometry#cloneGeometry()} method
+     * @param id
+     * @param projection
+     * @param gpx
+     * @param i
+     * @param e
+     * @param d
+     */
+    Ellipse2D(GeometryType geometryType,String id, IProjection projection, GeneralPathX gpx,
+        Point2D i, Point2D e, double d) {
+        super(geometryType, id, projection, gpx);
+        init = i;
+        end = e;
+        ydist = d;
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.impl.Surface2D#cloneFShape()
+     */
+    public FShape cloneFShape() {
+        return new Ellipse2D(getGeometryType(), id, projection, (GeneralPathX) gp.clone(), init,
+            end, ydist);
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.impl.Surface2D#getShapeType()
+     */     
+    public int getShapeType() {
+        return TYPES.ELLIPSE;
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.impl.OrientablePrimitive2D#transform(java.awt.geom.AffineTransform)
+     */
+    public void transform(AffineTransform at) {
+        Point2D center = new Point2D.Double((init.getX() + end.getX()) / 2,
+            (init.getY() + end.getY()) / 2);
+        Point2D pdist = UtilFunctions.getPerpendicularPoint(init, end, center,
+            ydist);
+        Point2D aux1 = new Point2D.Double();
+        at.transform(init, aux1);
+        init = aux1;
+        Point2D aux2 = new Point2D.Double();
+        at.transform(end, aux2);
+        end = aux2;
+
+        center = new Point2D.Double((init.getX() + end.getX()) / 2, (init
+            .getY() + end.getY()) / 2);
+
+        Point2D aux3 = new Point2D.Double();
+        at.transform(pdist, aux3);
+        ydist = center.distance(aux3);
+        gp.transform(at);
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.impl.OrientablePrimitive2D#getStretchingHandlers()
+     */
+    public Handler[] getStretchingHandlers() {
+        ArrayList handlers = new ArrayList();
+        Rectangle2D rect = this.getBounds2D();
+        handlers
+        .add(new CenterHandler(0, rect.getCenterX(), rect.getCenterY()));
+        return (Handler[]) handlers.toArray(new Handler[0]);
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.impl.OrientablePrimitive2D#getSelectHandlers()
+     */
+    public Handler[] getSelectHandlers() {
+        ArrayList handlers = new ArrayList();
+        Rectangle2D rect = this.getBounds2D();
+        handlers.add(new CenterSelHandler(0, rect.getCenterX(), rect
+            .getCenterY()));
+        handlers.add(new InitSelHandler(1, init.getX(), init.getY()));
+        handlers.add(new EndSelHandler(2, end.getX(), end.getY()));
+        Point2D mediop = new Point2D.Double((end.getX() + init.getX()) / 2,
+            (end.getY() + init.getY()) / 2);
+        Point2D[] p = UtilFunctions.getPerpendicular(init, end, mediop);
+        Point2D u = UtilFunctions.getPoint(mediop, p[1], ydist);
+        Point2D d = UtilFunctions.getPoint(mediop, p[1], -ydist);
+
+        handlers.add(new RadioSelYHandler(3, u.getX(), u.getY()));
+        handlers.add(new RadioSelYHandler(4, d.getX(), d.getY()));
+
+        return (Handler[]) handlers.toArray(new Handler[0]);
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @author Vicente Caballero Navarro
+     */
+    class CenterHandler extends AbstractHandler implements Handler {
+        /**
+         * Crea un nuevo PointHandler.
+         *
+         * @param i
+         *            DOCUMENT ME!
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         */
+        public CenterHandler(int i, double x, double y) {
+            point = new Point2D.Double(x, y);
+            index = i;
+        }
+
+        /**
+         * DOCUMENT ME!
+         *
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         *
+         * @return DOCUMENT ME!
+         */
+        public void move(double x, double y) {
+            Point point;
+            for (int i = 0; i < gp.getNumCoords() ; i++) {
+                point = gp.getPointAt(i);
+                point.setX(point.getX() + x);
+                point.setY(point.getY() + y);
+            }
+            init = new Point2D.Double(init.getX() + x, init.getY() + y);
+            end = new Point2D.Double(end.getX() + x, end.getY() + y);
+        }
+
+        /**
+         * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+         */
+        public void set(double x, double y) {
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @author Vicente Caballero Navarro
+     */
+    class CenterSelHandler extends AbstractHandler implements Handler {
+        /**
+         * Crea un nuevo PointHandler.
+         *
+         * @param i
+         *            DOCUMENT ME!
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         */
+        public CenterSelHandler(int i, double x, double y) {
+            point = new Point2D.Double(x, y);
+            index = i;
+        }
+
+        /**
+         * DOCUMENT ME!
+         *
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         *
+         * @return DOCUMENT ME!
+         */
+        public void move(double x, double y) {
+            Point point;
+            for (int i = 0; i < gp.getNumCoords() ; i++) {
+                point = gp.getPointAt(i);
+                point.setX(point.getX() + x);
+                point.setY(point.getY() + y);
+            }
+        }
+
+        /**
+         * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+         */
+        public void set(double x, double y) {
+            Point2D center = new Point2D.Double((init.getX() + end.getX()) / 2,
+                (init.getY() + end.getY()) / 2);
+            double dx = x - center.getX();
+            double dy = y - center.getY();
+            Point point;
+            for (int i = 0; i < gp.getNumCoords() ; i++) {
+                point = gp.getPointAt(i);
+                point.setX(point.getX() + dx);
+                point.setY(point.getY() + dy);
+            }
+            init = new Point2D.Double(init.getX() + dx, init.getY() + dy);
+            end = new Point2D.Double(end.getX() + dx, end.getY() + dy);
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @author Vicente Caballero Navarro
+     */
+    class InitSelHandler extends AbstractHandler implements CuadrantHandler {
+        /**
+         * Crea un nuevo PointHandler.
+         *
+         * @param i
+         *            DOCUMENT ME!
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         */
+        public InitSelHandler(int i, double x, double y) {
+            point = new Point2D.Double(x, y);
+            index = i;
+        }
+
+        /**
+         * DOCUMENT ME!
+         *
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         *
+         * @return DOCUMENT ME!
+         */
+        public void move(double x, double y) {
+
+        }
+
+        /**
+         * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+         */
+        public void set(double x, double y) {
+            // TODO comentado para quitar warning: double dx=x-init.getX();
+            // TODO comentado para quitar warning: double dy=y-init.getY();
+            Point2D center = new Point2D.Double((init.getX() + end.getX()) / 2,
+                (init.getY() + end.getY()) / 2);
+            // Point2D[]
+            // p1=TrigonometricalFunctions.getPerpendicular(init,end,center);
+            // Point2D[]
+            // p2=TrigonometricalFunctions.getPerpendicular(p1[0],p1[1],new
+            // Point2D.Double(x,y));
+
+            // Point2D
+            // pl=TrigonometricalFunctions.getIntersection(p2[0],p2[1],p1[0],p1[1]);
+            // double xdist=2*pl.distance(x,y);
+            double xdist = 2 * center.distance(x, y);
+            // init=new Point2D.Double(init.getX()+dx,init.getY()+dy);
+            init = UtilFunctions.getPoint(center, init, center.distance(x, y));
+            end = UtilFunctions.getPoint(init, center, xdist);
+            Arc2D.Double arc = new Arc2D.Double(init.getX(), init.getY()
+                - ydist, xdist, 2 * ydist, 0, 360, Arc2D.OPEN);
+            // TODO comentado para quitar warning: Point2D rotationPoint = new
+            // Point2D.Double(init.getX() + xdist /2, init.getY());
+
+            double angle = UtilFunctions.getAngle(init, end);
+            AffineTransform mT = AffineTransform.getRotateInstance(angle, init
+                .getX(), init.getY());
+            gp = new GeneralPathX(arc.getPathIterator(null));
+            gp.transform(mT);
+
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @author Vicente Caballero Navarro
+     */
+    class EndSelHandler extends AbstractHandler implements CuadrantHandler {
+        /**
+         * Crea un nuevo PointHandler.
+         *
+         * @param i
+         *            DOCUMENT ME!
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         */
+        public EndSelHandler(int i, double x, double y) {
+            point = new Point2D.Double(x, y);
+            index = i;
+        }
+
+        /**
+         * DOCUMENT ME!
+         *
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         *
+         * @return DOCUMENT ME!
+         */
+        public void move(double x, double y) {
+
+        }
+
+        /**
+         * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+         */
+        public void set(double x, double y) {
+            // double dx=x-getPoint().getX();
+            // double dy=y-getPoint().getY();
+            Point2D center = new Point2D.Double((init.getX() + end.getX()) / 2,
+                (init.getY() + end.getY()) / 2);
+            // Point2D[]
+            // p1=TrigonometricalFunctions.getPerpendicular(init,end,center);
+            // Point2D[]
+            // p2=TrigonometricalFunctions.getPerpendicular(p1[0],p1[1],new
+            // Point2D.Double(x,y));
+
+            // Point2D
+            // pl=TrigonometricalFunctions.getIntersection(p2[0],p2[1],p1[0],p1[1]);
+            // double xdist=2*pl.distance(x,y);
+            double xdist = 2 * center.distance(x, y);
+            end = UtilFunctions.getPoint(center, end, center.distance(x, y));
+            // end=new Point2D.Double(end.getX()+dx,end.getY()+dy);
+            init = UtilFunctions.getPoint(end, center, xdist);
+            Arc2D.Double arc = new Arc2D.Double(init.getX(), init.getY()
+                - ydist, xdist, 2 * ydist, 0, 360, Arc2D.OPEN);
+            // Point2D rotationPoint = new Point2D.Double(init.getX() + xdist
+            // /2, init.getY());
+
+            double angle = UtilFunctions.getAngle(init, end);
+            AffineTransform mT = AffineTransform.getRotateInstance(angle, init
+                .getX(), init.getY());
+            gp = new GeneralPathX(arc.getPathIterator(null));
+            gp.transform(mT);
+
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @author Vicente Caballero Navarro
+     */
+    class RadioSelYHandler extends AbstractHandler implements CuadrantHandler {
+        /**
+         * Crea un nuevo PointHandler.
+         *
+         * @param i
+         *            DOCUMENT ME!
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         */
+        public RadioSelYHandler(int i, double x, double y) {
+            point = new Point2D.Double(x, y);
+            index = i;
+        }
+
+        /**
+         * DOCUMENT ME!
+         *
+         * @param x
+         *            DOCUMENT ME!
+         * @param y
+         *            DOCUMENT ME!
+         *
+         * @return DOCUMENT ME!
+         */
+        public void move(double x, double y) {
+
+        }
+
+        /**
+         * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+         */
+        public void set(double x, double y) {
+            ydist = new Point2D.Double((init.getX() + end.getX()) / 2, (init
+                .getY() + end.getY()) / 2).distance(x, y);
+            // ydist=getSelectHandlers()[1].getPoint().distance(x,y);
+            // Point2D center=new Point2D.Double((init.getX() + end.getX()) / 2,
+            // (init.getY() + end.getY()) / 2);
+            // Point2D[]
+            // p=TrigonometricalFunctions.getPerpendicular(init,end,new
+            // Point2D.Double(x,y));
+            // Point2D
+            // pl=TrigonometricalFunctions.getIntersection(p[0],p[1],init,end);
+            // double xdist=2*pl.distance(x,y);
+            double xdist = init.distance(end);
+            Arc2D.Double arc = new Arc2D.Double(init.getX(), init.getY()
+                - ydist, xdist, 2 * ydist, 0, 360, Arc2D.OPEN);
+            // Point2D rotationPoint = new Point2D.Double(init.getX() + xdist
+            // /2, init.getY());
+
+            double angle = UtilFunctions.getAngle(init, end);
+            AffineTransform mT = AffineTransform.getRotateInstance(angle, init
+                .getX(), init.getY());
+            gp = new GeneralPathX(arc.getPathIterator(null));
+            gp.transform(mT);
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see com.iver.cit.gvsig.fmap.core.FPolyline2D#intersects(java.awt.geom.Rectangle2D)
+     */
+    public boolean intersects(Rectangle2D r) {
+        return gp.intersects(r);
+    }
+
+    /* (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.Ellipse#setPoints(org.gvsig.fmap.geom.primitive.Point, org.gvsig.fmap.geom.primitive.Point, double)
+     */
+    public void setPoints(Point axis1Start, Point axis1End, double axis2Length) {
+        Point2D _axis1Start = new java.awt.geom.Point2D.Double(axis1Start.getCoordinateAt(0), axis1Start.getCoordinateAt(1));
+        Point2D _axis1End = new java.awt.geom.Point2D.Double(axis1End.getCoordinateAt(0), axis1End.getCoordinateAt(1));
+        setPoints(_axis1Start, _axis1End, axis2Length);		
+    }
+
+    /* (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.Surface2D#setGeneralPath(org.gvsig.fmap.geom.primitive.GeneralPathX)
+     */
+    public void setGeneralPath(GeneralPathX generalPathX) {
+        throw new UnsupportedOperationException("Use setPoints(Point axis1Start, Point axis1End, double axis2Length)");
+    }
+
+    /* (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.Ellipse#setPoints(java.awt.geom.Point2D, java.awt.geom.Point2D, double)
+     */
+    private void setPoints(Point2D axis1Start, Point2D axis1End,
+        double axis2Length) {
+        double xAxis = axis1Start.distance(axis1End);
+        Arc2D.Double arc = new Arc2D.Double(axis1Start.getX(), axis1Start
+            .getY()
+            - axis2Length, xAxis, 2 * axis2Length, 0, 360, Arc2D.OPEN);
+        // TODO L�nea comentada para quitar warning: Point2D rotationPoint = new
+        // Point2D.Double(axis1Start.getX() + xAxis /2, axis1Start.getY());
+        double angle = UtilFunctions.getAngle(axis1Start, axis1End);
+        AffineTransform mT = AffineTransform.getRotateInstance(angle,
+            axis1Start.getX(), axis1Start.getY());
+        GeneralPathX gp = new GeneralPathX(arc.getPathIterator(null));
+        gp.transform(mT);
+        this.gp = new GeneralPathX(gp.getPathIterator(null));
+        this.init = axis1Start;
+        this.end = axis1End;
+        this.ydist = axis2Length;		
+    }
+
+    /* (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.Ellipse#getAxis1End()
+     */
+    public Point getAxis1End() {
+        try {
+            return new org.gvsig.fmap.geom.primitive.impl.Point2D(end);
+        } catch (Exception e){
+            return null;
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.Ellipse#getAxis1Start()
+     */
+    public Point getAxis1Start() {
+        try {
+            return new org.gvsig.fmap.geom.primitive.impl.Point2D(init);
+        } catch (Exception e){
+            return null;
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.Ellipse#getAxis2Dist()
+     */
+    public double getAxis2Dist() {
+        return ydist;
+    }
+
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Ellipse2D.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/OrientableSurface2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/OrientableSurface2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/OrientableSurface2D.java	(revision 38288)
@@ -0,0 +1,79 @@
+package org.gvsig.fmap.geom.primitive.impl;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.OrientableSurface;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id: FOrientablePolygon2D.java,v 1.1 2008/03/12 08:46:20 cvs Exp $
+ * $Log: FOrientablePolygon2D.java,v $
+ * Revision 1.1  2008/03/12 08:46:20  cvs
+ * *** empty log message ***
+ *
+ *
+ */
+/**
+ * @author Jorge Piera Llodr� (jorge.piera@iver.es)
+ */
+public abstract class OrientableSurface2D extends OrientablePrimitive2D implements OrientableSurface {
+	private static final long serialVersionUID = 9212660743520612859L;
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public OrientableSurface2D(GeometryType geometryType) {
+		super(geometryType);		
+	}
+	
+	public OrientableSurface2D(GeometryType geometryType, String id, IProjection projection, GeneralPathX gpx) {
+		super(geometryType, id, projection, gpx);		
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/OrientableSurface2D.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Arc2DZ.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Arc2DZ.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Arc2DZ.java	(revision 38288)
@@ -0,0 +1,55 @@
+/**
+ *
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.geom.Point2D;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.primitive.Arc;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * @author paco
+ *
+ */
+public class Arc2DZ extends Arc2D implements Arc {
+	private static final long serialVersionUID = -4622030261473894548L;
+	private double z;
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public Arc2DZ(GeometryType geometryType) {
+		super(geometryType);		
+	}
+	
+	/**
+	 * Constructor used in the {@link Geometry#cloneGeometry()} method
+	 */
+	private Arc2DZ(GeometryType geometryType,String id, IProjection projection, GeneralPathX gpx, Point2D i, Point2D c, Point2D e, double z) {
+		super(geometryType, id, projection, gpx, i, c, e);
+		this.z = z;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Circle2D#setCoordinateAt(int, int, double)
+	 */
+	public void setCoordinateAt(int index, int dimension, double value) {
+		if (dimension == 2){
+			z = value;
+		}else{
+			super.setCoordinateAt(index, dimension, value);
+		}
+	}
+	
+    public int getDimension() {
+        return 3;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Arc2DZ.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Circle2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Circle2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Circle2D.java	(revision 38288)
@@ -0,0 +1,449 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Arc2D;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.util.ArrayList;
+
+import org.cresques.cts.IProjection;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.handler.AbstractHandler;
+import org.gvsig.fmap.geom.handler.CuadrantHandler;
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.geom.primitive.Circle;
+import org.gvsig.fmap.geom.primitive.FShape;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.geom.util.UtilFunctions;
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class Circle2D extends Surface2D implements Circle {
+	private static final long serialVersionUID = -2709867465161215668L;
+	
+	private Point2D center;
+	private double radio;
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public Circle2D(GeometryType geometryType) {
+		super(geometryType);		
+	}
+	
+	/**
+	 * Constructor used in the {@link Geometry#cloneGeometry()} method
+	 */
+	Circle2D(GeometryType geometryType, String id, IProjection projection, GeneralPathX gpx,
+			Point2D c, double r) {
+		super(geometryType, id, projection, gpx);
+		center = c;
+		radio = r;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Circle#getCenter()
+	 */
+	public Point getCenter() {
+		return new org.gvsig.fmap.geom.primitive.impl.Point2D(center.getX(), center.getY());
+	}
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.geom.primitive.impl.Surface2D#cloneFShape()
+     */
+	public FShape cloneFShape() {
+		return new Circle2D(getGeometryType(), id, projection, (GeneralPathX) gp.clone(), center,
+				radio);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.impl.Surface2D#getShapeType()
+	 */
+	public int getShapeType() {
+		return TYPES.CIRCLE;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.impl.OrientablePrimitive2D#transform(java.awt.geom.AffineTransform)
+	 */
+	public void transform(AffineTransform at) {
+		Point2D pdist = UtilFunctions.getPerpendicularPoint(new Point2D.Double(
+				center.getX() + 10, center.getY()), new Point2D.Double(center
+				.getX() - 10, center.getY()), center, radio);
+		Point2D aux = new Point2D.Double();
+		at.transform(center, aux);
+		center = aux;
+		Point2D aux3 = new Point2D.Double();
+		at.transform(pdist, aux3);
+		radio = center.distance(aux3);
+		gp.transform(at);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.impl.OrientablePrimitive2D#getStretchingHandlers()
+	 */
+	public Handler[] getStretchingHandlers() {
+		ArrayList handlers = new ArrayList();
+		Rectangle2D rect = this.getBounds2D();
+		handlers
+				.add(new CenterHandler(0, rect.getCenterX(), rect.getCenterY()));
+		// handlers.add(new RadioHandler(1, rect.getX(), rect.getCenterY()));
+		// handlers.add(new RadioHandler(2, rect.getMaxX(), rect.getCenterY()));
+		// handlers.add(new RadioHandler(3, rect.getCenterX(), rect.getY()));
+		// handlers.add(new RadioHandler(3, rect.getCenterX(), rect.getMaxY()));
+
+		return (Handler[]) handlers.toArray(new Handler[0]);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.impl.OrientablePrimitive2D#getSelectHandlers()
+	 */
+	public Handler[] getSelectHandlers() {
+		ArrayList handlers = new ArrayList();
+		handlers.add(new CenterSelHandler(0, center.getX(), center.getY()));
+		handlers.add(new RadioSelHandler(1, center.getX() - radio, center
+				.getY()));
+		handlers.add(new RadioSelHandler(2, center.getX() + radio, center
+				.getY()));
+		handlers.add(new RadioSelHandler(3, center.getX(), center.getY()
+				- radio));
+		handlers.add(new RadioSelHandler(3, center.getX(), center.getY()
+				+ radio));
+
+		return (Handler[]) handlers.toArray(new Handler[0]);
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @author Vicente Caballero Navarro
+	 */
+	class CenterHandler extends AbstractHandler implements Handler, org.gvsig.fmap.geom.handler.CenterHandler{
+		/**
+		 * Crea un nuevo PointHandler.
+		 *
+		 * @param i
+		 *            DOCUMENT ME!
+		 * @param x
+		 *            DOCUMENT ME!
+		 * @param y
+		 *            DOCUMENT ME!
+		 */
+		public CenterHandler(int i, double x, double y) {
+			point = new Point2D.Double(x, y);
+			index = i;
+		}
+
+		/**
+		 * DOCUMENT ME!
+		 *
+		 * @param x
+		 *            DOCUMENT ME!
+		 * @param y
+		 *            DOCUMENT ME!
+		 *
+		 * @return DOCUMENT ME!
+		 */
+		public void move(double x, double y) {
+			center = new Point2D.Double(center.getX() + x, center.getY() + y);
+			 Point point;
+			for (int i = 0; i < gp.getNumCoords(); i++) {
+			    point = gp.getPointAt(i);
+                point.setX(point.getX() + x);
+                point.setY(point.getY() + y);
+			}
+		}
+
+		/**
+		 * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+		 */
+		public void set(double x, double y) {
+		}
+
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @author Vicente Caballero Navarro
+	 */
+	class CenterSelHandler extends AbstractHandler implements Handler, org.gvsig.fmap.geom.handler.CenterHandler {
+		/**
+		 * Crea un nuevo PointHandler.
+		 *
+		 * @param i
+		 *            DOCUMENT ME!
+		 * @param x
+		 *            DOCUMENT ME!
+		 * @param y
+		 *            DOCUMENT ME!
+		 */
+		public CenterSelHandler(int i, double x, double y) {
+			point = new Point2D.Double(x, y);
+			index = i;
+		}
+
+		/**
+		 * DOCUMENT ME!
+		 *
+		 * @param x
+		 *            DOCUMENT ME!
+		 * @param y
+		 *            DOCUMENT ME!
+		 *
+		 * @return DOCUMENT ME!
+		 */
+		public void move(double x, double y) {
+		    Point point;
+		    for (int i = 0; i < gp.getNumCoords() ; i++) {
+			    point = gp.getPointAt(i);
+			    point.setX(point.getX() + x);
+	            point.setY(point.getY() + y);
+			}
+		}
+
+		/**
+		 * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+		 */
+		public void set(double x, double y) {
+			center = new Point2D.Double(x, y);
+			Arc2D.Double arc = new Arc2D.Double(center.getX() - radio, center
+					.getY()
+					- radio, 2 * radio, 2 * radio, 0, 360, Arc2D.OPEN);
+			gp = new GeneralPathX(arc.getPathIterator(null));
+			gp.closePath();
+		}
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @author Vicente Caballero Navarro
+	 */
+	class RadioSelHandler extends AbstractHandler implements CuadrantHandler {
+
+		/**
+		 * Crea un nuevo PointHandler.
+		 *
+		 * @param i
+		 *            DOCUMENT ME!
+		 * @param x
+		 *            DOCUMENT ME!
+		 * @param y
+		 *            DOCUMENT ME!
+		 */
+		public RadioSelHandler(int i, double x, double y) {
+			point = new Point2D.Double(x, y);
+			index = i;
+		}
+
+		/**
+		 * DOCUMENT ME!
+		 *
+		 * @param x
+		 *            DOCUMENT ME!
+		 * @param y
+		 *            DOCUMENT ME!
+		 *
+		 * @return DOCUMENT ME!
+		 */
+		public void move(double x, double y) {
+
+		}
+
+		/**
+		 * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+		 */
+		public void set(double x, double y) {
+			radio = center.distance(x, y);
+			Arc2D.Double arc = new Arc2D.Double(center.getX() - radio, center
+					.getY()
+					- radio, 2 * radio, 2 * radio, 0, 360, Arc2D.OPEN);
+			gp = new GeneralPathX(arc.getPathIterator(null));
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.FPolyline2D#intersects(java.awt.geom.Rectangle2D)
+	 */
+	public boolean intersects(Rectangle2D r) {
+		return gp.intersects(r);
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Surface2D#setGeneralPath(org.gvsig.fmap.geom.primitive.GeneralPathX)
+	 */
+	public void setGeneralPath(GeneralPathX generalPathX) {
+		throw new UnsupportedOperationException("Use setPoints(Point center, Point radious)");
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Circle#setPoints(org.gvsig.fmap.geom.primitive.Point, org.gvsig.fmap.geom.primitive.Point)
+	 */
+	public void setPoints(Point center, Point radious) {
+		Point2D _center = new java.awt.geom.Point2D.Double(center.getCoordinateAt(0), center.getCoordinateAt(1));
+		Point2D _radious = new java.awt.geom.Point2D.Double(radious.getCoordinateAt(0), radious.getCoordinateAt(1));
+		double dRadious = _center.distance(_radious);
+		setPoints(center, dRadious);
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Circle#setPoints(org.gvsig.fmap.geom.primitive.Point, double)
+	 */
+	public void setPoints(Point center, double radious){
+		Point2D _center = new java.awt.geom.Point2D.Double(center.getCoordinateAt(0), center.getCoordinateAt(1));
+		java.awt.geom.Arc2D.Double arc = 
+			new java.awt.geom.Arc2D.Double(center.getX() - radious, _center
+				.getY()
+				- radious, 2 * radious, 2 * radious, 0, 360, Arc2D.OPEN);
+		this.gp = new GeneralPathX(arc.getPathIterator(null));
+		gp.closePath();
+		this.center = _center;
+		this.radio = radious;	
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Arc#setPoints(org.gvsig.fmap.geom.primitive.Point, org.gvsig.fmap.geom.primitive.Point, org.gvsig.fmap.geom.primitive.Point)
+	 */
+	public void setPoints(Point p1, Point p2, Point p3) {
+		Point2D _p1 = new java.awt.geom.Point2D.Double(p1.getCoordinateAt(0), p1.getCoordinateAt(1));
+		Point2D _p2 = new java.awt.geom.Point2D.Double(p2.getCoordinateAt(0), p2.getCoordinateAt(1));
+		Point2D _p3 = new java.awt.geom.Point2D.Double(p3.getCoordinateAt(0), p3.getCoordinateAt(1));
+		setPoints(_p1, _p2, _p3);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Circle#setPoints(org.gvsig.fmap.geom.primitive.Point2D, org.gvsig.fmap.geom.primitive.Point2D)
+	 */
+	public void setPoints(org.gvsig.fmap.geom.primitive.impl.Point2D center,
+			org.gvsig.fmap.geom.primitive.impl.Point2D radious) {
+		Point2D _center = new java.awt.geom.Point2D.Double(center.getCoordinateAt(0), center.getCoordinateAt(1));
+		Point2D _radious = new java.awt.geom.Point2D.Double(radious.getCoordinateAt(0), radious.getCoordinateAt(1));
+		setPoints(_center, _radious);		
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Circle#setPoints(org.gvsig.fmap.geom.primitive.Point2D, double)
+	 */
+	public void setPoints(Point2D center,
+			double radious) {
+		java.awt.geom.Arc2D.Double arc = 
+			new java.awt.geom.Arc2D.Double(center.getX() - radious, center
+				.getY()
+				- radious, 2 * radious, 2 * radious, 0, 360, Arc2D.OPEN);
+		this.gp = new GeneralPathX(arc.getPathIterator(null));
+		gp.closePath();
+		this.center = center;
+		this.radio = radious;	
+		
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Arc#setPoints(java.awt.geom.Point2D, java.awt.geom.Point2D, java.awt.geom.Point2D)
+	 */
+	public void setPoints(Point2D p1, Point2D p2, Point2D p3) {
+		Point2D center = UtilFunctions.getCenter(p1, p2, p3);
+		if (center != null) {
+			setPoints(center, p1);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Curve#setCoordinateAt(int, int, double)
+	 */
+	public void setCoordinateAt(int index, int dimension, double value) {
+		throw new UnsupportedOperationException("Use setGeneralPathX");
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Circle#setPoints(java.awt.geom.Point2D, java.awt.geom.Point2D)
+	 */
+	private void setPoints(Point2D center, Point2D radious) {
+		double radio = center.distance(radious);
+		setPoints(center, radio);		
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Arc#setPoints(org.gvsig.fmap.geom.primitive.Point, double, double, double)
+	 */
+	public void setPoints(Point center, double radius, double initAngle,
+			double angleExt) {
+		throw new UnsupportedOperationException("Use setGeneralPathX");		
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Arc#setPoints(java.awt.geom.Point2D, double, double, double)
+	 */
+	private void setPoints(Point2D center, double radius, double initAngle,
+			double angleExt) {
+		throw new UnsupportedOperationException("Use setGeneralPathX");		
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.primitive.Circle#getRadious()
+	 */
+	public double getRadious() {
+		return radio;
+	}
+	
+	
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Circle2D.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/DefaultCurve.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/DefaultCurve.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/DefaultCurve.java	(revision 38288)
@@ -0,0 +1,61 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.primitive.impl;
+
+import org.cresques.cts.IProjection;
+
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public abstract class DefaultCurve extends OrientableCurve2D implements Curve {
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public DefaultCurve(GeometryType geometryType) {
+		super(geometryType);		
+	}
+
+	/**
+	 * @param id
+	 * @param projection
+	 * @param gpx
+	 */
+	public DefaultCurve(GeometryType geometryType, String id, IProjection projection, GeneralPathX gpx) {
+		super(geometryType, id, projection, gpx);		
+	}	
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/DefaultCurve.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Solid2DZ.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Solid2DZ.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Solid2DZ.java	(revision 38288)
@@ -0,0 +1,225 @@
+package org.gvsig.fmap.geom.primitive.impl;
+
+import java.awt.Rectangle;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.awt.image.BufferedImage;
+
+import org.cresques.cts.ICoordTrans;
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.geom.primitive.Appearance;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.primitive.FShape;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Solid;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id: FSolid.java,v 1.2 2008/03/25 08:47:41 cvs Exp $
+ * $Log: FSolid.java,v $
+ * Revision 1.2  2008/03/25 08:47:41  cvs
+ * Visitors removed
+ *
+ * Revision 1.1  2008/03/12 08:46:20  cvs
+ * *** empty log message ***
+ *
+ *
+ */
+/**
+ * @author Jorge Piera Llodr� (jorge.piera@iver.es)
+ */
+public class Solid2DZ extends AbstractPrimitive implements Solid {
+	private static final long serialVersionUID = 5702298296398677297L;
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public Solid2DZ(GeometryType geometryType) {
+		super(geometryType);
+	}
+
+	public FShape cloneFShape() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Handler[] getSelectHandlers() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public int getShapeType() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	public Handler[] getStretchingHandlers() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public void reProject(ICoordTrans ct) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void transform(AffineTransform at) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public boolean contains(Point2D arg0) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public boolean contains(Rectangle2D arg0) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public boolean contains(double arg0, double arg1) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public boolean contains(double arg0, double arg1, double arg2, double arg3) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public Rectangle getBounds() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Rectangle2D getBounds2D() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public PathIterator getPathIterator(AffineTransform arg0) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public PathIterator getPathIterator(AffineTransform arg0, double arg1) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public boolean intersects(Rectangle2D arg0) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public boolean intersects(double arg0, double arg1, double arg2, double arg3) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.gvsig.geometries.iso.GM_Object#coordinateDimension()
+	 */
+	public int getDimension() {
+		return 3;
+	}	
+
+	public Envelope getEnvelope() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public GeneralPathX getGeneralPath() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public double[] getZs() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public void addSurface(Surface surface) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public Appearance getAppearance() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public int getNumSurfaces() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	public Surface getSurfaceAt(int position) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public void removeSurface(int position) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void setAppearance(Appearance app) {
+		// TODO Auto-generated method stub
+		
+	}
+
+
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/impl/Solid2DZ.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/GeneralPathX.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/GeneralPathX.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/GeneralPathX.java	(revision 38288)
@@ -0,0 +1,1013 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.primitive;
+
+/*
+ * Based on portions of code from java.awt.geom.GeneralPath of the
+ * OpenJDK project (Copyright (c) 1996, 2006, Oracle and/or its affiliates)
+ */
+import java.awt.Shape;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.FlatteningPathIterator;
+import java.awt.geom.IllegalPathStateException;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.vividsolutions.jts.algorithm.CGAlgorithms;
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.CoordinateList;
+import com.vividsolutions.jts.geom.CoordinateSequences;
+import com.vividsolutions.jts.geom.impl.CoordinateArraySequence;
+
+import org.cresques.cts.ICoordTrans;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.jdk.GeomUtilities;
+
+/**
+ * The <code>GeneralPathX</code> class represents a geometric path
+ * constructed from straight lines, and quadratic and cubic
+ * (B&eacute;zier) curves. It can contain multiple subpaths.
+ * <p>
+ * The winding rule specifies how the interior of a path is determined. There
+ * are two types of winding rules: EVEN_ODD and NON_ZERO.
+ * <p>
+ * An EVEN_ODD winding rule means that enclosed regions of the path alternate
+ * between interior and exterior areas as traversed from the outside of the path
+ * towards a point inside the region.
+ * <p>
+ * A NON_ZERO winding rule means that if a ray is drawn in any direction from a
+ * given point to infinity and the places where the path intersects the ray are
+ * examined, the point is inside of the path if and only if the number of times
+ * that the path crosses the ray from left to right does not equal the number of
+ * times that the path crosses the ray from right to left.
+ * 
+ * @version 1.58, 01/23/03
+ * @author Jim Graham
+ * @deprecated
+ *             use the geometry methods
+ */
+public class GeneralPathX implements Shape, Cloneable, Serializable {
+
+    /**
+     * Default serial version ID
+     */
+    private static final long serialVersionUID = 1L;
+
+    private static final Logger LOG = LoggerFactory
+        .getLogger(GeneralPathX.class);
+
+    protected static GeometryManager geomManager = GeometryLocator
+        .getGeometryManager();
+
+    public static final int curvesize[] = { 1, 1, 2, 3, 0 };
+
+    /**
+     * An even-odd winding rule for determining the interior of
+     * a path.
+     */
+    public static final int WIND_EVEN_ODD = PathIterator.WIND_EVEN_ODD;
+
+    /**
+     * A non-zero winding rule for determining the interior of a
+     * path.
+     */
+    public static final int WIND_NON_ZERO = PathIterator.WIND_NON_ZERO;
+
+    // For code simplicity, copy these constants to our namespace
+    // and cast them to byte constants for easy storage.
+    public static final byte SEG_MOVETO = (byte) PathIterator.SEG_MOVETO;
+    public static final byte SEG_LINETO = (byte) PathIterator.SEG_LINETO;
+    public static final byte SEG_QUADTO = (byte) PathIterator.SEG_QUADTO;
+    public static final byte SEG_CUBICTO = (byte) PathIterator.SEG_CUBICTO;
+    public static final byte SEG_CLOSE = (byte) PathIterator.SEG_CLOSE;
+
+    private List pointTypes = new ArrayList();
+    private List pointCoords = new ArrayList();
+
+    int windingRule;
+
+    private boolean isSimple = true;
+
+    static final int INIT_SIZE = 20;
+    static final int EXPAND_MAX = 500;
+
+    /**
+     * Constructs a new <code>GeneralPathX</code> object.
+     * If an operation performed on this path requires the
+     * interior of the path to be defined then the default NON_ZERO
+     * winding rule is used.
+     * 
+     * @see #WIND_NON_ZERO
+     */
+    public GeneralPathX() {
+        this(WIND_EVEN_ODD, INIT_SIZE, INIT_SIZE);
+    }
+
+    /**
+     * Constructs a new <code>GeneralPathX</code> object with the specified
+     * winding rule to control operations that require the interior of the
+     * path to be defined.
+     * 
+     * @param rule
+     *            the winding rule
+     * @see #WIND_EVEN_ODD
+     * @see #WIND_NON_ZERO
+     */
+    public GeneralPathX(int rule) {
+        this(rule, INIT_SIZE, INIT_SIZE);
+    }
+
+    /**
+     * Constructs a new <code>GeneralPathX</code> object with the specified
+     * winding rule and the specified initial capacity to store path
+     * coordinates. This number is an initial guess as to how many path
+     * segments are in the path, but the storage is expanded
+     * as needed to store whatever path segments are added to this path.
+     * 
+     * @param rule
+     *            the winding rule
+     * @param initialCapacity
+     *            the estimate for the number of path segments
+     *            in the path
+     * @see #WIND_EVEN_ODD
+     * @see #WIND_NON_ZERO
+     * @deprecated
+     *             the capacity grows dynamically
+     */
+    public GeneralPathX(int rule, int initialCapacity) {
+        this(rule, initialCapacity, initialCapacity);
+    }
+
+    /**
+     * Constructs a new <code>GeneralPathX</code> object with the specified
+     * winding rule and the specified initial capacities to store point types
+     * and coordinates.
+     * These numbers are an initial guess as to how many path segments
+     * and how many points are to be in the path, but the
+     * storage is expanded as needed to store whatever path segments are
+     * added to this path.
+     * 
+     * @param rule
+     *            the winding rule
+     * @param initialTypes
+     *            the estimate for the number of path segments
+     *            in the path
+     * @param initialCapacity
+     *            the estimate for the number of points
+     * @see #WIND_EVEN_ODD
+     * @see #WIND_NON_ZERO
+     */
+    GeneralPathX(int rule, int initialTypes, int initialCoords) {
+        setWindingRule(rule);
+    }
+
+    /**
+     * Constructs a new <code>GeneralPathX</code> object from an arbitrary
+     * {@link Shape} object.
+     * All of the initial geometry and the winding rule for this path are
+     * taken from the specified <code>Shape</code> object.
+     * 
+     * @param s
+     *            the specified <code>Shape</code> object
+     */
+    public GeneralPathX(PathIterator piter) {
+        this(WIND_EVEN_ODD, INIT_SIZE, INIT_SIZE);
+        setWindingRule(piter.getWindingRule());
+        append(piter, false);
+    }
+
+    private void needRoom(int newTypes, int newCoords, boolean needMove) {
+        if (needMove && getNumTypes() == 0) {
+            throw new IllegalPathStateException("missing initial moveto "
+                + "in path definition");
+        }
+    }
+
+    /**
+     * Adds a point to the path by moving to the specified
+     * coordinates.
+     * 
+     * @param x
+     *            ,&nbsp;y the specified coordinates
+     * @deprecated
+     *             use moveTo(Point)
+     */
+    public synchronized void moveTo(double x, double y) {
+        int numtypes = getNumTypes();
+        if (numtypes > 0 && getTypeAt(numtypes - 1) == SEG_MOVETO) {
+            Point point = getPointAt(getNumCoords() - 1);
+            point.setX(x);
+            point.setY(y);
+        } else {
+            needRoom(1, 2, false);
+            pointTypes.add(Byte.valueOf(SEG_MOVETO));
+            addPoint(x, y);
+        }
+    }
+
+    public synchronized void moveTo(Point point) {
+        int numtypes = getNumTypes();
+        if (numtypes > 0 && getTypeAt(numtypes - 1) == SEG_MOVETO) {
+            pointCoords.remove(getNumCoords() - 1);
+            addPoint(point);
+        } else {
+            needRoom(1, 2, false);
+            pointTypes.add(Byte.valueOf(SEG_MOVETO));
+            addPoint(point);
+        }
+    }
+
+    /**
+     * Adds a point to the path by drawing a straight line from the
+     * current coordinates to the new specified coordinates.
+     * 
+     * @param x
+     *            ,&nbsp;y the specified coordinates
+     * @deprecated
+     *             use lineTo(Point)
+     */
+    public synchronized void lineTo(double x, double y) {
+        needRoom(1, 2, true);
+        pointTypes.add(Byte.valueOf(SEG_LINETO));
+        addPoint(x, y);
+    }
+
+    public synchronized void lineTo(Point point) {
+        needRoom(1, 2, true);
+        pointTypes.add(Byte.valueOf(SEG_LINETO));
+        addPoint(point);
+    }
+
+    public synchronized void addSegment(Point[] segment) {
+        if (segment != null && segment.length > 0) {
+            needRoom(segment.length, 2 * segment.length, true);
+            for (int i = 0; i < segment.length; i++) {
+                pointTypes.add(Byte.valueOf(SEG_LINETO));
+                addPoint(segment[i]);
+            }
+        }
+    }
+
+    private void addPoint(double x, double y) {
+        try {
+            pointCoords.add(geomManager.createPoint(x, y,
+                Geometry.SUBTYPES.GEOM2D));
+        } catch (CreateGeometryException e) {
+            LOG.error("Error creating a point", e);
+        }
+    }
+
+    private void addPoint(Point point) {
+        pointCoords.add(point);
+    }
+
+    /**
+     * Adds a curved segment, defined by two new points, to the path by
+     * drawing a Quadratic curve that intersects both the current
+     * coordinates and the coordinates (x2,&nbsp;y2), using the
+     * specified point (x1,&nbsp;y1) as a quadratic parametric control
+     * point.
+     * 
+     * @param x1
+     *            ,&nbsp;y1 the coordinates of the first quadratic control
+     *            point
+     * @param x2
+     *            ,&nbsp;y2 the coordinates of the final endpoint
+     * @deprecated
+     *             use quadTo(Point, Point)
+     */
+    public synchronized void quadTo(double x1, double y1, double x2, double y2) {
+        needRoom(1, 4, true);
+        pointTypes.add(Byte.valueOf(SEG_QUADTO));
+        addPoint(x1, y1);
+        addPoint(x2, y2);
+        isSimple = false;
+    }
+
+    public synchronized void quadTo(Point point1, Point point2) {
+        needRoom(1, 4, true);
+        pointTypes.add(Byte.valueOf(SEG_QUADTO));
+        addPoint(point1);
+        addPoint(point2);
+        isSimple = false;
+    }
+
+    /**
+     * Adds a curved segment, defined by three new points, to the path by
+     * drawing a B&eacute;zier curve that intersects both the current
+     * coordinates and the coordinates (x3,&nbsp;y3), using the
+     * specified points (x1,&nbsp;y1) and (x2,&nbsp;y2) as
+     * B&eacute;zier control points.
+     * 
+     * @param x1
+     *            ,&nbsp;y1 the coordinates of the first B&eacute;ezier
+     *            control point
+     * @param x2
+     *            ,&nbsp;y2 the coordinates of the second B&eacute;zier
+     *            control point
+     * @param x3
+     *            ,&nbsp;y3 the coordinates of the final endpoint
+     * @deprecated
+     *             use curveTo(Point, Point, Point)
+     */
+    public synchronized void curveTo(double x1, double y1, double x2,
+        double y2, double x3, double y3) {
+        needRoom(1, 6, true);
+        pointTypes.add(Byte.valueOf(SEG_CUBICTO));
+        addPoint(x1, y1);
+        addPoint(x2, y2);
+        addPoint(x3, y3);
+        isSimple = false;
+    }
+
+    public synchronized void curveTo(Point point1, Point point2, Point point3) {
+        needRoom(1, 6, true);
+        pointTypes.add(Byte.valueOf(SEG_CUBICTO));
+        addPoint(point1);
+        addPoint(point2);
+        addPoint(point3);
+        isSimple = false;
+    }
+
+    /**
+     * Closes the current subpath by drawing a straight line back to
+     * the coordinates of the last <code>moveTo</code>. If the path is already
+     * closed then this method has no effect.
+     */
+    public synchronized void closePath() {
+        if (getNumTypes() == 0 || getTypeAt(getNumTypes() - 1) != SEG_CLOSE) {
+            needRoom(1, 0, true);
+            // Adding a geometry like the last geometry
+            // addPoint(100, 100);
+            pointTypes.add(Byte.valueOf(SEG_CLOSE));
+        }
+    }
+
+    /**
+     * Check if the first part is closed.
+     * 
+     * @return
+     */
+    public boolean isClosed() {
+        PathIterator theIterator =
+            getPathIterator(null, geomManager.getFlatness());
+        double[] theData = new double[6];
+        double xFinal = 0;
+        double yFinal = 0;
+        double xIni = 0;
+        double yIni = 0;
+        boolean first = true;
+
+        while (!theIterator.isDone()) {
+            // while not done
+            int theType = theIterator.currentSegment(theData);
+
+            switch (theType) {
+            case PathIterator.SEG_MOVETO:
+                xIni = theData[0];
+                yIni = theData[1];
+                if (!first) {
+                    break;
+                }
+                first = false;
+                break;
+
+            case PathIterator.SEG_LINETO:
+                xFinal = theData[0];
+                yFinal = theData[1];
+                break;
+            case PathIterator.SEG_CLOSE:
+                return true;
+
+            } // end switch
+
+            theIterator.next();
+        }
+        if ((xFinal == xIni) && (yFinal == yIni))
+            return true;
+        return false;
+    }
+
+    /**
+     * Appends the geometry of the specified {@link PathIterator} object
+     * to the path, possibly connecting the new geometry to the existing
+     * path segments with a line segment.
+     * If the <code>connect</code> parameter is <code>true</code> and the
+     * path is not empty then any initial <code>moveTo</code> in the
+     * geometry of the appended <code>Shape</code> is turned into a
+     * <code>lineTo</code> segment.
+     * If the destination coordinates of such a connecting <code>lineTo</code>
+     * segment match the ending coordinates of a currently open
+     * subpath then the segment is omitted as superfluous.
+     * The winding rule of the specified <code>Shape</code> is ignored
+     * and the appended geometry is governed by the winding
+     * rule specified for this path.
+     * 
+     * @param pi
+     *            the <code>PathIterator</code> whose geometry is appended to
+     *            this path
+     * @param connect
+     *            a boolean to control whether or not to turn an
+     *            initial <code>moveTo</code> segment into a <code>lineTo</code>
+     *            segment
+     *            to connect the new geometry to the existing path
+     */
+    public void append(PathIterator pi, boolean connect) {
+        double coords[] = new double[6];
+        while (!pi.isDone()) {
+            switch (pi.currentSegment(coords)) {
+            case SEG_MOVETO:
+                if (!connect || getNumTypes() < 1 || getNumCoords() < 2) {
+                    moveTo(coords[0], coords[1]);
+                    break;
+                }
+                if (getTypeAt(getNumTypes() - 1) != SEG_CLOSE
+                    && getPointAt(getNumCoords() - 1).getX() == coords[0]
+                    && getPointAt(getNumCoords() - 1).getY() == coords[1]) {
+                    // Collapse out initial moveto/lineto
+                    break;
+                }
+                // NO BREAK;
+            case SEG_LINETO:
+                lineTo(coords[0], coords[1]);
+                break;
+            case SEG_QUADTO:
+                quadTo(coords[0], coords[1], coords[2], coords[3]);
+                break;
+            case SEG_CUBICTO:
+                curveTo(coords[0], coords[1], coords[2], coords[3], coords[4],
+                    coords[5]);
+                break;
+            case SEG_CLOSE:
+                closePath();
+                break;
+            }
+            pi.next();
+            connect = false;
+        }
+    }
+
+    /**
+     * Returns the fill style winding rule.
+     * 
+     * @return an integer representing the current winding rule.
+     * @see #WIND_EVEN_ODD
+     * @see #WIND_NON_ZERO
+     * @see #setWindingRule
+     */
+    public synchronized int getWindingRule() {
+        return windingRule;
+    }
+
+    /**
+     * Sets the winding rule for this path to the specified value.
+     * 
+     * @param rule
+     *            an integer representing the specified
+     *            winding rule
+     * @exception <code>IllegalArgumentException</code> if <code>rule</code> is
+     *            not either <code>WIND_EVEN_ODD</code> or
+     *            <code>WIND_NON_ZERO</code>
+     * @see #WIND_EVEN_ODD
+     * @see #WIND_NON_ZERO
+     * @see #getWindingRule
+     */
+    public void setWindingRule(int rule) {
+        if (rule != WIND_EVEN_ODD && rule != WIND_NON_ZERO) {
+            throw new IllegalArgumentException("winding rule must be "
+                + "WIND_EVEN_ODD or " + "WIND_NON_ZERO");
+        }
+        windingRule = rule;
+    }
+
+    /**
+     * Returns the coordinates most recently added to the end of the path
+     * as a {@link Point2D} object.
+     * 
+     * @return a <code>Point2D</code> object containing the ending
+     *         coordinates of the path or <code>null</code> if there are no
+     *         points
+     *         in the path.
+     */
+    public synchronized Point2D getCurrentPoint() {
+        if (getNumTypes() < 1 || getNumCoords() < 1) {
+            return null;
+        }
+        int index = getNumCoords();
+        if (getTypeAt(getNumTypes() - 1) == SEG_CLOSE) {
+            loop: for (int i = getNumTypes() - 2; i > 0; i--) {
+                switch (getTypeAt(i)) {
+                case SEG_MOVETO:
+                    break loop;
+                case SEG_LINETO:
+                    index -= 2;
+                    break;
+                case SEG_QUADTO:
+                    index -= 4;
+                    break;
+                case SEG_CUBICTO:
+                    index -= 6;
+                    break;
+                case SEG_CLOSE:
+                    break;
+                }
+            }
+        }
+        return new Point2D.Double(getPointAt(index - 1).getX(), getPointAt(
+            index - 1).getY());
+    }
+
+    /**
+     * Resets the path to empty. The append position is set back to the
+     * beginning of the path and all coordinates and point types are
+     * forgotten.
+     */
+    public synchronized void reset() {
+        pointCoords.clear();
+        pointTypes.clear();
+    }
+
+    /**
+     * Transforms the geometry of this path using the specified
+     * {@link AffineTransform}.
+     * The geometry is transformed in place, which permanently changes the
+     * boundary defined by this object.
+     * 
+     * @param at
+     *            the <code>AffineTransform</code> used to transform the area
+     */
+    public void transform(AffineTransform at) {
+        for (int i = 0; i < getNumCoords(); i++) {
+            getPointAt(i).transform(at);
+        }
+    }
+
+    public void reProject(ICoordTrans ct) {
+        for (int i = 0; i < getNumCoords(); i++) {
+            getPointAt(i).reProject(ct);
+        }
+    }
+
+    /**
+     * Returns a new transformed <code>Shape</code>.
+     * 
+     * @param at
+     *            the <code>AffineTransform</code> used to transform a
+     *            new <code>Shape</code>.
+     * @return a new <code>Shape</code>, transformed with the specified
+     *         <code>AffineTransform</code>.
+     */
+    public synchronized Shape createTransformedShape(AffineTransform at) {
+        GeneralPathX gp = (GeneralPathX) clone();
+        if (at != null) {
+            gp.transform(at);
+        }
+        return gp;
+    }
+
+    /**
+     * Return the bounding box of the path.
+     * 
+     * @return a {@link java.awt.Rectangle} object that
+     *         bounds the current path.
+     */
+    public java.awt.Rectangle getBounds() {
+        return getBounds2D().getBounds();
+    }
+
+    /**
+     * Returns the bounding box of the path.
+     * 
+     * @return a {@link Rectangle2D} object that
+     *         bounds the current path.
+     */
+    public synchronized Rectangle2D getBounds2D() {
+        double x1, y1, x2, y2;
+        int i = getNumCoords();
+        if (i > 0) {
+            y1 = y2 = getPointAt(--i).getY();
+            x1 = x2 = getPointAt(i).getX();
+            while (i > 0) {
+                double y = getPointAt(--i).getY();
+                double x = getPointAt(i).getX();
+                if (x < x1)
+                    x1 = x;
+                if (y < y1)
+                    y1 = y;
+                if (x > x2)
+                    x2 = x;
+                if (y > y2)
+                    y2 = y;
+            }
+        } else {
+            x1 = y1 = x2 = y2 = 0.0f;
+        }
+        return new Rectangle2D.Double(x1, y1, x2 - x1, y2 - y1);
+    }
+
+    /**
+     * Tests if the specified coordinates are inside the boundary of
+     * this <code>Shape</code>.
+     * 
+     * @param x
+     *            ,&nbsp;y the specified coordinates
+     * @return <code>true</code> if the specified coordinates are inside this
+     *         <code>Shape</code>; <code>false</code> otherwise
+     */
+    public boolean contains(double x, double y) {
+        if (pointTypes.size() < 2) {
+            return false;
+        }
+        int cross =
+            GeomUtilities.pointCrossingsForPath(getPathIterator(null), x, y);
+        if (windingRule == WIND_NON_ZERO) {
+            return (cross != 0);
+        } else {
+            return ((cross & 1) != 0);
+        }
+    }
+
+    /**
+     * Tests if the specified <code>Point2D</code> is inside the boundary
+     * of this <code>Shape</code>.
+     * 
+     * @param p
+     *            the specified <code>Point2D</code>
+     * @return <code>true</code> if this <code>Shape</code> contains the
+     *         specified <code>Point2D</code>, <code>false</code> otherwise.
+     */
+    public boolean contains(Point2D p) {
+        return contains(p.getX(), p.getY());
+    }
+
+    /**
+     * Tests if the specified rectangular area is inside the boundary of
+     * this <code>Shape</code>.
+     * 
+     * @param x
+     *            ,&nbsp;y the specified coordinates
+     * @param w
+     *            the width of the specified rectangular area
+     * @param h
+     *            the height of the specified rectangular area
+     * @return <code>true</code> if this <code>Shape</code> contains
+     *         the specified rectangluar area; <code>false</code> otherwise.
+     */
+    public boolean contains(double x, double y, double w, double h) {
+        return GeomUtilities
+            .contains(getPathIterator(null), x, y, x + w, y + h);
+    }
+
+    /**
+     * Tests if the specified <code>Rectangle2D</code> is inside the boundary of
+     * this <code>Shape</code>.
+     * 
+     * @param r
+     *            a specified <code>Rectangle2D</code>
+     * @return <code>true</code> if this <code>Shape</code> bounds the
+     *         specified <code>Rectangle2D</code>; <code>false</code> otherwise.
+     */
+    public boolean contains(Rectangle2D r) {
+        return contains(r.getX(), r.getY(), r.getWidth(), r.getHeight());
+    }
+
+    /**
+     * Tests if the interior of this <code>Shape</code> intersects the
+     * interior of a specified set of rectangular coordinates.
+     * 
+     * @param x
+     *            ,&nbsp;y the specified coordinates
+     * @param w
+     *            the width of the specified rectangular coordinates
+     * @param h
+     *            the height of the specified rectangular coordinates
+     * @return <code>true</code> if this <code>Shape</code> and the
+     *         interior of the specified set of rectangular coordinates
+     *         intersect
+     *         each other; <code>false</code> otherwise.
+     */
+    public boolean intersects(double x, double y, double w, double h) {
+        return GeomUtilities.intersects(getPathIterator(null), x, y, w, h);
+    }
+
+    /**
+     * Tests if the interior of this <code>Shape</code> intersects the
+     * interior of a specified <code>Rectangle2D</code>.
+     * 
+     * @param r
+     *            the specified <code>Rectangle2D</code>
+     * @return <code>true</code> if this <code>Shape</code> and the interior
+     *         of the specified <code>Rectangle2D</code> intersect each
+     *         other; <code>false</code> otherwise.
+     */
+    public boolean intersects(Rectangle2D r) {
+        return intersects(r.getX(), r.getY(), r.getWidth(), r.getHeight());
+    }
+
+    /**
+     * Returns a <code>PathIterator</code> object that iterates along the
+     * boundary of this <code>Shape</code> and provides access to the
+     * geometry of the outline of this <code>Shape</code>.
+     * The iterator for this class is not multi-threaded safe,
+     * which means that this <code>GeneralPathX</code> class does not
+     * guarantee that modifications to the geometry of this
+     * <code>GeneralPathX</code> object do not affect any iterations of
+     * that geometry that are already in process.
+     * 
+     * @param at
+     *            an <code>AffineTransform</code>
+     * @return a new <code>PathIterator</code> that iterates along the
+     *         boundary of this <code>Shape</code> and provides access to the
+     *         geometry of this <code>Shape</code>'s outline
+     */
+    public PathIterator getPathIterator(AffineTransform at) {
+        if (isSimple) {
+            return new GeneralPathXIteratorSimple(this, at);
+        } else {
+            return new GeneralPathXIterator(this, at);
+        }
+    }
+
+    /**
+     * Returns a <code>PathIterator</code> object that iterates along the
+     * boundary of the flattened <code>Shape</code> and provides access to the
+     * geometry of the outline of the <code>Shape</code>.
+     * The iterator for this class is not multi-threaded safe,
+     * which means that this <code>GeneralPathX</code> class does not
+     * guarantee that modifications to the geometry of this
+     * <code>GeneralPathX</code> object do not affect any iterations of
+     * that geometry that are already in process.
+     * 
+     * @param at
+     *            an <code>AffineTransform</code>
+     * @param flatness
+     *            the maximum distance that the line segments used to
+     *            approximate the curved segments are allowed to deviate
+     *            from any point on the original curve
+     * @return a new <code>PathIterator</code> that iterates along the flattened
+     *         <code>Shape</code> boundary.
+     */
+    public PathIterator getPathIterator(AffineTransform at, double flatness) {
+        return new FlatteningPathIterator(getPathIterator(at), flatness);
+    }
+
+    /**
+     * Creates a new object of the same class as this object.
+     * 
+     * @return a clone of this instance.
+     * @exception OutOfMemoryError
+     *                if there is not enough memory.
+     * @see java.lang.Cloneable
+     * @since 1.2
+     */
+    public Object clone() {
+        GeneralPathX copy = new GeneralPathX();
+        copy.windingRule = windingRule;
+        copy.isSimple = isSimple;
+        for (int i = 0; i < getNumTypes(); i++) {
+            copy.pointTypes.add(pointTypes.get(i));
+        }
+        for (int i = 0; i < getNumCoords(); i++) {
+            copy.addPoint((Point) getPointAt(i).cloneGeometry());
+        }
+        return copy;
+
+    }
+
+    GeneralPathX(int windingRule, byte[] pointTypes, int numTypes,
+        double[] pointCoords, int numCoords) {
+
+        // used to construct from native
+
+        this.windingRule = windingRule;
+        this.setPointTypes(pointTypes);
+        this.setNumTypes(numTypes);
+        this.setPointCoords(pointCoords);
+        this.setNumCoords(numCoords);
+    }
+
+    public void setNumTypes(int numTypes) {
+
+    }
+
+    public int getNumTypes() {
+        return pointTypes.size();
+    }
+
+    public int setNumCoords(int numCoords) {
+        return pointCoords.size();
+    }
+
+    public int getNumCoords() {
+        return pointCoords.size();
+    }
+
+    public byte getTypeAt(int index) {
+        return ((Byte) pointTypes.get(index)).byteValue();
+    }
+
+    /**
+     * @deprecated
+     *             use the geometry methods.
+     */
+    public void setPointTypes(byte[] pointTypes) {
+        this.pointTypes.clear();
+        for (int i = 0; i < pointTypes.length; i++) {
+            this.pointTypes.add(Byte.valueOf(pointTypes[i]));
+        }
+    }
+
+    /**
+     * @deprecated
+     *             use the geometry methods.
+     */
+    public byte[] getPointTypes() {
+        byte[] bytes = new byte[pointTypes.size()];
+        for (int i = 0; i < pointTypes.size(); i++) {
+            bytes[i] = ((Byte) pointTypes.get(i)).byteValue();
+        }
+        return bytes;
+    }
+
+    /**
+     * @param pointCoords
+     * @deprecated
+     *             use the geometry methods.
+     */
+    public void setPointCoords(double[] pointCoords) {
+        this.pointCoords.clear();
+        for (int i = 0; i < pointCoords.length; i = i + 2) {
+            try {
+                addPoint(geomManager.createPoint(pointCoords[i],
+                    pointCoords[i + 1], Geometry.SUBTYPES.GEOM2D));
+            } catch (CreateGeometryException e) {
+                LOG.error("Error creating a point", e);
+            }
+        }
+    }
+
+    /**
+     * @deprecated
+     *             use the geometry methods.
+     */
+    public double[] getPointCoords() {
+        double[] doubles = new double[pointCoords.size() * 2];
+        for (int i = 0; i < getNumCoords(); i++) {
+            doubles[i * 2] = getPointAt(i).getX();
+            doubles[(i * 2) + 1] = getPointAt(i).getY();
+        }
+        return doubles;
+    }
+
+    public Point getPointAt(int index) {
+        return (Point) pointCoords.get(index);
+    }
+
+    public double[] getCoordinatesAt(int index) {
+        return getPointAt(index).getCoordinates();
+    }
+
+    /**
+     * Convertimos el path a puntos y luego le damos la vuelta.
+     */
+    public void flip() {
+        PathIterator theIterator =
+            getPathIterator(null, geomManager.getFlatness());
+        double[] theData = new double[6];
+        CoordinateList coordList = new CoordinateList();
+        Coordinate c1;
+        GeneralPathX newGp = new GeneralPathX();
+        ArrayList listOfParts = new ArrayList();
+        while (!theIterator.isDone()) {
+            // while not done
+            int type = theIterator.currentSegment(theData);
+            switch (type) {
+            case SEG_MOVETO:
+                coordList = new CoordinateList();
+                listOfParts.add(coordList);
+                c1 = new Coordinate(theData[0], theData[1]);
+                coordList.add(c1, true);
+                break;
+            case SEG_LINETO:
+                c1 = new Coordinate(theData[0], theData[1]);
+                coordList.add(c1, true);
+                break;
+
+            case SEG_CLOSE:
+                coordList.add(coordList.getCoordinate(0));
+                break;
+
+            }
+            theIterator.next();
+        }
+
+        for (int i = listOfParts.size() - 1; i >= 0; i--) {
+            coordList = (CoordinateList) listOfParts.get(i);
+            Coordinate[] coords = coordList.toCoordinateArray();
+            CoordinateArraySequence seq = new CoordinateArraySequence(coords);
+            CoordinateSequences.reverse(seq);
+            coords = seq.toCoordinateArray();
+            newGp.moveTo(coords[0].x, coords[0].y);
+            for (int j = 1; j < coords.length; j++) {
+                newGp.lineTo(coords[j].x, coords[j].y);
+            }
+        }
+        reset();
+        append(newGp.getPathIterator(null), false);
+    }
+
+    /**
+     * Check if the first part is CCW.
+     * 
+     * @return
+     */
+    public boolean isCCW() {
+        PathIterator theIterator =
+            getPathIterator(null, geomManager.getFlatness()); // polyLine.getPathIterator(null,
+                                                              // flatness);
+        double[] theData = new double[6];
+        Coordinate first = null;
+        CoordinateList coordList = new CoordinateList();
+        Coordinate c1;
+        boolean bFirst = true;
+        while (!theIterator.isDone()) {
+            // while not done
+            int type = theIterator.currentSegment(theData);
+            switch (type) {
+            case SEG_MOVETO:
+                c1 = new Coordinate(theData[0], theData[1]);
+                if (bFirst == false) // Ya tenemos la primera parte.
+                    break;
+                if (bFirst) {
+                    bFirst = false;
+                    first = c1;
+                }
+                coordList.add(c1, true);
+                break;
+            case SEG_LINETO:
+                c1 = new Coordinate(theData[0], theData[1]);
+                coordList.add(c1, true);
+                break;
+
+            }
+            theIterator.next();
+        }
+        coordList.add(first, true);
+        return CGAlgorithms.isCCW(coordList.toCoordinateArray());
+    }
+
+    /**
+     * @return the isSimple
+     */
+    public boolean isSimple() {
+        return isSimple;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/GeneralPathX.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Curve.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Curve.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Curve.java	(revision 38288)
@@ -0,0 +1,74 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.primitive;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_Curve and the GM_CurveSegment specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * Curve  is a descendent subtype of {@link Primitive} through {@link OrientablePrimitive}. 
+ * It is the basis for 1-dimensional geometry. 
+ * </p>
+ * <p>
+ * A curve is a continuous image of an open interval 
+ * and so could be written as a parameterized function such as c(t):(a, b) -> E^n where "t" is a real 
+ * parameter and E^n is Euclidean space of dimension n (usually 2 or 3, as determined by 
+ * the coordinate reference system). Any other parameterization that results in the same image curve, 
+ * traced in the same direction, such as any linear shifts and positive scales such as 
+ * e(t) = c(a + t(b-a)):(0,1) -> E^n, is an equivalent representation of the same curve.
+ * </p>
+ * <p>
+ * Curves are continuous, connected, and have a measurable length in terms of 
+ * the coordinate system. The orientation of the curve is determined by this 
+ * parameterization, and is consistent with the tangent function, which 
+ * approximates the derivative function of the parameterization and shall 
+ * always point in the "forward" direction. The parameterization of the reversal of 
+ * the curve defined by c(t):(a, b) -> E^n would be defined by a function of the 
+ * form s(t) = c(a + b - t):(a, b) - >E^n.
+ * </p>
+ * <p>
+ * In the ISO model a curve is composed of one or more curve segments. 
+ * In gvSIG a curve is not composed by curve segments: a curve is 
+ * one and only one curve segment.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface Curve extends OrientableCurve{
+	
+	/**
+	 * Sets the initial point and the end point of the curve. On this case,
+	 * the curve is a single line
+	 * @param initialPoint
+	 * The initial point
+	 * @param endPoint
+	 * The end point
+	 */
+	public void setPoints(Point initialPoint, Point endPoint);
+	
+	}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Curve.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/NullGeometry.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/NullGeometry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/NullGeometry.java	(revision 38288)
@@ -0,0 +1,37 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.primitive;
+/**
+ * This interface is used to represent the null geometry, that means
+ * a geometry that has been not set yet.
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface NullGeometry extends Primitive{
+
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/NullGeometry.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Surface.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Surface.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Surface.java	(revision 38288)
@@ -0,0 +1,79 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 Instituto de Autom�tica e Inform�tica Industrial, UPV.
+ */
+package org.gvsig.fmap.geom.primitive;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_Surface specified in <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012"
+ * >ISO 19107</a>. Surface is a subclass of {@link Primitive} and is the basis
+ * for 2-dimensional geometry. Unorientable surfaces such as the M�bius band
+ * are not allowed.
+ * <p/>
+ * <p>
+ * The orientation of a surface chooses an "up" direction through the choice of
+ * the upward normal, which, if the surface is not a cycle, is the side of the
+ * surface from which the exterior boundary appears counterclockwise. Reversal
+ * of the surface orientation reverses the curve orientation of each boundary
+ * component, and interchanges the conceptual "up" and "down" direction of the
+ * surface.
+ * </p>
+ * <p>
+ * If the surface is the boundary of a solid, the "up" direction is usually
+ * outward. For closed surfaces, which have no boundary, the up direction is
+ * that of the surface patches, which must be consistent with one another.
+ * </p>
+ * 
+ * @see <a
+ *      href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO
+ *      19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ * @author <a href="mailto:jtorres@ai2.upv.es">Jordi Torres Fabra</a>
+ */
+public interface Surface extends OrientableSurface {
+
+	/**
+	 * Sets the appearance of the Surface
+	 * 
+	 * @param app
+	 *            The appearance of the surface
+	 */
+	public void setSurfaceAppearance(SurfaceAppearance app);
+
+	/**
+	 * Gets surface appearance
+	 * 
+	 * @return the surface appearance
+	 * 
+	 */
+	public SurfaceAppearance getSurfaceAppearance();
+
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Surface.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Point.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Point.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Point.java	(revision 38288)
@@ -0,0 +1,117 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+
+package org.gvsig.fmap.geom.primitive;
+
+import org.gvsig.fmap.geom.DirectPosition;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_Point specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * It is the basic data type for a geometric object consisting 
+ * of one and only one point. 
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface Point extends Primitive {
+	
+	/**
+	 * Gets the {@link DirectPosition of a point}, that is
+	 * composed by a set of ordinates
+	 * @return
+	 * The direct position
+	 */
+	public DirectPosition getDirectPosition();
+	
+	/**
+	 * Sets a ordinate in a concrete dimension
+	 * @param dimension
+	 * The dimension to set
+	 * @param value
+	 * The value to set
+	 */
+	void setCoordinateAt(int dimension, double value);
+
+    /**
+     * Sets the point coordinates
+     * 
+     * @param value
+     *            The coordinates to set
+     * @deprecated Use {@link #setCoordinateAt(int, double))} instead
+     */
+	void setCoordinates(double[] values);
+	
+	/**
+	 * Sets the X coordinate
+	 * @param x
+	 * The value to set
+	 */
+	void setX(double x);
+	
+	/**
+	 * Sets the Y coordinate
+	 * @param y
+	 * The value to set
+	 */
+	void setY(double y);
+	
+	/**
+	 * Gets the coordinate in a concrete dimension
+	 * @param dimension
+	 * The ordinate dimension
+	 * @return
+	 * The value of the ordinate
+	 */
+	double getCoordinateAt(int dimension);
+
+    /**
+     * Returns an array of coordinates. Don't use the provided array to modify
+     * the point coordinates, but use the {@link #setCoordinateAt(int, double))}
+     * , {@link #setX(double))} or {@link #setY(double))} methods instead.
+     * 
+     * @return The point coordinates
+     * @deprecated Use {@link #getCoordinateAt(int)} instead
+     */
+	double[] getCoordinates();
+	
+	/**
+	 * Returns the X coordinate 
+	 * @return
+	 * The X coordinate
+	 */
+	double getX();
+	
+	/**
+	 * Returns the Y coordinate 
+	 * @return
+	 * The Y coordinate
+	 */
+	double getY();
+	
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Point.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/OrientableCurve.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/OrientableCurve.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/OrientableCurve.java	(revision 38288)
@@ -0,0 +1,42 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.primitive;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_OrientableCurve specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * OrientableCurve consists of a curve and an orientation inherited from 
+ * {@link OrientablePrimitive}.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface OrientableCurve extends OrientablePrimitive{
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/OrientableCurve.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Spline.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Spline.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Spline.java	(revision 38288)
@@ -0,0 +1,35 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.primitive;
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface Spline extends Curve{
+
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Spline.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/EllipticArc.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/EllipticArc.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/EllipticArc.java	(revision 38288)
@@ -0,0 +1,69 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.primitive;
+
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface EllipticArc extends Surface{
+
+	/**
+	 * Sets the values to define a ellipticArc
+	 * @param axis1Start
+	 * The point where the first axis starts.
+	 * @param axis1End
+	 * The point where the first axis ends.
+	 * @param semiAxis2Dist
+	 * @param angSt
+	 * @param angExt
+	 */
+	void setPoints(Point axis1Start, Point axis1End, double semiAxis2Dist, double angSt, double angExt);
+	
+	/**
+	 * Returns the point where the first axis starts.
+	 * @return
+	 * The point where the first axis starts.
+	 */
+	Point getAxis1Start();
+		
+	/**
+	 * Returns the point where the first axis ends.
+	 * @return
+	 * The point where the first axis ends.
+	 */
+	Point getAxis1End();
+		
+	double getAxis2Dist();
+		
+	double getAngSt();
+		
+	double getAngExt();
+		
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/EllipticArc.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/GeneralPathXIterator.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/GeneralPathXIterator.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/GeneralPathXIterator.java	(revision 38288)
@@ -0,0 +1,198 @@
+/*
+ * Created on 10-jun-2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.primitive;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.PathIterator;
+
+/*
+ * @(#)GeneralPathXIterator.java	1.21 03/01/23
+ *
+ * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
+ * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ */
+
+/**
+ * This class represents the iterator for General Paths X.
+ * It can be used to retrieve all of the elements in a GeneralPathX.
+ * The {@link GeneralPathX#getPathIterator}
+ *  method is used to create a
+ * GeneralPathXIterator for a particular GeneralPathX.
+ * The iterator can be used to iterator the path only once.
+ * Subsequent iterations require a new iterator.
+ *
+ * @see GeneralPathX
+ *
+ * @version 10 Feb 1997
+ * @author	Jim Graham
+ * @deprecated 
+ *      this class will be removed to the API. Use the
+ *      geometry methods to get the internal points.
+ */
+public class GeneralPathXIterator implements PathIterator {
+    protected int typeIdx = 0;
+    protected int pointIdx = 0;
+    protected GeneralPathX path;
+    protected AffineTransform affine;
+
+    private static final int curvesize[] = {1, 1, 2, 3, 0};
+
+    /**
+     * Constructs an iterator given a GeneralPathX.
+     * @see GeneralPathX#getPathIterator
+     */
+    public GeneralPathXIterator(GeneralPathX path) {
+        this(path, null);
+    }
+
+    /**
+     * Constructs an iterator given a GeneralPathX and an optional
+     * AffineTransform.
+     * @see GeneralPathX#getPathIterator
+     */
+    public GeneralPathXIterator(GeneralPathX path, AffineTransform at) {
+        this.path = path;
+        this.affine = at;
+    }
+
+    /**
+     * Return the winding rule for determining the interior of the
+     * path.
+     * @see PathIterator#WIND_EVEN_ODD
+     * @see PathIterator#WIND_NON_ZERO
+     */
+    public int getWindingRule() {
+        return path.getWindingRule();
+    }
+
+    /**
+     * Tests if there are more points to read.
+     * @return true if there are more points to read
+     */
+    public boolean isDone() {
+        return (typeIdx >= path.getNumTypes());
+    }
+
+    /**
+     * Moves the iterator to the next segment of the path forwards
+     * along the primary direction of traversal as long as there are
+     * more points in that direction.
+     */
+    public void next() {        
+        int type = path.getTypeAt(typeIdx++);
+        pointIdx += curvesize[type];
+    }
+
+    /**
+     * Returns the coordinates and type of the current path segment in
+     * the iteration.
+     * The return value is the path segment type:
+     * SEG_MOVETO, SEG_LINETO, SEG_QUADTO, SEG_CUBICTO, or SEG_CLOSE.
+     * A float array of length 6 must be passed in and may be used to
+     * store the coordinates of the point(s).
+     * Each point is stored as a pair of float x,y coordinates.
+     * SEG_MOVETO and SEG_LINETO types will return one point,
+     * SEG_QUADTO will return two points,
+     * SEG_CUBICTO will return 3 points
+     * and SEG_CLOSE will not return any points.
+     * @see PathIterator#SEG_MOVETO
+     * @see PathIterator#SEG_LINETO
+     * @see PathIterator#SEG_QUADTO
+     * @see PathIterator#SEG_CUBICTO
+     * @see PathIterator#SEG_CLOSE
+     */
+    public int currentSegment(float[] coords) {
+        int type = path.getTypeAt(typeIdx);
+        int numPoints = curvesize[type];
+        int offset = 0;
+        for (int i=0 ; i<numPoints ; i++){
+            double[] coordinates = path.getCoordinatesAt(pointIdx + i);       
+            if (affine != null) {
+                affine.transform(coordinates, 0, coords, offset, 1);
+            } else {
+                coords[offset] = (float) coordinates[0];
+                coords[offset+1] = (float) coordinates[1];              
+            }
+            offset = offset + 2;
+        }
+        return type;
+    }
+
+    /**
+     * Returns the coordinates and type of the current path segment in
+     * the iteration.
+     * The return value is the path segment type:
+     * SEG_MOVETO, SEG_LINETO, SEG_QUADTO, SEG_CUBICTO, or SEG_CLOSE.
+     * A double array of length 6 must be passed in and may be used to
+     * store the coordinates of the point(s).
+     * Each point is stored as a pair of double x,y coordinates.
+     * SEG_MOVETO and SEG_LINETO types will return one point,
+     * SEG_QUADTO will return two points,
+     * SEG_CUBICTO will return 3 points
+     * and SEG_CLOSE will not return any points.
+     * @see PathIterator#SEG_MOVETO
+     * @see PathIterator#SEG_LINETO
+     * @see PathIterator#SEG_QUADTO
+     * @see PathIterator#SEG_CUBICTO
+     * @see PathIterator#SEG_CLOSE
+     */
+    public int currentSegment(double[] coords) {
+        int type = path.getTypeAt(typeIdx);
+        int numPoints = curvesize[type];       
+        int offset = 0;
+        for (int i=0 ; i<numPoints ; i++){
+            double[] coordinates = path.getCoordinatesAt(pointIdx + i);        
+            if (affine != null) {            
+                affine.transform(coordinates, 0, coords, offset, 1);
+            } else {           
+                System.arraycopy(coordinates, 0, coords, offset, 2);
+            }
+            offset = offset + 2;
+        }
+        return type;
+    } 
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/GeneralPathXIterator.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/OrientableSurface.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/OrientableSurface.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/OrientableSurface.java	(revision 38288)
@@ -0,0 +1,42 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.primitive;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_OrientableSurface specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * OrientableSurface consists of a surface and an orientation inherited from 
+ * {@link OrientablePrimitive}.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface OrientableSurface extends OrientablePrimitive {
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/OrientableSurface.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Ellipse.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Ellipse.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Ellipse.java	(revision 38288)
@@ -0,0 +1,76 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.primitive;
+
+
+/**
+ * <p>
+ * An ellipse is the finite or bounded case of a conic section, 
+ * the geometric shape that results from cutting a circular conical 
+ * or cylindrical surface with an oblique plane (the other two cases being 
+ * the parabola and the hyperbola). It is also the locus of all points of 
+ * the plane whose distances to two fixed points add to the same constant.
+ * </p>
+ * @see <a href="http://en.wikipedia.org/wiki/Ellipse">Full definition from Wikipedia</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface Ellipse extends Surface {
+		
+	/**
+	 * Sets the values to define a ellipse.
+	 * @param axis1Start
+	 * The point where the first axis starts.
+	 * @param axis1End
+	 * The point where the first axis ends.
+	 * @param axis2Length
+	 * The length of the second axis.
+	 */
+	void setPoints(Point axis1Start, Point axis1End, double axis2Length);	
+	
+	/**
+	 * Returns the point where the first axis starts.
+	 * @return
+	 * The point where the first axis starts.
+	 */
+	Point getAxis1Start();
+	
+	/**
+	 * Returns the point where the first axis ends.
+	 * @return
+	 * The point where the first axis ends.
+	 */
+	Point getAxis1End();
+	
+	/**
+	 * Returns the length of the second axis.
+	 * @return
+	 * The length of the second axis.
+	 */
+	double getAxis2Dist();
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Ellipse.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Appearance.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Appearance.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Appearance.java	(revision 38288)
@@ -0,0 +1,178 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 Instituto de Autom�tica e Inform�tica Industrial, UPV.
+ */
+
+package org.gvsig.fmap.geom.primitive;
+
+import java.awt.Color;
+import java.awt.Image;
+
+/**
+ * This interface serves to set the appearance of a Solid in a CityGML model.
+ * 
+ * @author <a href="mailto:jtorres@ai2.upv.es">Jordi Torres Fabra</a>
+ * 
+ */
+
+public interface Appearance {
+
+	public interface Material {
+
+	
+
+		public static final class Face {
+			public static final int FRONT = 0;
+			public static final int BACK = 1;
+			public static final int FRONT_AND_BACK = 2;
+		}
+		/**
+		 * Gets the face to apply the material
+		 * @return the face
+		 */
+		public Face getFace();
+		
+		/**
+		 * Sets the face where the material will be applied
+		 * @param face the face
+		 */
+		public void setFace(Face face);
+		/**
+		 * Get the ambient color of the material
+		 * @return the ambien color
+		 */
+		public Color getAmbient();
+		/**
+		 * Set the ambient color of the material
+		 * @param ambient the ambien color
+		 */
+		public void setAmbient(Color ambient);
+		/**
+		 * Get the diffuse color of the material
+		 * @return the diffuse color
+		 */
+		public Color getDiffuse();
+		/**
+		 * Set the diffuse color of the material
+		 * @param diffuse the diffuse color
+		 */
+		public void setDiffuse(Color diffuse);
+		/**
+		 * Get the specular color of the material 
+		 * @return the specular color
+		 */
+		public Color getSpecular();
+		/**
+		 * Set the specular color of the material
+		 * @param specular the specular color
+		 */
+		public void setSpecular(Color specular);
+		/**
+		 * Get the emissive color of the material
+		 * @return	the emissive color
+		 */
+		public Color getEmission();
+		/**
+		 * Set the emissive color of the material
+		 * @param emission the emissive color 
+		 */
+		public void setEmission(Color emission);
+		/**
+		 * Get the shininess of the material
+		 * @return a float representing the shininess
+		 */
+		public float getShininess();
+		/**
+		 * Set the shininess of the material
+		 * @param shininess a float representing the shininess
+		 */
+		public void setShininess(float shininess);
+
+	}
+
+	/**
+	 * Enables/disables the blending in a solid
+	 * 
+	 * @param value
+	 *            the value to set
+	 */
+	public void setEnabledBlending(boolean value);
+
+	/**
+	 * Gets if blending is enabled/disabled
+	 * 
+	 * @return a boolean representing enabled(true)/disabled(false)
+	 */
+	public boolean getEnabledBlending();
+
+	/**
+	 * Enables disables lighting in a solid
+	 * 
+	 * @param value
+	 *            the value to set
+	 */
+	public void setEnabledLighting(boolean value);
+
+	/**
+	 * Gets if lighting is enabled/disabled
+	 * 
+	 * @return a boolean representing enabled(true)/disabled(false)
+	 */
+	public boolean getEnabledLighting();
+
+	/**
+	 * Sets the material of a solid
+	 * 
+	 * @param mat
+	 *            the material to set
+	 */
+	public void setMaterial(Material mat);
+
+	/**
+	 * Gets the material of a Solid
+	 * 
+	 * @return the material
+	 */
+	public Material getMaterial();
+
+	/**
+	 * Add a texture to the whole Solid
+	 * 
+	 * @param img
+	 *            the texture
+	 * @param stage
+	 *            the texture stage
+	 */
+	public void addTexture(Image img, int stage);
+
+	/**
+	 * Get the texure of a solid in a concrete stage
+	 * 
+	 * @param stage
+	 *            the concrete stage
+	 * @return the texture
+	 */
+	public Image getTexture(int stage);
+
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Circle.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Circle.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Circle.java	(revision 38288)
@@ -0,0 +1,83 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.primitive;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_Circle specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * Same as Arc, but closed to form a full circle. The "start" and "end" points are equal.
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface Circle extends Surface {
+	
+	/**
+	 * Sets the two values to define a circle.
+	 * @param center
+	 * The center point of the circle.
+	 * @param radious
+	 * A point that is used to calculate the radius.
+	 */	
+	void setPoints(Point center, Point radious);		
+	
+	/**
+	 * Sets the two values to define a circle.
+	 * @param center
+	 * The center point of the circle.
+	 * @param radious
+	 * The radius of the circle.
+	 */	
+	void setPoints(Point center, double radious);	
+	
+	/**
+	 * Sets the values to define a circle from three points. The circle
+	 * will be inside or the area defined by the three points.
+	 * @param p1
+	 * First point
+	 * @param p2
+	 * Second point 
+	 * @param p3
+	 * Third point
+	 */
+	void setPoints(Point p1, Point p2, Point p3);
+	
+	/**
+	 * Returns the center of the circle.
+	 * @return
+	 * The center of the circle.
+	 */
+	Point getCenter();
+	
+	/**
+	 * Returns the radius of the circle
+	 * @return
+	 * The radius of the circle
+	 */
+	double getRadious();
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/EnvelopeNotInitializedException.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/EnvelopeNotInitializedException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/EnvelopeNotInitializedException.java	(revision 38288)
@@ -0,0 +1,47 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.primitive;
+
+import org.gvsig.tools.exception.BaseException;
+import org.gvsig.tools.exception.BaseRuntimeException;
+
+
+/**
+ * @author gvSIG Team
+ * @version $Id$
+ *
+ */
+public class EnvelopeNotInitializedException extends BaseRuntimeException{
+    private static final long serialVersionUID = -229548310440742973L;
+
+    private static final String KEY = "_EnvelopeNotInitializedException";
+
+    private static final String MESSAGE =
+            "The envelope has not been initialized";
+    
+    /**
+     * @param exception
+     */
+    public EnvelopeNotInitializedException() {
+        super(MESSAGE, KEY, serialVersionUID);       
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/EnvelopeNotInitializedException.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/PointIterator.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/PointIterator.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/PointIterator.java	(revision 38288)
@@ -0,0 +1,132 @@
+/*
+ * Created on 25-nov-2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+ /* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.primitive;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+
+import org.gvsig.fmap.geom.Geometry;
+
+/**
+ * A iterator to retrieve all the points of a 
+ * {@link Geometry}
+ *
+ * @author FJP
+ */
+public class PointIterator extends GeneralPathXIterator {
+	/** Transform applied on the coordinates during iteration */
+	private AffineTransform at;
+
+	/** The point we are going to provide when asked for coordinates */
+	private Point2D p;
+
+	/** True when the point has been read once */
+	private boolean done;
+
+	/**
+	 * Creates a new PointIterator object.
+	 *
+	 * @param p The polygon
+	 * @param at The affine transform applied to coordinates during iteration
+	 */
+	public PointIterator(Point2D p, AffineTransform at) {
+		super(new GeneralPathX());
+		if (at == null) {
+			at = new AffineTransform();
+		}
+
+		this.at = at;
+		this.p = p;
+		done = false;
+	}
+
+	/**
+	 * Return the winding rule for determining the interior of the path.
+	 *
+	 * @return <code>WIND_EVEN_ODD</code> by default.
+	 */
+	public int getWindingRule() {
+		return PathIterator.WIND_EVEN_ODD;
+	}
+
+	/**
+	 * @see java.awt.geom.PathIterator#next()
+	 */
+	public void next() {
+		done = true;
+	}
+
+	/**
+	 * @see java.awt.geom.PathIterator#isDone()
+	 */
+	public boolean isDone() {
+		return done;
+	}
+
+	/**
+	 * @see java.awt.geom.PathIterator#currentSegment(double[])
+	 */
+	public int currentSegment(double[] coords) {
+		coords[0] = p.getX();
+		coords[1] = p.getY();
+		at.transform(coords, 0, coords, 0, 1);
+
+		return PathIterator.SEG_MOVETO;
+	}
+
+	/* (non-Javadoc)
+	 * @see java.awt.geom.PathIterator#currentSegment(float[])
+	 */
+	public int currentSegment(float[] coords) {
+		coords[0] = (float) p.getX();
+		coords[1] = (float) p.getY();
+		at.transform(coords, 0, coords, 0, 1);
+
+		return PathIterator.SEG_MOVETO;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/PointIterator.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Arc.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Arc.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Arc.java	(revision 38288)
@@ -0,0 +1,90 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.primitive;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_Arc specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * A Arc is defined by 3 points, and consists of the arc of the circle determined by the 3 points, 
+ * starting at the first, passing through the second and terminating at the third. 
+ * If the 3 points are co-linear, then the arc shall be a 3-point line string, and will 
+ * not be able to return values for center, radius, start angle and end angle. 
+ * </p> 
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface Arc extends Curve {
+		
+	/**
+	 * Sets the three points to define an arc.
+	 * @param midPoint
+	 * The middle point of an arc.
+	 * @param startPoint
+	 * The start point of an arc.
+	 * @param endPoint
+	 * The end point of an arc.
+	 */
+	void setPoints(Point midPoint, Point startPoint, Point endPoint);
+	
+	/**
+	 * Sets the values to define an arc.
+	 * @param center
+	 * The center of the arc.
+	 * @param radius
+	 * The radius.
+	 * @param initAngle
+	 * The start angle of the arc.
+	 * @param angleExt
+	 * The end angle of the arc.
+	 */
+	void setPoints (Point center, double radius, double startAngle, double endAngle );
+	
+	/**
+	 * Return the first point that has been used to create the arc.
+	 * @return
+	 * The first point of the arc.
+	 */
+	Point getInitPoint();
+		
+	/**
+	 * Return the end point that has been used to create the arc.
+	 * @return
+	 * The end point of the arc.
+	 */
+	Point getEndPoint();
+	
+	/**
+	 * Return the center point that has been used to create the arc.
+	 * @return
+	 * The center point of the arc.
+	 */
+	Point getCenterPoint();
+		
+		
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/GeneralPathXIteratorSimple.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/GeneralPathXIteratorSimple.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/GeneralPathXIteratorSimple.java	(revision 38288)
@@ -0,0 +1,195 @@
+/*
+ * Created on 10-jun-2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.primitive;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.PathIterator;
+
+/*
+ * @(#)GeneralPathXIterator.java	1.21 03/01/23
+ *
+ * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
+ * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ */
+
+/**
+ * This class represents the iterator for General Paths X.
+ * It can be used to retrieve all of the elements in a GeneralPathX.
+ * The {@link GeneralPathX#getPathIterator}
+ *  method is used to create a
+ * GeneralPathXIterator for a particular GeneralPathX.
+ * The iterator can be used to iterator the path only once.
+ * Subsequent iterations require a new iterator.
+ *
+ * @see GeneralPathX
+ *
+ * @version 10 Feb 1997
+ * @author	Jim Graham
+ * @deprecated 
+ *      this class will be removed to the API. Use the
+ *      geometry methods to get the internal points.
+ */
+public class GeneralPathXIteratorSimple implements PathIterator {
+    protected int typeIdx = 0;
+    protected int pointIdx = 0;
+    protected GeneralPathX path;
+    protected AffineTransform affine;
+
+    private static final int curvesize[] = {1, 1, 2, 3, 0};
+
+    /**
+     * Constructs an iterator given a GeneralPathX.
+     * @see GeneralPathX#getPathIterator
+     */
+    public GeneralPathXIteratorSimple(GeneralPathX path) {
+        this(path, null);
+    }
+
+    /**
+     * Constructs an iterator given a GeneralPathX and an optional
+     * AffineTransform.
+     * @see GeneralPathX#getPathIterator
+     */
+    public GeneralPathXIteratorSimple(GeneralPathX path, AffineTransform at) {
+        this.path = path;
+        this.affine = at;
+    }
+
+    /**
+     * Return the winding rule for determining the interior of the
+     * path.
+     * @see PathIterator#WIND_EVEN_ODD
+     * @see PathIterator#WIND_NON_ZERO
+     */
+    public int getWindingRule() {
+        return path.getWindingRule();
+    }
+
+    /**
+     * Tests if there are more points to read.
+     * @return true if there are more points to read
+     */
+    public boolean isDone() {
+        return (typeIdx >= path.getNumTypes());
+    }
+
+    /**
+     * Moves the iterator to the next segment of the path forwards
+     * along the primary direction of traversal as long as there are
+     * more points in that direction.
+     */
+    public void next() {        
+        int type = path.getTypeAt(typeIdx++);
+        pointIdx += curvesize[type];
+    }
+
+    /**
+     * Returns the coordinates and type of the current path segment in
+     * the iteration.
+     * The return value is the path segment type:
+     * SEG_MOVETO, SEG_LINETO, SEG_QUADTO, SEG_CUBICTO, or SEG_CLOSE.
+     * A float array of length 6 must be passed in and may be used to
+     * store the coordinates of the point(s).
+     * Each point is stored as a pair of float x,y coordinates.
+     * SEG_MOVETO and SEG_LINETO types will return one point,
+     * SEG_QUADTO will return two points,
+     * SEG_CUBICTO will return 3 points
+     * and SEG_CLOSE will not return any points.
+     * @see PathIterator#SEG_MOVETO
+     * @see PathIterator#SEG_LINETO
+     * @see PathIterator#SEG_QUADTO
+     * @see PathIterator#SEG_CUBICTO
+     * @see PathIterator#SEG_CLOSE
+     */
+    public int currentSegment(float[] coords) {
+        int type = path.getTypeAt(typeIdx);
+        if (type != PathIterator.SEG_CLOSE){
+            double[] coordinates = path.getCoordinatesAt(pointIdx);       
+            if (affine != null) {
+                affine.transform(coordinates, 0,
+                    coords, 0,
+                    1);
+            } else {
+                coords[0] = (float) coordinates[0];
+                coords[1] = (float) coordinates[1];              
+            }
+        }
+        return type;
+    }
+
+    /**
+     * Returns the coordinates and type of the current path segment in
+     * the iteration.
+     * The return value is the path segment type:
+     * SEG_MOVETO, SEG_LINETO, SEG_QUADTO, SEG_CUBICTO, or SEG_CLOSE.
+     * A double array of length 6 must be passed in and may be used to
+     * store the coordinates of the point(s).
+     * Each point is stored as a pair of double x,y coordinates.
+     * SEG_MOVETO and SEG_LINETO types will return one point,
+     * SEG_QUADTO will return two points,
+     * SEG_CUBICTO will return 3 points
+     * and SEG_CLOSE will not return any points.
+     * @see PathIterator#SEG_MOVETO
+     * @see PathIterator#SEG_LINETO
+     * @see PathIterator#SEG_QUADTO
+     * @see PathIterator#SEG_CUBICTO
+     * @see PathIterator#SEG_CLOSE
+     */
+    public int currentSegment(double[] coords) {
+        int type = path.getTypeAt(typeIdx);
+        if (type != PathIterator.SEG_CLOSE){
+            double[] coordinates = path.getCoordinatesAt(pointIdx);
+            if (affine != null) {            
+                affine.transform(coordinates, 0, coords, 0, 1);
+            } else {           
+                coords[0] = coordinates[0];
+                coords[1] = coordinates[1];      
+            }  
+        }
+        return type;
+    } 
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/GeneralPathXIteratorSimple.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/FShape.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/FShape.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/FShape.java	(revision 38288)
@@ -0,0 +1,85 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.primitive;
+
+import java.awt.Shape;
+import java.awt.geom.AffineTransform;
+import java.io.Serializable;
+
+import org.cresques.cts.ICoordTrans;
+import org.gvsig.fmap.geom.handler.Handler;
+
+/**
+ * <p>The interface <code>FShape</code> extends <code>Shape</code> adding shape types, and allowing
+ *  to work with it as a geometry.</p>
+ *  
+ *  @deprecated
+ */
+public interface FShape extends Shape, Serializable {
+	/**
+	 * Gets the geometry type of this shape.
+	 *
+	 * @return int the geometry type of this shape.
+	 */
+	public int getShapeType();
+	
+	/**
+	 * Creates and returns a shape equal and independent of this one.
+	 *
+	 * @return the new shape.
+	 */
+	public FShape cloneFShape();
+	/**
+	 * Re-projects this shape using transformation coordinates. 
+	 *
+	 * @param ct the transformation coordinates
+	 */
+	public void reProject(ICoordTrans ct);
+
+	/**
+	 * Returns the handlers they utilized to stretch the geometries.
+	 *
+	 * @return Handlers the handlers used to stretch the geometries
+	 */
+	public Handler[] getStretchingHandlers();
+
+	/**
+	 * Returns the handlers used to select the geometries.
+	 *
+	 * @return Handlers the handlers used to select the geometries
+	 */
+	public Handler[] getSelectHandlers();
+	/**
+	 * Executes a 2D transformation on this shape, using six parameters.
+	 * 
+	 * @param at object that allows execute the affine transformation
+	 * 
+	 * @see AffineTransform
+	 */
+	public void transform(AffineTransform at);
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/FShape.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Primitive.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Primitive.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Primitive.java	(revision 38288)
@@ -0,0 +1,53 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+
+package org.gvsig.fmap.geom.primitive;
+
+import org.gvsig.fmap.geom.Geometry;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_Object specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * Primitive is the abstract root class of the geometric primitives.
+ * Its main purpose is to define the basic "boundary" operation 
+ * that ties the primitives in each dimension together. 
+ * </p>
+ * <p>
+ * A geometric primitive is a geometric object that is not 
+ * decomposed further into other primitives in the system. 
+ * This includes curves and surfaces, even though they are 
+ * composed of curve segments and surface patches, respectively.
+ * This composition is a strong aggregation: curve segments and 
+ * surface patches cannot exist outside the context of a primitive.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface Primitive extends Geometry {
+	
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Primitive.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/SurfaceAppearance.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/SurfaceAppearance.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/SurfaceAppearance.java	(revision 38288)
@@ -0,0 +1,303 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *  osgVP. OSG Virtual Planets.
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+/*
+ * AUTHORS (In addition to CIT):
+ * 2008 Instituto de Autom�tica e Inform�tica Industrial, UPV.
+ */
+package org.gvsig.fmap.geom.primitive;
+
+/**
+ * This interface serves to set the surface appearance characteristics like textures 
+ * materials or colors.
+ *  
+ */
+
+/**
+ * 
+ * @author Jordi Torres Fabra <jtorres@ai2.upv.es>
+ * 
+ */
+
+public interface SurfaceAppearance extends Appearance {
+
+	public static final class AttributeBinding {
+		public static final int BIND_OFF = 0;
+		public static final int BIND_OVERALL = 1;
+		public static final int BIND_PER_PRIMITIVE_SET = 2;
+		public static final int BIND_PER_PRIMITIVE = 3;
+		public static final int BIND_PER_VERTEX = 4;
+	}
+
+	public static class PrimitiveMode {
+		public static final int POINTS = 0;
+		public static final int LINES = 1;
+		public static final int LINE_STRIP = 3;
+		public static final int LINE_LOOP = 2;
+		public static final int TRIANGLES = 4;
+		public static final int TRIANGLE_STRIP = 5;
+		public static final int TRIANGLE_FAN = 6;
+		public static final int QUADS = 7;
+		public static final int QUAD_STRIP = 8;
+		public static final int POLYGON = 9;
+	}
+
+	public static class PrimitiveType {
+		public static final int PrimitiveType = 0;
+		public static final int DrawArrays = 1;
+		public static final int DrawArrayLengths = 2;
+		public static final int DrawElementsUInt = 5;
+	}
+
+	/**
+	 * Add a normal vector to the normal array of the surface
+	 * 
+	 * @param p
+	 */
+	public void addNormal(Point p);
+
+	/**
+	 * Sets normal vector in a concrete position.
+	 * 
+	 * @param position
+	 *            the array position to set the normal vector
+	 * @param p
+	 *            the normal vector to set (dimension 3)
+	 * 
+	 */
+	public void setNormalAt(int position, Point p);
+
+	/**
+	 * Gets the normal vector in a concrete position
+	 * 
+	 * @param position
+	 *            the direct position
+	 * @return the normal vector
+	 * 
+	 */
+	public Point getNormalAt(int position);
+
+	/**
+	 * Get the number of normals in the surface
+	 * 
+	 * @return an integer representing the number of normals
+	 */
+	public int getNumNormals();
+
+	/**
+	 * Remove normal vector in a concrete position
+	 * 
+	 * @param position
+	 *            the direct position
+	 */
+	public void removeNormal(int position);
+
+	/**
+	 * Sets the binding of normal array to Surface Geometry.
+	 * 
+	 * @param binding
+	 *            Value of the binding
+	 * 
+	 */
+	public void setNormalBinding(AttributeBinding binding);
+
+	/**
+	 * Gets the binding of normal array
+	 * 
+	 * @return Value representing attributeBinding
+	 * 
+	 */
+	public AttributeBinding getNormalBinding();
+
+	/**
+	 * Adds a texture coordinate to TexCoord array in Surface
+	 * 
+	 * @param p
+	 *            the texture coordinate (dimension 2)
+	 */
+
+	public void addTextureCoord(Point p);
+
+	/**
+	 * Set texture coordinate at concrete position
+	 * 
+	 * @param position
+	 *            the concrete position
+	 * @param p
+	 *            the texture coordinate value
+	 */
+	public void setTextureCoordAt(int position, Point p);
+
+	/**
+	 * Get texture coordinate at concrete position
+	 * 
+	 * @param position
+	 *            the concrete position
+	 * @return the texure coordinate (dimension 2)
+	 */
+	public Point getTextureCoordAt(int position);
+
+	/**
+	 * Gets the number of texture coordinates in the texcoord array of the
+	 * surface
+	 * 
+	 * @return the number of texture coordinates
+	 */
+	public int getNumTextureCoords();
+
+	/**
+	 * Remove texture coordinate at concrete position
+	 * 
+	 * @param position
+	 */
+	public void removeTextureCoord(int position);
+
+	/**
+	 * Add a index in the index array of the surface
+	 * 
+	 * @param element
+	 *            the index to add
+	 */
+	public void addIndex(int element);
+
+	/**
+	 * Get the index element at concrete position
+	 * 
+	 * @param position
+	 *            the concrete position
+	 * @return teh index element
+	 */
+	public int getIndexAt(int position);
+
+	/**
+	 * Set an index element in a concrete position
+	 * 
+	 * @param position
+	 *            the concrete position
+	 * @param element
+	 *            the index element
+	 */
+	public void setIndexAt(int position, int element);
+
+	/**
+	 * Remove index element at concrete position
+	 * 
+	 * @param position
+	 *            the concrete position
+	 */
+	public void removeIndex(int position);
+
+	/**
+	 * Get number of indices in the index array of the surface
+	 * 
+	 * @return the number of indices
+	 */
+	public int getNumIndices();
+
+	/**
+	 * Get the primitive mode of the surface
+	 * 
+	 * @return the primitive mode
+	 */
+	public PrimitiveMode getPrimitiveMode();
+
+	/**
+	 * Sets the primitive mode of the surface
+	 * 
+	 * @param mode
+	 *            the primitive mode
+	 */
+	public void setPrimitiveMode(PrimitiveMode mode);
+
+	/**
+	 * Get the primitive type of the surface
+	 * 
+	 * @return the primitive type
+	 */
+	public PrimitiveType getPrimitiveType();
+
+	/**
+	 * Set the primitive type of the surface
+	 * 
+	 * @param type
+	 *            the primitive type
+	 */
+	public void setPrimitiveType(PrimitiveType type);
+
+	/**
+	 * Add a color to teh color array of the surface
+	 * 
+	 * @param p
+	 *            the color(dimension 4 rgba)
+	 */
+	public void addColor(Point p);
+
+	/**
+	 * Set a color in a concrete position of the color array
+	 * 
+	 * @param position
+	 *            the concrete position
+	 * @param p
+	 *            the color(dimension 4 rgba)
+	 */
+	public void setColorAt(int position, Point p);
+
+	/**
+	 * Get the color at concrete position
+	 * 
+	 * @param position
+	 *            the concrete position
+	 * @return the color
+	 */
+	public Point getColorAt(int position);
+
+	/**
+	 * Remove color in a concrete position
+	 * 
+	 * @param position
+	 *            the concrete position
+	 */
+	public void removeColor(int position);
+
+	/**
+	 * Get the number of colors in the color array of the surface
+	 * 
+	 * @return
+	 */
+	public int getNumColors();
+
+	/**
+	 * Sets the colorbinding of the color array of the surface
+	 * 
+	 * @param binding
+	 *            attribute binding representing color binding
+	 */
+	public void setColorBinding(AttributeBinding binding);
+
+	/**
+	 * Get the color binding of the color array of the surface
+	 * 
+	 * @return Attribute binding representing color binding
+	 */
+	public AttributeBinding getColorBinding();
+
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Solid.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Solid.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Solid.java	(revision 38288)
@@ -0,0 +1,97 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 Instituto de Autom�tica e Inform�tica Industrial, UPV.
+ */
+package org.gvsig.fmap.geom.primitive;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_Solid specified in <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012"
+ * >ISO 19107</a>. Solid is a subclass of {@link Primitive}, and is the basis
+ * for 3-dimensional geometry. The extent of a solid is defined by the boundary
+ * surfaces.
+ * </p>
+ * 
+ * @see <a
+ *      href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO
+ *      19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ * @author <a href="mailto:jtorres@ai2.upv.es">Jordi Torres Fabra</a>
+ * @author <a href="mailto:rgaitan@ai2.upv.es">Rafa Gait&aacute;n Linares</a>
+ */
+public interface Solid extends Primitive {
+
+	/**
+	 * Add a surface to the Solid
+	 * 
+	 * @param surface
+	 *            the surface to add
+	 */
+	public void addSurface(Surface surface);
+
+	/**
+	 * Remove surface from solid at concrete position
+	 * 
+	 * @param position
+	 *            the concrete position
+	 */
+	public void removeSurface(int position);
+
+	/**
+	 * Get the number of surfaces in a solid
+	 * 
+	 * @return the number of surfaces
+	 */
+	public int getNumSurfaces();
+
+	/**
+	 * Gets a surface in a concrete position
+	 * 
+	 * @param position
+	 *            the concrete position
+	 * @return the surface
+	 */
+	public Surface getSurfaceAt(int position);
+
+	/**
+	 * Sets the appearance of a Solid
+	 * 
+	 * @param app
+	 *            the appearance
+	 */
+	public void setAppearance(Appearance app);
+
+	/**
+	 * Gets the appearance of a solid
+	 * 
+	 * @return
+	 */
+	public Appearance getAppearance();
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/primitive/Solid.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/Geometry.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/Geometry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/Geometry.java	(revision 38288)
@@ -0,0 +1,639 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom;
+
+import java.awt.Shape;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Rectangle2D;
+import java.io.Serializable;
+
+import org.cresques.cts.ICoordTrans;
+
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.geom.operation.GeometryOperationContext;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_Object specified in <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012"
+ * >ISO 19107</a>. It is the root class of the geometric object taxonomy and
+ * supports interfaces common to all geographically referenced geometric
+ * objects.
+ * </p>
+ * <p>
+ * Geometry instances are sets of direct positions in a particular coordinate
+ * reference system. A Geometry can be regarded as an infinite set of points
+ * that satisfies the set operation interfaces for a set of direct positions.
+ * </p>
+ * <p>
+ * A geometric object shall be a combination of a coordinate geometry and a
+ * coordinate reference system. In all of the operations, all geometric
+ * calculations shall be done in the coordinate reference system of the first
+ * geometric object accessed, which is normally the object whose operation is
+ * being invoked. Returned objects shall be in the coordinate reference system
+ * in which the calculations are done unless explicitly stated otherwise.
+ * </p>
+ * <p>
+ * This class extends of the {@link Shape} class by historical reasons but this
+ * inheritance will disappear in future versions.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012"
+ *      >ISO 19107< /a>
+ */
+public interface Geometry extends Shape, Serializable, Comparable {
+
+	/**
+	 * Predefined geometry types in the model.
+	 */
+	public interface TYPES {
+
+		/**
+		 * Any geometry.
+		 */
+
+		public final static int GEOMETRY = 0;
+
+		/**
+		 * A geometric element that has zero dimensions and a location
+		 * determinable by an ordered set of coordinates.
+		 */
+		public final static int POINT = 1;
+
+		/**
+		 * A straight or curved geometric element that is generated by a moving
+		 * point and that has extension only along the path of the point.
+		 */
+		public final static int CURVE = 2;
+
+		/**
+		 * A closed plane figure bounded by straight lines.
+		 */
+		public final static int SURFACE = 3;
+
+		/**
+		 * Solids in 3D.
+		 */
+		public final static int SOLID = 4;
+
+      	/**
+		 * A set that can contain points, lines and polygons. This is usual in
+		 * <i>CAD</i> layers <i>(dxf, dgn, dwg)</i>.
+		 */
+		public final static int AGGREGATE = 6;
+		/**
+		 * A set of points.
+		 */
+		public final static int MULTIPOINT = 7;
+
+		/**
+		 * A set of lines.
+		 */
+		public final static int MULTICURVE = 8;
+
+		/**
+		 * A set of polygons.
+		 */
+		public final static int MULTISURFACE = 9;
+
+		/**
+		 * A set of solids.
+		 */
+		public final static int MULTISOLID = 10;
+
+		/**
+		 * A closed plane curve every point of which is equidistant from a fixed
+		 * point within the curve.
+		 */
+		public final static int CIRCLE = 11;
+
+		/**
+		 * A continuous portion (as of a circle or ellipse) of a curved line.
+		 */
+		public final static int ARC = 12;
+
+		/**
+		 * A closed plane curve generated by a point moving in such a way that
+		 * the sums of its distances from two fixed points is a constant : a
+		 * plane section of a right circular cone that is a closed curve.
+		 */
+		public final static int ELLIPSE = 13;
+
+		public final static int SPLINE = 14;
+
+		public final static int ELLIPTICARC = 15;
+
+		/**
+		 * NO DATA geometry.
+		 */
+		public final static int NULL = 16;
+	}
+
+	public interface DIMENSIONS {
+		public final static int X = 0;
+		public final static int Y = 1;
+		public final static int Z = 2;
+	}
+
+	/**
+	 * The subtype of a geometry is related with the dimension of the geometry,
+	 * that is a combination between the spatial dimension (2D, 2ZD, 3D) and the
+	 * M coordinate or "measure".
+	 * 
+	 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+	 */
+	public interface SUBTYPES {
+
+		/**
+		 * Geometries with two dimensions.
+		 */
+		public final static int GEOM2D = 0;
+
+		/**
+		 * Geometries with three dimensions.
+		 */
+		public final static int GEOM3D = 1;
+
+		/**
+		 * Geometries with two dimensions and with the M coordinate.
+		 */
+		public final static int GEOM2DM = 2;
+
+		/**
+		 * Geometries with three dimensions and with the M coordinate.
+		 */
+		public final static int GEOM3DM = 3;
+
+		/**
+		 * The subtype us unknown.
+		 */
+		public final static int UNKNOWN = 4;
+	}
+
+	/**
+	 * Initial value for new geometry types (it must not overlap with the basic
+	 * ones defined in TYPES).
+	 */
+	public static final int EXTENDED_GEOMTYPE_OFFSET = 17;
+
+	/**
+	 * Initial value for new geometry subtypes (it must not overlap with the
+	 * basic ones defined in SUBTYPES).
+	 */
+	public static final int EXTENDED_GEOMSUBTYPE_OFFSET = 6;
+
+	public interface OPERATIONS {
+		public final static String CONVERTTOWKT = "toWKT";
+		public final static String CONVERTTOWKB = "toWKB";
+		public final static String BUFFER = "buffer";
+		public final static String DISTANCE = "Distance";
+		public final static String CONTAINS = "Contains";
+		public final static String OVERLAPS = "OVERLAPS";
+		public final static String CONVEXHULL = "ConvexHull";
+		public final static String COVERS = "Covers";
+		public final static String CROSSES = "Crosses";
+		public final static String DIFFERENCE = "Difference";
+		public final static String DISJOIN = "Disjoin";
+		public final static String INTERSECTION = "Intersaction";
+		public final static String INTERSECTS = "Intersects";
+		public final static String TOUCHES = "Touches";
+		public final static String UNION = "Union";
+		public final static String WITHIN = "Within";
+		public final static String COVEREDBY = "CoveredBy";
+	}
+
+	public static int BEST = 0;
+	/**
+	 * North.
+	 */
+	public static int N = 1;
+
+	/**
+	 * North - East.
+	 */
+	public static int NE = 2;
+
+	/**
+	 * East.
+	 */
+	public static int E = 3;
+
+	/**
+	 * South - East.
+	 */
+	public static int SE = 4;
+
+	/**
+	 * South.
+	 */
+	public static int S = 5;
+
+	/**
+	 * South - West.
+	 */
+	public static int SW = 6;
+
+	/**
+	 * West.
+	 */
+	public static int W = 7;
+
+	/**
+	 * North - West.
+	 */
+	public static int NW = 8;
+
+	public static int SELECTHANDLER = 0;
+	public static int STRETCHINGHANDLER = 1;
+
+	/**
+	 * If this geometry is a predefined interface then this method returns one
+	 * of {@link Geometry.TYPES} contants.<br>
+	 * If this geometry is an extended type then this method returns a runtime
+	 * constant that identifies its type. By convention this value is stored in
+	 * a constant called .CODE within the geometry class, for instance:
+	 * Point2D.CODE.
+	 * 
+	 * @return If this geometry is a predefined interface then one of
+	 *         {@link Geometry.TYPES} or a runtime constant if it is an extended
+	 *         type.
+	 */
+	public int getType();
+
+	/**
+	 * Creates a clone of this geometry.
+	 * 
+	 * @return A clone of this geometry.
+	 */
+	public Geometry cloneGeometry();
+
+	/**
+	 * Returns true if this geometry intersects the rectangle passed as
+	 * parameter.
+	 * 
+	 * @param r
+	 *            Rectangle.
+	 * 
+	 * @return True, if <code>this</code> intersects <code>r</code>.
+	 */
+	public boolean intersects(Rectangle2D r);
+
+	/**
+	 * Used by the drawing strategies to quickly test whether this geometry
+	 * intersects with the visible rectangle.
+	 * 
+	 * @param x
+	 *            The minimum X coordinate.
+	 * @param y
+	 *            The minimum Y coordinate.
+	 * @param w
+	 *            The width of the envelope.
+	 * @param h
+	 *            The height of the envelope.
+	 * @return true if <code>this</code> intersects the rectangle defined by the
+	 *         parameters.
+	 */
+	public boolean fastIntersects(double x, double y, double w, double h);
+
+	/**
+	 * Returns this geometry's boundary rectangle.
+	 * 
+	 * @deprecated use getEnvelope.
+	 * @return Boundary rectangle.
+	 */
+	public Rectangle2D getBounds2D();
+
+	/**
+	 * <p>
+	 * Returns the minimum bounding box for this Geometry. This shall be the
+	 * coordinate region spanning the minimum and maximum value for each
+	 * ordinate taken on by DirectPositions in this Geometry. The simplest
+	 * representation for an envelope consists of two DirectPositions, the first
+	 * one containing all the minimums for each ordinate, and second one
+	 * containing all the maximums.
+	 * </p>
+	 * 
+	 * @return The minimum bounding box for this Geometry.
+	 */
+	public Envelope getEnvelope();
+
+	/**
+	 * Reprojects this geometry by the coordinate transformer passed as
+	 * parameter.
+	 * 
+	 * @param ct
+	 *            Coordinate Transformer.
+	 */
+	public void reProject(ICoordTrans ct);
+
+	/**
+	 * If applies an affine transformation and returns the GeneralPathXIterator
+	 * with this geometry's information.
+	 * 
+	 * @param at
+	 *            The transformation to apply.
+	 * @return The GeneralPathXIterator with this geometry's information.
+	 */
+	public PathIterator getPathIterator(AffineTransform at);
+
+	/**
+	 * It returns the handlers of the geometry, these they can be of two types
+	 * is straightening and of selection.
+	 * 
+	 * @param type
+	 *            Type of handlers.
+	 * 
+	 * @return The handlers.
+	 */
+	public Handler[] getHandlers(int type);
+
+	/**
+	 * It applies an affine transformation to the geometry.
+	 * 
+	 * @param at
+	 *            The transformation to apply.
+	 */
+	public void transform(AffineTransform at);
+
+	/**
+	 * If applies an affine transformation and returns the GeneralPathXIterator
+	 * with this geometry's information.
+	 * 
+	 * @param at
+	 *            The affine transformation.
+	 * @param flatness
+	 * 
+	 * @return The GeneralPathXIterator with this geometry's information.
+	 */
+	PathIterator getPathIterator(AffineTransform at, double flatness);
+
+	/**
+	 * Useful to have the real shape behind the scenes. May be uses to edit it
+	 * knowing it it is a Circle, Ellipse, etc.
+	 * 
+	 * @return The awt shape
+	 */
+	public Shape getInternalShape();
+
+	/**
+	 * Returns the largest number n such that each direct position in a
+	 * geometric set can be associated with a subset that has the direct
+	 * position in its interior and is similar (isomorphic) to Rn, Euclidean
+	 * n-space.
+	 * 
+	 * @return The dimension.
+	 */
+	public int getDimension();
+
+	/**
+	 * Returns <code>true</code> if this Geometry has no interior point of
+	 * self-intersection or self-tangency. In mathematical formalisms, this
+	 * means that every point in the interior of the object must have a metric
+	 * neighborhood whose intersection with the object is isomorphic to an
+	 * n-sphere, where n is the dimension of this Geometry.
+	 * 
+	 * @return If the geometry is simple.
+	 */
+	public boolean isSimple();
+
+	/**
+	 * Invokes a geometry operation given its index and context.
+	 * 
+	 * @param index
+	 *            Unique index of the operation. Operation code.
+	 * @param ctx
+	 *            The context of the geometry operation.
+	 * @return Object returned by the operation.
+	 * @throws GeometryOperationNotSupportedException
+	 *             It is thrown when the operation has been not registered for
+	 *             this geometry.
+	 * @throws GeometryOperationException
+	 *             It is thrown when there is an error executing the operation.
+	 */
+	public Object invokeOperation(int index, GeometryOperationContext ctx)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	/**
+	 * Invokes a geometry operation given its name and context.
+	 * 
+	 * @param opName
+	 *            Operation name.
+	 * @param ctx
+	 *            The context of the geometry operation.
+	 * @return Object returned by the operation.
+	 * @throws GeometryOperationNotSupportedException
+	 *             It is thrown when the operation has been not registered for
+	 *             this geometry.
+	 * @throws GeometryOperationException
+	 *             It is thrown when there is an error executing the operation.
+	 */
+	public Object invokeOperation(String opName, GeometryOperationContext ctx)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	/**
+	 * Instance of the GeometryType associated to this geometry.
+	 * 
+	 * @return The geometry type.
+	 */
+	public GeometryType getGeometryType();
+
+	/**
+	 * Get GeneralPathIterator, to do registered operations to it.
+	 * 
+	 * @return The GeneralPathX.
+	 */
+	public GeneralPathX getGeneralPath();
+
+	/**
+	 * Return a byte array with the equivalent in WKB format of the Geometry.
+	 * 
+	 * Utility method to wrap the invocation to the operation
+	 * {@link OPERATIONS#CONVERTTOWKB}.
+	 * 
+	 * @return the WKB version of the geometry
+	 */
+	public byte[] convertToWKB() throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	/**
+	 * Return a string with the equivalent in WKT format of the Geometry.
+	 * 
+	 * This is a utility method to wrap the invocation to the operation
+	 * {@link OPERATIONS#CONVERTTOWKT}.
+	 * 
+	 * @return the WKT version of the geometry.
+	 * 
+	 * @throws GeometryOperationNotSupportedException
+	 * @throws GeometryOperationException
+	 */
+	public String convertToWKT() throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	/**
+	 * Computes a buffer area around this geometry having the given width
+	 * 
+	 * This is a utility method to wrap the invocation to the operation
+	 * {@link OPERATIONS#BUFFER}.
+	 * 
+	 * @param distance
+	 *            the width of the buffer
+	 * 
+	 * @return a new Geometry with the computed buffer.
+	 * 
+	 * @throws GeometryOperationNotSupportedException
+	 * @throws GeometryOperationException
+	 */
+	public Geometry buffer(double distance)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	/**
+	 * Tests whether this geometry contains the specified geometry.
+	 * 
+	 * This is a utility method to wrap the invocation to the operation
+	 * {@link OPERATIONS#CONTAINS}.
+	 * 
+	 * @param geometry
+	 *            the Geometry with which to compare this Geometry
+	 * 
+	 * @return if this Geometry contains the specified geometry
+	 * 
+	 * @throws GeometryOperationNotSupportedException
+	 * @throws GeometryOperationException
+	 */
+	public boolean contains(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	/**
+	 * Returns the minimum distance between this Geometry and the specified
+	 * geometry.
+	 * 
+	 * This is a utility method to wrap the invocation to the operation
+	 * {@link OPERATIONS#DISTANCE}.
+	 * 
+	 * @param geometry
+	 *            the Geometry from which to compute the distance
+	 * 
+	 * @return the distance between the geometries
+	 * 
+	 * @throws GeometryOperationNotSupportedException
+	 * @throws GeometryOperationException
+	 */
+	public double distance(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	/**
+	 * Tests whether this geometry overlaps the specified geometry.
+	 * 
+	 * This is a utility method to wrap the invocation to the operation
+	 * {@link OPERATIONS#OVERLAPS}.
+	 * 
+	 * @param geometry
+	 *            the Geometry with which to compare this Geometry
+	 * 
+	 * @return true if the two geometries overlap.
+	 * 
+	 * @throws GeometryOperationNotSupportedException
+	 * @throws GeometryOperationException
+	 */
+	public boolean overlaps(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	public Geometry convexHull() throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	public boolean coveredBy(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	public boolean crosses(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	public Geometry difference(Geometry other)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	public boolean disjoint(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	public Geometry intersection(Geometry other)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	public boolean intersects(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	public boolean touches(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	public Geometry union(Geometry other)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	public boolean within(Geometry geometry)
+			throws GeometryOperationNotSupportedException,
+			GeometryOperationException;
+
+	public Point centroid() throws GeometryOperationNotSupportedException, GeometryOperationException;
+	
+	public double area() throws GeometryOperationNotSupportedException, GeometryOperationException;
+	
+	public double perimeter() throws GeometryOperationNotSupportedException, GeometryOperationException;
+	
+	/**
+     * @return  the awt shape used to display the geometry. It 
+     * applies a tranformation before to return the coordinates
+     * of the shape
+     * @deprecated this class inherits of {@link Shape} by historical
+     * reasons. This method has been added just to control the usage of
+     * the {@link Shape} class but it will removed in a future.
+     */
+	public Shape getShape(AffineTransform affineTransform);
+	
+	/**
+     * @return  the awt shape used to display the geometry. 
+     * @deprecated this class inherits of {@link Shape} by historical
+     * reasons. This method has been added just to control the usage of
+     * the {@link Shape} class but it will removed in a future.
+     */
+	public Shape getShape();
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/Geometry.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/CenterHandler.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/CenterHandler.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/CenterHandler.java	(revision 38288)
@@ -0,0 +1,51 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.handler;
+
+
+
+/**
+ * Center handlers.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public interface CenterHandler extends Handler {
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/CenterHandler.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/CuadrantHandler.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/CuadrantHandler.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/CuadrantHandler.java	(revision 38288)
@@ -0,0 +1,9 @@
+package org.gvsig.fmap.geom.handler;
+
+/**
+ * Cuadrant handlers.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public interface CuadrantHandler extends Handler {
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/CuadrantHandler.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/AbstractHandler.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/AbstractHandler.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/AbstractHandler.java	(revision 38288)
@@ -0,0 +1,114 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.handler;
+
+import java.awt.geom.Point2D;
+
+
+
+/**
+ * This class expands the <code>Handler</code> interface adding support for selection, and
+ *  identifying a handler of a geometry.
+ * 
+ * @see Handler
+ *
+ * @author Vicente Caballero Navarro
+ */
+public abstract class AbstractHandler implements Handler {
+	/**
+	 * Identifies each handler of a geometry.
+	 */
+	protected int index;
+	/**
+	 * Position of this handler.
+	 * 
+	 * @see #getPoint()
+	 * @see Handler#set(double, double)
+	 * @see Handler#move(double, double)
+	 */
+	protected Point2D point;
+	/**
+	 * True when the handler is selected.
+	 * 
+	 * @see #select
+	 * @see #isSelected()
+	 */
+	private boolean select=false;
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.core.Handler#getPoint()
+	 */
+	public Point2D getPoint() {
+		return point;
+	}
+	/**
+	 * Sets the state of the handler. <code>True</code> if is selected, <code>false</code> if it's not.
+	 * 
+	 * @param b <code>true</code> if the handler is selected, <code>false</code>  otherwise
+	 * 
+	 * @see #isSelected()
+	 */
+	public void select(boolean b) {
+		select=b;
+	}
+	/**
+	 * Returns the state of the handler. <code>True</code> if is selected, <code>false</code> if it's not.
+	 * 
+	 * @return <code>true</code> if the handler is selected,<code>false</code> otherwise 
+	 * 
+	 * @see #select(boolean)
+	 */
+	public boolean isSelected(){
+		return select;
+	}
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.core.Handler#equalsPoint(java.lang.Object)
+	 */
+	public boolean equalsPoint(Object obj) {
+		Point2D p1=this.getPoint();
+		Point2D p2=((Handler)obj).getPoint();
+		if (p1.getX()==p2.getX() && p1.getY()==p2.getY()) {
+			return true;
+		}
+		return false;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/AbstractHandler.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/FinalHandler.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/FinalHandler.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/FinalHandler.java	(revision 38288)
@@ -0,0 +1,9 @@
+package org.gvsig.fmap.geom.handler;
+
+/**
+ * Final handlers.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public interface FinalHandler extends Handler {
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/FinalHandler.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/Handler.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/Handler.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/Handler.java	(revision 38288)
@@ -0,0 +1,112 @@
+/*
+ * Created on 10-feb-2005
+ *
+ * gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+     USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.handler;
+
+import java.awt.geom.Point2D;
+
+
+/**
+* <p>In a <i>FMap</i> graphic layer, each geometry drawn has control points named <i>handlers</i>
+* that allow user to move, modify, set, ... that geometry.</p>
+*  
+* <p>Each geometry will have its own handlers, and each one can have different behavior 
+* according its nature.</p>
+* 
+* <p>The <code>Handler</code> interface defines the least set of common methods for all
+* geometry handlers.</p>
+*/
+public interface Handler {
+	/**
+	 * <p>Generic method of moving in 2D a handler of a geometry using two numbers that
+	 * represent the 2D coordinates.</p>
+	 * 
+	 * <p>Each handler of each geometry adapts this method to its own behavior in that 
+	 * geometry, that implies that could not be implemented.</p>
+	 *
+	 * @param x first dimension coordinate
+	 * @param y second dimension coordinate
+	 * 
+	 * @see #set(double, double)
+	 */
+	public void move(double x, double y);
+	/**
+ 	 * <p>Generic method of situating in 2D a handler of a geometry using two numbers
+ 	 * that represent the 2D coordinates.</p>
+	 * 
+	 * <p>Each handler of each geometry adapts this method to its own behavior in that 
+	 * geometry, that implies that could not be implemented.</p>
+	 *
+	 * @param x first dimension coordinate
+	 * @param y second dimension coordinate
+	 * 
+	 * @see #move(double, double)
+	 * @see #getPoint()
+	 */
+	public void set(double x, double y);
+
+	/**
+ 	 * <p>Generic method of getting the 2D point that represents a handler of a geometry.</p>
+	 * 
+	 * <p>Each handler of each geometry adapts this method to its own behavior in that
+	 * geometry, that implies that could not be implemented.</p>
+	 *
+	 * @return point 2D that represents this handler of geometry
+	 * 
+	 * @see #set(double, double)
+	 * @see #move(double, double)
+	 */
+	public Point2D getPoint();
+	/**
+	 * <p>Returns <code>true</code> if the object is a <code>Handler</code> and has the
+	 *  same coordinates as this one.</p>
+	 * 
+	 * @param obj the reference object with which to compare 
+	 * @return <code>true</code> if this object is the same as the <code>obj</code> 
+	 * argument; <code>false</code> otherwise
+	 * 
+	 * @see #getPoint()
+	 */
+	public boolean equalsPoint(Object obj);
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/handler/Handler.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/util/UtilFunctions.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/util/UtilFunctions.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/util/UtilFunctions.java	(revision 38288)
@@ -0,0 +1,669 @@
+/*
+ * Created on 10-feb-2005
+ *
+ * gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.util;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Arc2D;
+import java.awt.geom.Line2D;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.vividsolutions.jts.algorithm.RobustCGAlgorithms;
+import com.vividsolutions.jts.geom.Coordinate;
+
+/**
+ * @author FJP
+ * 
+ *         TODO To change the template for this generated type comment go to
+ *         Window - Preferences - Java - Code Generation - Code and Comments
+ * @deprecated to be removed or moved from API to implementation in gvSIG 2.1.0
+ */
+public class UtilFunctions {
+	private static final Logger logger = LoggerFactory.getLogger(GeometryManager.class);
+
+	static public Arc2D createCircle(Point2D p1, Point2D p2, Point2D p3) //, Graphics g)
+    {
+        double xC, yC, w, h;
+
+        // Calculamos 2 secantes, tiramos perpendiculares por sus puntos
+        // medios y obtenemos el centro. Luego calculamos el radio.
+        // Puntos medios de los segmentos.
+        double xm1, ym1, xm2, ym2;
+        xm1 = (p1.getX() + p2.getX())/ 2.0;
+        ym1 = (p1.getY() + p2.getY())/ 2.0;
+        xm2 = (p2.getX() + p3.getX())/ 2.0;
+        ym2 = (p2.getY() + p3.getY())/ 2.0;
+
+        /* g.setColor(Color.GRAY);
+        g.draw3DRect((int)xm1, (int) ym1, 1, 1, true);
+        g.draw3DRect((int)xm2, (int) ym2, 1, 1, true); */
+        // Pendientes de las perpendiculares y constantes
+        double mP1=0, mP2=0, A1, A2;
+        boolean bPerp1 = false;
+        //boolean bPerp2 = false;
+        if (p2.getY() - p1.getY() == 0)
+        {
+            A1 = ym1;
+            bPerp1 = true;
+        }
+        else
+        {
+            mP1 = (p2.getX() - p1.getX()) /(p1.getY() - p2.getY());
+            A1 = ym1 - xm1 * mP1;
+        }
+        if (p2.getY() - p3.getY() == 0)
+        {
+            A2 = ym2;
+            //bPerp2 = true;
+        }
+        else
+        {
+            mP2 = (p3.getX() - p2.getX()) /(p2.getY() - p3.getY());
+            A2 = ym2 - xm2 * mP2;
+        }
+        if (mP2 == mP1)
+        {
+            return null; // Error, 3 puntos alineados. No puede pasar un arco
+        }
+        else
+        {
+            xC = (A2 - A1)/(mP1-mP2);
+            if (!bPerp1) {
+				yC = xC * mP1 + A1;
+			} else {
+				yC = xC * mP2 + A2;
+			}
+        }
+        double Radio = p1.distance(xC, yC);
+        double xR = xC - Radio ;
+        double yR = yC - Radio ;
+        w = 2.0* Radio;
+        h = w;
+        Rectangle2D.Double rBounds = new Rectangle2D.Double(xR,yR, w,h);
+        Arc2D.Double resul = new Arc2D.Double(rBounds, 0.0, 360.0, Arc2D.OPEN);
+		/* g.setColor(Color.RED);
+		((Graphics2D) g).draw(resul);
+		g.setColor(Color.BLUE);
+		((Graphics2D) g).draw(rBounds);
+		g.draw3DRect((int)p1.getX(), (int) p1.getY(), 1, 1, true);
+		g.draw3DRect((int)p2.getX(), (int) p2.getY(), 2, 2, true);
+		g.draw3DRect((int)p3.getX(), (int) p3.getY(), 1, 1, true);
+		g.drawString("1", (int) p1.getX(), (int) p1.getY());
+		g.drawString("2", (int) p2.getX(), (int) p2.getY());
+		g.drawString("3", (int) p3.getX(), (int) p3.getY());
+		g.drawString("C", (int) xC, (int) yC);
+		g.draw3DRect((int)xC, (int) yC, 2, 2, true); */
+
+        return resul;
+    }
+    /**
+	 * Obtiene un par de puntos que definen la recta perpendicular a p1-p2 que
+	 * pasa por el punto perp
+	 *
+	 * @param p1 punto de la recta p1-p2
+	 * @param p2 punto de la recta p1-p2
+	 * @param perp Punto por el que pasa la recta perpendicular, debe ser
+	 * 		  distinto a p2
+	 *
+	 * @return Array con dos puntos que definen la recta resultante
+	 * @deprecated 
+	 *         use the perpendicular operation
+	 */
+	public static Point2D[] getPerpendicular(Point2D p1, Point2D p2,
+		Point2D perp) {
+		if ((p2.getY() - p1.getY()) == 0) {
+			return new Point2D[] {
+				new Point2D.Double(perp.getX(), 0),
+				new Point2D.Double(perp.getX(), 1)
+			};
+		}
+
+		//Pendiente de la recta perpendicular
+		double m = (p1.getX() - p2.getX()) / (p2.getY() - p1.getY());
+
+		//b de la funcion de la recta perpendicular
+		double b = perp.getY() - (m * perp.getX());
+
+		//Obtenemos un par de puntos
+		Point2D[] res = new Point2D[2];
+
+		res[0] = new Point2D.Double(0, (m * 0) + b);
+		res[1] = new Point2D.Double(1000, (m * 1000) + b);
+
+		return res;
+	}
+	public static Point2D[] getParallel(Point2D p1,Point2D p2,double distance) {
+		Point2D[] pParallel=new Point2D[2];
+		pParallel[0]=getPerpendicularPoint(p1,p2,p1,distance);
+		pParallel[1]=getPerpendicularPoint(p1,p2,p2,distance);
+		return pParallel;
+	}
+
+	/**
+	 * Obtiene el punto que se encuentra a una distancia 'dist' de la recta
+	 * p1-p2 y se encuentra en la recta perpendicular que pasa por perpPoint
+	 *
+	 * @param p1 Punto de la recta p1-p2
+	 * @param p2 Punto de la recta p1-p2
+	 * @param perpPoint Punto de la recta perpendicular
+	 * @param dist Distancia del punto que se quiere obtener a la recta p1-p2
+	 *
+	 * @return DOCUMENT ME!
+	 * @deprecated
+	 *         Use the perpendicularPoint operation
+	 */
+	public static Point2D getPerpendicularPoint(Point2D p1, Point2D p2,
+		Point2D perpPoint, double dist) {
+		Point2D[] p = getPerpendicular(p1, p2, perpPoint);
+		Point2D unit = getUnitVector(p[0], p[1]);
+
+		return new Point2D.Double(perpPoint.getX() + (unit.getX() * dist),
+			perpPoint.getY() + (unit.getY() * dist));
+	}
+
+	/**
+	 * Devuelve un vector unitario en forma de punto a partir de dos puntos.
+	 *
+	 * @param p1 punto origen.
+	 * @param p2 punto destino.
+	 *
+	 * @return vector unitario.
+	 * @deprecated
+	 *         use the UnitVector operation
+	 */
+	public static Point2D getUnitVector(Point2D p1, Point2D p2) {
+		Point2D paux = new Point2D.Double(p2.getX() - p1.getX(),
+				p2.getY() - p1.getY());
+		double v = Math.sqrt(Math.pow(paux.getX(), 2d) +
+				Math.pow(paux.getY(), 2d));
+		paux = new Point2D.Double(paux.getX() / v, paux.getY() / v);
+
+		return paux;
+	}
+	/**
+	 * Obtiene el centro del c�rculo que pasa por los tres puntos que se pasan
+	 * como  par�metro
+	 *
+	 * @param p1 primer punto del c�rculo cuyo centro se quiere obtener
+	 * @param p2 segundo punto del c�rculo cuyo centro se quiere obtener
+	 * @param p3 tercer punto del c�rculo cuyo centro se quiere obtener
+	 *
+	 * @return Devuelve null si los puntos est�n alineados o no son 3 puntos
+	 * 		   distintos
+	 */
+	public static Point2D getCenter(Point2D p1, Point2D p2, Point2D p3) {
+		if (p1.equals(p2) || p2.equals(p3) || p1.equals(p3)) {
+			return null;
+		}
+
+		Point2D[] perp1 = getPerpendicular(p1, p2,
+				new Point2D.Double((p1.getX() + p2.getX()) / 2,
+					(p1.getY() + p2.getY()) / 2));
+		Point2D[] perp2 = getPerpendicular(p2, p3,
+				new Point2D.Double((p2.getX() + p3.getX()) / 2,
+					(p2.getY() + p3.getY()) / 2));
+
+		return getIntersection(perp1[0], perp1[1], perp2[0], perp2[1]);
+	}
+
+
+	/**
+	 * Devuelve el punto de la intersecci�n entre las lineas p1-p2 y p3-p4.
+	 *
+	 * @param p1 punto de la recta p1-p2
+	 * @param p2 punto de la recta p1-p2
+	 * @param p3 punto de la recta p3-p4
+	 * @param p4 punto de la recta p3-p4
+	 *
+	 * @return DOCUMENT ME!
+	 *
+	 * @throws RuntimeException DOCUMENT ME!
+	 */
+	public static Point2D getIntersection(Point2D p1, Point2D p2, Point2D p3,
+		Point2D p4) {
+		double m1 = Double.POSITIVE_INFINITY;
+
+		if ((p2.getX() - p1.getX()) != 0) {
+			m1 = (p2.getY() - p1.getY()) / (p2.getX() - p1.getX());
+		}
+
+		double m2 = Double.POSITIVE_INFINITY;
+
+		if ((p4.getX() - p3.getX()) != 0) {
+			m2 = (p4.getY() - p3.getY()) / (p4.getX() - p3.getX());
+		}
+
+		if ((m1 == Double.POSITIVE_INFINITY) &&
+				(m2 == Double.POSITIVE_INFINITY)) {
+			return null;
+		}
+
+		double b1 = p2.getY() - (m1 * p2.getX());
+
+		double b2 = p4.getY() - (m2 * p4.getX());
+
+		if ((m1 != Double.POSITIVE_INFINITY) &&
+				(m2 != Double.POSITIVE_INFINITY)) {
+			if (m1 == m2) {
+				return null;
+			}
+
+			double x = (b2 - b1) / (m1 - m2);
+
+			return new Point2D.Double(x, (m1 * x) + b1);
+		} else if (m1 == Double.POSITIVE_INFINITY) {
+			double x = p1.getX();
+
+			return new Point2D.Double(x, (m2 * x) + b2);
+		} else if (m2 == Double.POSITIVE_INFINITY) {
+			double x = p3.getX();
+
+			return new Point2D.Double(x, (m1 * x) + b1);
+		}
+
+		//no llega nunca
+		throw new RuntimeException("BUG!");
+	}
+	/**
+	 * Obtiene el �ngulo del vector que se pasa como par�metro con el vector
+	 * horizontal de izquierda a derecha
+	 *
+	 * @param start punto origen del vector
+	 * @param end punto destino del vector
+	 *
+	 * @return angulo en radianes
+	 */
+	public static double getAngle(Point2D start, Point2D end) {
+		double angle = Math.acos((end.getX() - start.getX()) / start.distance(
+					end));
+
+		if (start.getY() > end.getY()) {
+			angle = -angle;
+		}
+
+		if (angle < 0) {
+			angle += (2 * Math.PI);
+		}
+
+		return angle;
+	}
+	/**
+	 * Devuelve la distancia desde angle1 a angle2. Angulo en radianes de
+	 * diferencia entre angle1 y angle2 en sentido antihorario
+	 *
+	 * @param angle1 angulo en radianes. Debe ser positivo y no dar ninguna
+	 * 		  vuelta a la circunferencia
+	 * @param angle2 angulo en radianes. Debe ser positivo y no dar ninguna
+	 * 		  vuelta a la circunferencia
+	 *
+	 * @return distancia entre los �ngulos
+	 */
+	public static double angleDistance(double angle1, double angle2) {
+		if (angle1 < angle2) {
+			return angle2 - angle1;
+		} else {
+			return ((Math.PI * 2) - angle1) + angle2;
+		}
+	}
+	/**
+	 * Devuelve el punto de la recta que viene dada por los puntos p1 y p2 a
+	 * una distancia radio de p1.
+	 *
+	 * @param p1 DOCUMENT ME!
+	 * @param p2 DOCUMENT ME!
+	 * @param radio DOCUMENT ME!
+	 *
+	 * @return DOCUMENT ME!
+	 */
+	public static Point2D getPoint(Point2D p1, Point2D p2, double radio) {
+		Point2D paux = new Point2D.Double(p2.getX() - p1.getX(),
+				p2.getY() - p1.getY());
+		double v = Math.sqrt(Math.pow(paux.getX(), 2d) +
+				Math.pow(paux.getY(), 2d));
+		paux = new Point2D.Double(paux.getX() / v, paux.getY() / v);
+
+		Point2D aux1 = new Point2D.Double(p1.getX() + (radio * paux.getX()),
+				p1.getY() + (radio * paux.getY()));
+
+		return aux1;
+	}
+	/**
+	 * Devuelve la menor distancia desde angle1 a angle2.
+	 *
+	 * @param angle1 angulo en radianes. Debe ser positivo y no dar ninguna
+	 * 		  vuelta a la circunferencia
+	 * @param angle2 angulo en radianes. Debe ser positivo y no dar ninguna
+	 * 		  vuelta a la circunferencia
+	 *
+	 * @return distancia entre los �ngulos
+	 */
+	public static double absoluteAngleDistance(double angle1, double angle2) {
+		double d = Math.abs(angle1 - angle2);
+
+		if (d < Math.PI) {
+			return d;
+		} else {
+			if (angle1 < angle2) {
+				angle2 -= (Math.PI * 2);
+			} else {
+				angle1 -= (Math.PI * 2);
+			}
+
+			return Math.abs(angle1 - angle2);
+		}
+	}
+	/**
+	 * Obtiene un arco a partir de 3 puntos. Devuelve null si no se puede crear
+	 * el arco porque los puntos est�n alineados o los 3 puntos no son
+	 * distintos
+	 *
+	 * @param p1
+	 * @param p2
+	 * @param p3
+	 *
+	 * @return Arco
+	 */
+	public static Arc2D createArc(Point2D p1, Point2D p2, Point2D p3) {
+		Point2D center = getCenter(p1, p2, p3);
+
+		double angle1;
+		double angle2;
+		double extent;
+
+		if (center == null) {
+			if (p1.equals(p3) && !p2.equals(p1)) {
+				//Si los puntos p1 y p3 son los mismos (pero el p2 no),
+				//consideramos que el arco es una circunferencia completa
+				center = new Point2D.Double((p1.getX() + p2.getX()) / 2,
+							(p1.getY() + p2.getY()) / 2);
+				angle1 = getAngle(center, p1);
+				extent = Math.PI*2;
+			} else {
+				//en cualquier otro caso, no podemos crear el arco.
+				return null;
+			}
+		} else {
+
+			angle1 = getAngle(center, p1);
+			angle2 = getAngle(center, p3);
+			extent = angleDistance(angle1, angle2);
+
+			Coordinate[] coords = new Coordinate[4];
+			coords[0] = new Coordinate(p1.getX(), p1.getY());
+			coords[1] = new Coordinate(p2.getX(), p2.getY());
+			coords[2] = new Coordinate(p3.getX(), p3.getY());
+			coords[3] = new Coordinate(p1.getX(), p1.getY());
+
+			if (!RobustCGAlgorithms.isCCW(coords)) {
+				extent = (Math.PI * 2) - extent;
+			} else {
+				extent = -extent;
+			}
+		}
+		//System.err.println("angle1:" + angle1);
+		//System.err.println("angle2:" + getAngle(center, p2));
+		//System.err.println("angle3:" + angle2);
+		//System.err.println("extent:" + extent);
+		double Radio = p1.distance(center);
+		double xR = center.getX() - Radio;
+		double yR = center.getY() - Radio;
+		double w = 2.0 * Radio;
+		double h = w;
+
+		Rectangle2D.Double rBounds = new Rectangle2D.Double(xR, yR, w, h);
+		Arc2D.Double resul = new Arc2D.Double(rBounds,
+				Math.toDegrees((Math.PI * 2) - angle1), Math.toDegrees(extent),
+				Arc2D.OPEN);
+
+		return resul;
+	}
+
+	/**
+	 * Obtiene un arco a partir del centro, radio, angulo inicial y extension del angulo.
+	 * Devuelve null si no lo puede crear.
+	 *
+	 * @param center
+	 * @param radius
+	 * @param angSt en radianes
+	 * @param angExt en radianes
+	 *
+	 * @return Arco
+	 */
+	public static Arc2D createArc(Point2D center, double radius, double angSt, double angExt) {
+		double xR = center.getX() - radius;
+		double yR = center.getY() - radius;
+		double w = 2.0 * radius;
+		double h = w;
+
+		Rectangle2D.Double rBounds = new Rectangle2D.Double(xR, yR, w, h);
+		Arc2D.Double resul = new Arc2D.Double(rBounds,
+				Math.toDegrees((Math.PI * 2) - angSt), Math.toDegrees(angExt),
+				Arc2D.OPEN);
+
+		return resul;
+	}
+
+	/**
+	 * Obtiene un arco a partir del
+	 *  centro del arco y punto inicio y punto final
+	 *  Suponemos un Arco definicio CCW (CounterClockWise)
+	 * @param center
+	 * @param init
+	 * @param end
+	 *
+	 * @return Arco
+	 */
+	public static Arc2D createArc2points(Point2D center, Point2D init, Point2D end) {
+
+		double angle1 = getAngle(center, init);
+		double angle2 = getAngle(center, end);
+		double extent = angleDistance(angle1, angle2);
+
+		extent = -extent; // CCW
+
+		//System.err.println("angle1:" + angle1);
+		//System.err.println("angle2:" + getAngle(center, p2));
+		//System.err.println("angle3:" + angle2);
+		//System.err.println("extent:" + extent);
+		double Radio = init.distance(center);
+		double xR = center.getX() - Radio;
+		double yR = center.getY() - Radio;
+		double w = 2.0 * Radio;
+		double h = w;
+
+		Rectangle2D.Double rBounds = new Rectangle2D.Double(xR, yR, w, h);
+		Arc2D.Double resul = new Arc2D.Double(rBounds,
+				Math.toDegrees((Math.PI * 2) - angle1), Math.toDegrees(extent),
+				Arc2D.OPEN);
+
+		return resul;
+	}
+
+	/**
+	 * Devuelve el punto a una distancia radio del punto p1 y aplicandole un �ngulo an.
+	 * una distancia radio de p1.
+	 *
+	 * @param p1 DOCUMENT ME!
+	 * @param p2 DOCUMENT ME!
+	 * @param radio DOCUMENT ME!
+	 *
+	 * @return DOCUMENT ME!
+	 */
+	public static Point2D getPoint(Point2D p1, double an, double radio) {
+		double x=(radio*Math.cos(an))+p1.getX();
+		double y=(radio*Math.sin(an))+p1.getY();
+
+		Point2D p=new Point2D.Double(x,y);
+
+		return p;
+	}
+
+	/**
+	 * Obtiene una linea a partir de dos puntos.
+	 * Devuelve null si no lo puede crear.
+	 *
+	 * @param start
+	 * @param end
+	 *
+	 * @return Linea
+	 */
+	public static Line2D createLine(Point2D start, Point2D end) {
+		return new Line2D.Double(start, end);
+
+	}
+
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @param antp DOCUMENT ME!
+	 * @param lastp DOCUMENT ME!
+	 * @param interp DOCUMENT ME!
+	 * @param point DOCUMENT ME!
+	 *
+	 * @return DOCUMENT ME!
+	 */
+	public static boolean isLowAngle(Point2D antp, Point2D lastp,
+		Point2D interp, Point2D point) {
+		///double ob=lastp.distance(point);
+		///Point2D[] aux=getPerpendicular(lastp,interp,point);
+		///Point2D intersect=getIntersection(aux[0],aux[1],lastp,interp);
+		///double pb=intersect.distance(point);
+		///double a=Math.asin(pb/ob);
+		Coordinate[] coords = new Coordinate[4];
+		coords[0] = new Coordinate(lastp.getX(), lastp.getY());
+		coords[1] = new Coordinate(interp.getX(), interp.getY());
+		coords[2] = new Coordinate(point.getX(), point.getY());
+		coords[3] = new Coordinate(lastp.getX(), lastp.getY());
+
+		try {
+			double angle1 = getAngle(antp, lastp);
+			System.out.println("angle1= " + angle1);
+
+			double angle2 = getAngle(lastp, point);
+			System.out.println("angle2= " + angle2);
+
+			/*if (lastp.getX()<antp.getX()){
+			   System.out.println("angleDiff 2 1= "+angleDistance(angle2,angle1));
+			   System.out.println("angleDiff 1 2= "+angleDistance(angle1,angle2));
+			   if (angleDistance(angle2,angle1)>Math.PI){
+
+			   if (RobustCGAlgorithms.isCCW(coords)) {
+			           System.out.println("izquierda,arriba,true");
+			           return true;
+			   } else{
+			           System.out.println("izquierda,arriba,false");
+			   }
+			   }else {
+			           if (!RobustCGAlgorithms.isCCW(coords)) {
+			                   System.out.println("izquierda,abajo,true");
+			                   return true;
+			           } else{
+			                   System.out.println("izquierda,abajo,false");
+			           }
+			   }
+			   }else if (lastp.getX()>antp.getX()){
+			 */
+			System.out.println("angleDifl 2 1= " +
+				angleDistance(angle2, angle1));
+			System.out.println("angleDifl 1 2= " +
+				angleDistance(angle1, angle2));
+
+			if (angleDistance(angle2, angle1) > Math.PI) {
+				if (RobustCGAlgorithms.isCCW(coords)) {
+					System.out.println("derecha,arriba,true");
+
+					return true;
+				} else {
+					System.out.println("derecha,arriba,false");
+				}
+			} else {
+				if (!RobustCGAlgorithms.isCCW(coords)) {
+					System.out.println("derecha,abajo,true");
+
+					return true;
+				} else {
+					System.out.println("derecha,abajo,false");
+				}
+			}
+
+			//}
+		} catch (Exception e) {
+			System.out.println("false");
+
+			return true;
+		}
+
+		return false;
+	}
+
+	/* movido a AbstractPrimitive */
+
+	public static void rotateGeom(Geometry geometry, double radAngle, double basex, double basey) {
+		AffineTransform at = new AffineTransform();
+		at.rotate(radAngle,basex,basey);
+		geometry.transform(at);
+
+	}
+	public static void moveGeom(Geometry geometry, double dx, double dy) {
+        AffineTransform at = new AffineTransform();
+        at.translate(dx, dy);
+        geometry.transform(at);
+
+
+	}
+	public static void scaleGeom(Geometry geometry, Point2D basePoint, double sx, double sy) {
+		AffineTransform at = new AffineTransform();
+		at.setToTranslation(basePoint.getX(),basePoint.getY());
+		at.scale(sx,sy);
+		at.translate(-basePoint.getX(),-basePoint.getY());
+		geometry.transform(at);
+	} 
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/util/UtilFunctions.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/util/Converter.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/util/Converter.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/util/Converter.java	(revision 38288)
@@ -0,0 +1,1396 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.util;
+
+import java.awt.Shape;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Area;
+import java.awt.geom.NoninvertibleTransformException;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Rectangle2D;
+import java.lang.reflect.Array;
+import java.util.ArrayList;
+
+import com.vividsolutions.jts.algorithm.CGAlgorithms;
+import com.vividsolutions.jts.algorithm.RobustCGAlgorithms;
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.CoordinateArrays;
+import com.vividsolutions.jts.geom.Envelope;
+import com.vividsolutions.jts.geom.GeometryCollection;
+import com.vividsolutions.jts.geom.LineString;
+import com.vividsolutions.jts.geom.LinearRing;
+import com.vividsolutions.jts.geom.MultiLineString;
+import com.vividsolutions.jts.geom.MultiPolygon;
+import com.vividsolutions.jts.geom.Point;
+import com.vividsolutions.jts.geom.Polygon;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.aggregate.MultiCurve;
+import org.gvsig.fmap.geom.aggregate.MultiPoint;
+import org.gvsig.fmap.geom.aggregate.MultiPrimitive;
+import org.gvsig.fmap.geom.aggregate.MultiSurface;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Surface;
+
+/**
+ * Clase con varios m�todos est�ticos utilizados para pasar de java2d a jts
+ * y viceversa.
+ * 
+ * @author fjp
+ * @deprecated to be removed or moved from API to implementation in gvSIG 2.1.0
+ */
+public class Converter {
+	private static final GeometryManager geomManager = GeometryLocator
+			.getGeometryManager();
+	private static final Logger logger = LoggerFactory
+			.getLogger(Converter.class);
+
+	// private static Logger logger = Logger.getLogger(Converter.class);
+
+	/**
+	 * �QU� PODEMOS HACER CON LOS MULTIPOINT??? => DEBER�AMOS TRABAJAR CON
+	 * UN ARRAY DE PUNTOS EN FShape.....Pensarlo bien.
+	 */
+	public final static com.vividsolutions.jts.geom.GeometryFactory geomFactory = new com.vividsolutions.jts.geom.GeometryFactory();
+	public static CGAlgorithms cga = new RobustCGAlgorithms();
+	// private final static AffineTransform at = new AffineTransform();
+	// private static double POINT_MARKER_SIZE = 3.0;
+
+	private static GeometryManager manager = GeometryLocator
+			.getGeometryManager();
+
+	// returns true if testPoint is a point in the pointList list.
+	static boolean pointInList(Coordinate testPoint, Coordinate[] pointList) {
+		int t;
+		int numpoints;
+		Coordinate p;
+
+		numpoints = Array.getLength(pointList);
+
+		for (t = 0; t < numpoints; t++) {
+			p = pointList[t];
+
+			if ((testPoint.x == p.x)
+					&& (testPoint.y == p.y)
+					&& ((testPoint.z == p.z) || (!(testPoint.z == testPoint.z))) // nan
+																					// test;
+																					// x!=x
+																					// iff
+																					// x
+																					// is
+																					// nan
+			) {
+				return true;
+			}
+		}
+
+		return false;
+	}
+
+	/**
+	 * Receives a JTS Geometry and returns a fmap IGeometry
+	 * 
+	 * @param jtsGeometry
+	 *            jts Geometry
+	 * @return IGeometry of FMap
+	 * @author azabala
+	 * @throws CreateGeometryException
+	 */
+	public static Geometry jtsToGeometry(
+			com.vividsolutions.jts.geom.Geometry geo)
+			throws CreateGeometryException {
+		Geometry shpNew = null;
+
+		try {
+			if (geo instanceof Point) {
+				shpNew = geomManager.createPoint(((Point) geo).getX(),
+						((Point) geo).getY(), SUBTYPES.GEOM2D);
+			}
+
+			if (geo.isEmpty()) {
+				shpNew = null;
+			}
+
+			try {
+				if (geo instanceof Polygon) {
+					shpNew = geomManager.createSurface(toShape((Polygon) geo),
+							SUBTYPES.GEOM2D);
+				}
+
+				if (geo instanceof MultiPolygon) {
+					shpNew = geomManager.createSurface(
+							toShape((MultiPolygon) geo), SUBTYPES.GEOM2D);
+				}
+
+				if (geo instanceof LineString) {
+					shpNew = geomManager.createCurve(toShape((LineString) geo),
+							SUBTYPES.GEOM2D);
+				}
+
+				if (geo instanceof MultiLineString) {
+					shpNew = geomManager.createCurve(
+							toShape((MultiLineString) geo), SUBTYPES.GEOM2D);
+				}
+			} catch (CreateGeometryException e) {
+				logger.error("Error creating a geometry", e);
+			}
+
+			/*
+			 * OJO: CON ALGO COMO FSHAPE NO S� C�MO PODEMOS IMPLEMENTAR UN
+			 * GeometryCollection No sabremos si queremos una l�nea o un
+			 * pol�gono..... if (geometry instanceof GeometryCollection) {
+			 * return toShape((GeometryCollection) geometry); }
+			 */
+			return shpNew;
+		} catch (NoninvertibleTransformException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+
+		return null;
+
+		//
+		// FShape shape = Converter.jts_to_java2d(jtsGeometry);
+		// return factory.createGeometry(shape);
+	}
+
+	/**
+	 * Convierte un MultiPoint2D a un MultiPoint de JTS
+	 * 
+	 * @param geom
+	 * @return
+	 */
+	public com.vividsolutions.jts.geom.Geometry geometryToJts(MultiPoint geom) {
+		Coordinate[] theGeoms = new Coordinate[geom.getPrimitivesNumber()];
+		for (int i = 0; i < theGeoms.length; i++) {
+			java.awt.geom.Point2D p = geom.getPrimitiveAt(i).getHandlers(
+					Geometry.SELECTHANDLER)[0].getPoint();
+			Coordinate c = new Coordinate(p.getX(), p.getY());
+			theGeoms[i] = c;
+		}
+		com.vividsolutions.jts.geom.MultiPoint geomCol = new com.vividsolutions.jts.geom.GeometryFactory()
+				.createMultiPoint(theGeoms);
+		return geomCol;
+	}
+
+	/**
+	 * Convierte una MultiCurve2D en una MultiLineString de JTS
+	 * 
+	 * @param geom
+	 * @return
+	 */
+	public static com.vividsolutions.jts.geom.Geometry geometryToJts(
+			MultiCurve geom) {
+		LineString[] lines = new LineString[geom.getPrimitivesNumber()];
+		for (int i = 0; i < lines.length; i++) {
+			lines[i] = (LineString) geometryToJts((geom.getPrimitiveAt(i)));
+		}
+		return new com.vividsolutions.jts.geom.GeometryFactory()
+				.createMultiLineString(lines);
+	}
+
+	/**
+	 * Convierte una MultiSurface2D en un MultiPolygon de JTS
+	 * 
+	 * @return
+	 */
+	public com.vividsolutions.jts.geom.Geometry geometryToJts(MultiSurface geom) {
+		Polygon[] polygons = new Polygon[geom.getPrimitivesNumber()];
+		for (int i = 0; i < polygons.length; i++) {
+			polygons[i] = (Polygon) geometryToJts((geom.getPrimitiveAt(i)));
+		}
+		return new com.vividsolutions.jts.geom.GeometryFactory()
+				.createMultiPolygon(polygons);
+	}
+
+	/**
+	 * Convierte una BaseMultiPrimitive en una GeometryCollection de JTS
+	 * 
+	 * @return
+	 */
+	public com.vividsolutions.jts.geom.Geometry geometryToJts(
+			MultiPrimitive geom) {
+		com.vividsolutions.jts.geom.Geometry[] geometriesAux = new LineString[geom
+				.getPrimitivesNumber()];
+		for (int i = 0; i < geometriesAux.length; i++) {
+			geometriesAux[i] = geometryToJts((geom.getPrimitiveAt(i)));
+		}
+		return new com.vividsolutions.jts.geom.GeometryFactory()
+				.createGeometryCollection(geometriesAux);
+	}
+
+	public static com.vividsolutions.jts.geom.Geometry geometryToJtsWithSRID(
+			Geometry geom, int srid) {
+		// logger.debug(geom.getClass());
+		// logger.debug(new Integer(geom.getShapeType()));
+		return geometryToJts(geom, geom.getType(), srid);
+	}
+
+	public static com.vividsolutions.jts.geom.Geometry geometryToJts(
+			Geometry geom) {
+		// logger.debug(geom.getClass());
+		// logger.debug(new Integer(geom.getShapeType()));
+		return geometryToJts(geom, geom.getType(), -1);
+	}
+
+	// public static com.vividsolutions.jts.geom.Geometry java2d_to_jts(FShape
+	// shp) {
+	// return java2d_to_jts(shp, shp.getShapeType());
+	// }
+
+	private static boolean isClosed(Coordinate firstCoordinate,
+			Coordinate lastCoordinate) {
+		double diff = Math.abs(lastCoordinate.x - firstCoordinate.x);
+		if (diff > 0.000001) {
+			return false;
+		}
+		diff = Math.abs(lastCoordinate.y - firstCoordinate.y);
+		if (diff > 0.000001) {
+			return false;
+		}
+		return true;
+	}
+
+	/**
+	 * Convierte un FShape a una Geometry del JTS. Para ello, utilizamos un
+	 * "flattened PathIterator". El flattened indica que las curvas las pasa a
+	 * segmentos de l�nea recta AUTOMATICAMENTE!!!.
+	 * 
+	 * @param shp
+	 *            FShape que se quiere convertir.
+	 * 
+	 * @return Geometry de JTS.
+	 */
+	private static com.vividsolutions.jts.geom.Geometry geometryToJts(
+			Geometry shp, int shapeType, int srid) {
+
+		com.vividsolutions.jts.geom.Geometry geoJTS = null;
+		Coordinate coord;
+		// Coordinate[] coords;
+		ArrayList arrayCoords = null;
+		ArrayList arrayLines;
+		LineString lin;
+		// LinearRing linRing;
+		// LinearRing linRingExt = null;
+		int theType;
+		int numParts = 0;
+
+		// Use this array to store segment coordinate data
+		double[] theData = new double[6];
+		PathIterator theIterator;
+
+		// logger.debug(shp.toString());
+
+		switch (shapeType) {
+		case Geometry.TYPES.POINT:
+			org.gvsig.fmap.geom.primitive.impl.Point2D p = (org.gvsig.fmap.geom.primitive.impl.Point2D) shp;
+			coord = new Coordinate(p.getX(), p.getY());
+			geoJTS = geomFactory.createPoint(coord);
+			geoJTS.setSRID(srid);
+
+			break;
+
+		case Geometry.TYPES.MULTIPOINT:
+			org.gvsig.fmap.geom.aggregate.impl.MultiPoint2D mp = (org.gvsig.fmap.geom.aggregate.impl.MultiPoint2D) shp;
+			int numPoints = mp.getPrimitivesNumber();
+			Coordinate[] coordinates = new Coordinate[numPoints];
+			for (int i = 0; i < numPoints; i++) {
+				p = mp.getPoint(i);
+				coordinates[i] = new Coordinate(p.getX(), p.getY());
+			}
+			geoJTS = geomFactory.createMultiPoint(coordinates);
+			geoJTS.setSRID(srid);
+
+			break;
+
+		case Geometry.TYPES.CURVE:
+		case Geometry.TYPES.ARC:
+		case Geometry.TYPES.SPLINE:
+			arrayLines = new ArrayList();
+			theIterator = shp.getPathIterator(null, manager.getFlatness());
+
+			while (!theIterator.isDone()) {
+				// while not done
+				theType = theIterator.currentSegment(theData);
+
+				// Populate a segment of the new
+				// GeneralPathX object.
+				// Process the current segment to populate a new
+				// segment of the new GeneralPathX object.
+				switch (theType) {
+				case PathIterator.SEG_MOVETO:
+
+					// System.out.println("SEG_MOVETO");
+					if (arrayCoords == null) {
+						arrayCoords = new ArrayList();
+					} else {
+						lin = geomFactory.createLineString(CoordinateArrays
+								.toCoordinateArray(arrayCoords));
+						lin.setSRID(srid);
+						arrayLines.add(lin);
+						arrayCoords = new ArrayList();
+					}
+
+					numParts++;
+					coord = new Coordinate(theData[0], theData[1]);
+
+					arrayCoords.add(coord);
+
+					break;
+
+				case PathIterator.SEG_LINETO:
+
+					// System.out.println("SEG_LINETO");
+					arrayCoords.add(new Coordinate(theData[0], theData[1]));
+
+					break;
+
+				case PathIterator.SEG_QUADTO:
+					System.out.println("Not supported here");
+
+					break;
+
+				case PathIterator.SEG_CUBICTO:
+					System.out.println("Not supported here");
+
+					break;
+
+				case PathIterator.SEG_CLOSE:
+					// A�adimos el primer punto para cerrar.
+					Coordinate firstCoord = (Coordinate) arrayCoords.get(0);
+					// Solo anyadimos cuando no esta ya cerrado
+					arrayCoords.add(new Coordinate(firstCoord.x, firstCoord.y));
+
+					break;
+				} // end switch
+
+				theIterator.next();
+			} // end while loop
+
+			if (arrayCoords.size() < 2) {
+				break;
+			}
+			lin = new com.vividsolutions.jts.geom.GeometryFactory()
+					.createLineString(CoordinateArrays
+							.toCoordinateArray(arrayCoords));
+
+			lin.setSRID(srid);
+			// CAMBIO: ENTREGAMOS SIEMPRE MULTILINESTRING, QUE ES
+			// LO QUE HACE TODO EL MUNDO CUANDO ESCRIBE EN POSTGIS
+			// O CON GEOTOOLS
+			// if (numParts > 1) // Generamos una MultiLineString
+			// {
+			arrayLines.add(lin);
+			geoJTS = geomFactory
+					.createMultiLineString(com.vividsolutions.jts.geom.GeometryFactory
+							.toLineStringArray(arrayLines));
+			geoJTS.setSRID(srid);
+			/*
+			 * } else { geoJTS = lin; }
+			 */
+
+			break;
+
+		case Geometry.TYPES.SURFACE:
+		case Geometry.TYPES.CIRCLE:
+		case Geometry.TYPES.ELLIPSE:
+			arrayLines = new ArrayList();
+
+			ArrayList shells = new ArrayList();
+			ArrayList holes = new ArrayList();
+			Coordinate[] points = null;
+
+			theIterator = shp.getPathIterator(null, manager.getFlatness());
+
+			while (!theIterator.isDone()) {
+				// while not done
+				theType = theIterator.currentSegment(theData);
+
+				// Populate a segment of the new
+				// GeneralPathX object.
+				// Process the current segment to populate a new
+				// segment of the new GeneralPathX object.
+				switch (theType) {
+				case PathIterator.SEG_MOVETO:
+
+					// System.out.println("SEG_MOVETO");
+					if (arrayCoords == null) {
+						arrayCoords = new ArrayList();
+					} else {
+						points = CoordinateArrays
+								.toCoordinateArray(arrayCoords);
+
+						try {
+							LinearRing ring = geomFactory
+									.createLinearRing(points);
+
+							if (CGAlgorithms.isCCW(points)) {
+								holes.add(ring);
+							} else {
+								shells.add(ring);
+							}
+						} catch (Exception e) {
+							/*
+							 * (jaume) caso cuando todos los puntos son iguales
+							 * devuelvo el propio punto
+							 */
+							boolean same = true;
+							for (int i = 0; i < points.length - 1 && same; i++) {
+								if (points[i].x != points[i + 1].x
+										|| points[i].y != points[i + 1].y /*
+																		 * ||
+																		 * points
+																		 * [i].z
+																		 * !=
+																		 * points
+																		 * [
+																		 * i+1].
+																		 * z
+																		 */
+								) {
+									same = false;
+								}
+							}
+							if (same) {
+								return geomFactory.createPoint(points[0]);
+							}
+							/*
+							 * caso cuando es una l�nea de 3 puntos, no creo
+							 * un LinearRing, sino una linea
+							 */
+							if (points.length > 1 && points.length <= 3) {
+								// return geomFactory.createLineString(points);
+								return geomFactory
+										.createMultiLineString(new LineString[] { geomFactory
+												.createLineString(points) });
+							}
+
+							System.err
+									.println("Caught Topology exception in GMLLinearRingHandler");
+
+							return null;
+						}
+
+						/*
+						 * if (numParts == 1) { linRingExt = new
+						 * GeometryFactory().createLinearRing(
+						 * CoordinateArrays.toCoordinateArray(arrayCoords)); }
+						 * else { linRing = new
+						 * GeometryFactory().createLinearRing(
+						 * CoordinateArrays.toCoordinateArray(arrayCoords));
+						 * arrayLines.add(linRing); }
+						 */
+						arrayCoords = new ArrayList();
+					}
+
+					numParts++;
+					arrayCoords.add(new Coordinate(theData[0], theData[1]));
+
+					break;
+
+				case PathIterator.SEG_LINETO:
+
+					// System.out.println("SEG_LINETO");
+					arrayCoords.add(new Coordinate(theData[0], theData[1]));
+
+					break;
+
+				case PathIterator.SEG_QUADTO:
+					System.out.println("SEG_QUADTO Not supported here");
+
+					break;
+
+				case PathIterator.SEG_CUBICTO:
+					System.out.println("SEG_CUBICTO Not supported here");
+
+					break;
+
+				case PathIterator.SEG_CLOSE:
+
+					// A�adimos el primer punto para cerrar.
+					Coordinate firstCoord = (Coordinate) arrayCoords.get(0);
+					arrayCoords.add(new Coordinate(firstCoord.x, firstCoord.y));
+
+					break;
+				} // end switch
+
+				// System.out.println("theData[0] = " + theData[0] +
+				// " theData[1]=" + theData[1]);
+				theIterator.next();
+			} // end while loop
+
+			Coordinate firstCoord = (Coordinate) arrayCoords.get(0);
+			Coordinate lastCoord = (Coordinate) arrayCoords.get(arrayCoords
+					.size() - 1);
+			if (!isClosed(firstCoord, lastCoord)) {
+				arrayCoords.add(firstCoord);
+			}
+			points = CoordinateArrays.toCoordinateArray(arrayCoords);
+
+			try {
+				LinearRing ring = geomFactory.createLinearRing(points);
+
+				if (CGAlgorithms.isCCW(points)) {
+					holes.add(ring);
+				} else {
+					shells.add(ring);
+				}
+				ring.setSRID(srid);
+			} catch (Exception e) {
+				/*
+				 * (jaume) caso cuando todos los puntos son iguales devuelvo el
+				 * propio punto
+				 */
+				boolean same = true;
+				for (int i = 0; i < points.length - 1 && same; i++) {
+					if (points[i].x != points[i + 1].x
+							|| points[i].y != points[i + 1].y /*
+															 * || points[i].z !=
+															 * points[i+1].z
+															 */
+					) {
+						same = false;
+					}
+				}
+				if (same) {
+					geoJTS = geomFactory.createPoint(points[0]);
+					geoJTS.setSRID(srid);
+					return geoJTS;
+				}
+				/*
+				 * caso cuando es una l�nea de 3 puntos, no creo un
+				 * LinearRing, sino una linea
+				 */
+				if (points.length > 1 && points.length <= 3) {
+					// return geomFactory.createLineString(points);
+					geoJTS = geomFactory
+							.createMultiLineString(new LineString[] { geomFactory
+									.createLineString(points) });
+					geoJTS.setSRID(srid);
+					return geoJTS;
+				}
+				System.err
+						.println("Caught Topology exception in GMLLinearRingHandler");
+
+				return null;
+			}
+
+			/*
+			 * linRing = new GeometryFactory().createLinearRing(
+			 * CoordinateArrays.toCoordinateArray(arrayCoords));
+			 */
+
+			// System.out.println("NumParts = " + numParts);
+			// now we have a list of all shells and all holes
+			ArrayList holesForShells = new ArrayList(shells.size());
+
+			for (int i = 0; i < shells.size(); i++) {
+				holesForShells.add(new ArrayList());
+			}
+
+			// find homes
+			for (int i = 0; i < holes.size(); i++) {
+				LinearRing testRing = (LinearRing) holes.get(i);
+				LinearRing minShell = null;
+				Envelope minEnv = null;
+				Envelope testEnv = testRing.getEnvelopeInternal();
+				Coordinate testPt = testRing.getCoordinateN(0);
+				LinearRing tryRing = null;
+
+				for (int j = 0; j < shells.size(); j++) {
+					tryRing = (LinearRing) shells.get(j);
+
+					Envelope tryEnv = tryRing.getEnvelopeInternal();
+
+					if (minShell != null) {
+						minEnv = minShell.getEnvelopeInternal();
+					}
+
+					boolean isContained = false;
+					Coordinate[] coordList = tryRing.getCoordinates();
+
+					if (tryEnv.contains(testEnv)
+							&& (CGAlgorithms.isPointInRing(testPt, coordList) || (pointInList(
+									testPt, coordList)))) {
+						isContained = true;
+					}
+
+					// check if this new containing ring is smaller than the
+					// current minimum ring
+					if (isContained) {
+						if ((minShell == null) || minEnv.contains(tryEnv)) {
+							minShell = tryRing;
+						}
+					}
+				}
+
+				if (minShell == null) {
+					// System.out.println(
+					// "polygon found with a hole thats not inside a shell");
+					// azabala: we do the assumption that this hole is really a
+					// shell (polygon)
+					// whose point werent digitized in the right order
+					Coordinate[] cs = testRing.getCoordinates();
+					Coordinate[] reversed = new Coordinate[cs.length];
+					int pointIndex = 0;
+					for (int z = cs.length - 1; z >= 0; z--) {
+						reversed[pointIndex] = cs[z];
+						pointIndex++;
+					}
+					LinearRing newRing = geomFactory.createLinearRing(reversed);
+					shells.add(newRing);
+					holesForShells.add(new ArrayList());
+				} else {
+					((ArrayList) holesForShells.get(shells.indexOf(minShell)))
+							.add(testRing);
+				}
+			}
+
+			Polygon[] polygons = new Polygon[shells.size()];
+
+			for (int i = 0; i < shells.size(); i++) {
+				polygons[i] = geomFactory.createPolygon((LinearRing) shells
+						.get(i), (LinearRing[]) ((ArrayList) holesForShells
+						.get(i)).toArray(new LinearRing[0]));
+				polygons[i].setSRID(srid);
+			}
+			// CAMBIO: ENTREGAMOS SIEMPRE MULTILINESTRING, QUE ES
+			// LO QUE HACE TODO EL MUNDO CUANDO ESCRIBE EN POSTGIS
+			// O CON GEOTOOLS
+			// if (numParts > 1) // Generamos una MultiLineString
+
+			/*
+			 * if (polygons.length == 1) { return polygons[0]; }
+			 */
+
+			// FIN CAMBIO
+
+			holesForShells = null;
+			shells = null;
+			holes = null;
+
+			if (polygons.length == 1) {
+				geoJTS = polygons[0];
+			} else {
+				// its a multi part
+				geoJTS = geomFactory.createMultiPolygon(polygons);
+			}
+			geoJTS.setSRID(srid);
+
+			/*
+			 * if (numParts > 1) // Generamos un Polygon con agujeros {
+			 * arrayLines.add(linRing); // geoJTS = new
+			 * GeometryFactory().createPolygon(linRingExt, //
+			 * GeometryFactory.toLinearRingArray(arrayLines)); geoJTS = new
+			 * GeometryFactory().buildGeometry(arrayLines);
+			 * 
+			 * // geoJTS = Polygonizer.class. } else { geoJTS = new
+			 * GeometryFactory().createPolygon(linRing,null); }
+			 */
+			break;
+		}
+
+		geoJTS.setSRID(srid);
+		return geoJTS;
+	}
+
+	/**
+	 * Converts JTS Geometry objects into Java 2D Shape objects
+	 * 
+	 * @param geo
+	 *            Geometry de JTS.
+	 * 
+	 * @return FShape.
+	 */
+	// public static FShape jts_to_java2d(com.vividsolutions.jts.geom.Geometry
+	// geo) {
+	// FShape shpNew = null;
+	//
+	// try {
+	// if (geo instanceof Point) {
+	// shpNew = new org.gvsig.fmap.geom.primitive.Point2D(null, null, ((Point)
+	// geo).getX(), ((Point) geo).getY());
+	// }
+	//
+	// if (geo.isEmpty()) {
+	// shpNew = null;
+	// }
+	//
+	// if (geo instanceof Polygon) {
+	// shpNew = new Surface2D(null, null, toShape((Polygon) geo));
+	// }
+	//
+	// if (geo instanceof MultiPolygon) {
+	// shpNew = new Surface2D(null, null, toShape((MultiPolygon) geo));
+	// }
+	//
+	// if (geo instanceof LineString) {
+	// shpNew = new Curve2D(null, null, toShape((LineString) geo));
+	// }
+	//
+	// if (geo instanceof MultiLineString) {
+	// shpNew = new Curve2D(null, null, toShape((MultiLineString) geo));
+	// }
+	//
+	// /* OJO: CON ALGO COMO FSHAPE NO S� C�MO PODEMOS IMPLEMENTAR UN
+	// GeometryCollection
+	// * No sabremos si queremos una l�nea o un pol�gono.....
+	// * if (geometry instanceof GeometryCollection) {
+	// return toShape((GeometryCollection) geometry);
+	// } */
+	// return shpNew;
+	// } catch (NoninvertibleTransformException e) {
+	// // TODO Auto-generated catch block
+	// e.printStackTrace();
+	// }
+	//
+	// return null;
+	// }
+
+	/**
+	 * DOCUMENT ME!
+	 * 
+	 * @param p
+	 *            DOCUMENT ME!
+	 * 
+	 * @return DOCUMENT ME!
+	 */
+	private static GeneralPathX toShape(Polygon p) {
+		GeneralPathX resul = new GeneralPathX();
+		Coordinate coord;
+
+		for (int i = 0; i < p.getExteriorRing().getNumPoints(); i++) {
+			coord = p.getExteriorRing().getCoordinateN(i);
+
+			if (i == 0) {
+				resul.moveTo(coord.x, coord.y);
+			} else {
+				resul.lineTo(coord.x, coord.y);
+			}
+		}
+
+		for (int j = 0; j < p.getNumInteriorRing(); j++) {
+			LineString hole = p.getInteriorRingN(j);
+
+			for (int k = 0; k < hole.getNumPoints(); k++) {
+				coord = hole.getCoordinateN(k);
+
+				if (k == 0) {
+					resul.moveTo(coord.x, coord.y);
+				} else {
+					resul.lineTo(coord.x, coord.y);
+				}
+			}
+		}
+
+		return resul;
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 * 
+	 * @param modelCoordinates
+	 *            DOCUMENT ME!
+	 * 
+	 * @return DOCUMENT ME!
+	 * 
+	 * @throws NoninvertibleTransformException
+	 *             DOCUMENT ME!
+	 * 
+	 *             private Coordinate[] toViewCoordinates(Coordinate[]
+	 *             modelCoordinates) throws NoninvertibleTransformException {
+	 *             Coordinate[] viewCoordinates = new
+	 *             Coordinate[modelCoordinates.length];
+	 * 
+	 *             for (int i = 0; i < modelCoordinates.length; i++) { FPoint2D
+	 *             point2D = coordinate2FPoint2D(modelCoordinates[i]);
+	 *             viewCoordinates[i] = new Coordinate(point2D.getX(),
+	 *             point2D.getY()); }
+	 * 
+	 *             return viewCoordinates; }
+	 * @throws CreateGeometryException
+	 */
+
+	/*
+	 * private Shape toShape(GeometryCollection gc) throws
+	 * NoninvertibleTransformException { GeometryCollectionShape shape = new
+	 * GeometryCollectionShape(); for (int i = 0; i < gc.getNumGeometries();
+	 * i++) { Geometry g = (Geometry) gc.getGeometryN(i); shape.add(toShape(g));
+	 * } return shape; }
+	 */
+	private static GeneralPathX toShape(MultiLineString mls)
+			throws NoninvertibleTransformException, CreateGeometryException {
+		GeneralPathX path = new GeneralPathX();
+
+		for (int i = 0; i < mls.getNumGeometries(); i++) {
+			LineString lineString = (LineString) mls.getGeometryN(i);
+			path.append(toShape(lineString).getPathIterator(null), false);
+		}
+
+		// BasicFeatureRenderer expects LineStrings and MultiLineStrings to be
+		// converted to GeneralPathXs. [Jon Aquino]
+		return path;
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 * 
+	 * @param lineString
+	 *            DOCUMENT ME!
+	 * 
+	 * @return DOCUMENT ME!
+	 * 
+	 * @throws NoninvertibleTransformException
+	 *             DOCUMENT ME!
+	 * @throws CreateGeometryException
+	 */
+	private static GeneralPathX toShape(LineString lineString)
+			throws NoninvertibleTransformException, CreateGeometryException {
+		GeneralPathX shape = new GeneralPathX();
+		org.gvsig.fmap.geom.primitive.Point viewPoint = coordinate2FPoint2D(lineString
+				.getCoordinateN(0));
+		shape.moveTo(viewPoint.getX(), viewPoint.getY());
+
+		for (int i = 1; i < lineString.getNumPoints(); i++) {
+			viewPoint = coordinate2FPoint2D(lineString.getCoordinateN(i));
+			shape.lineTo(viewPoint.getX(), viewPoint.getY());
+		}
+
+		// BasicFeatureRenderer expects LineStrings and MultiLineStrings to be
+		// converted to GeneralPathXs. [Jon Aquino]
+		return shape;
+	}
+
+	/*
+	 * TODO No se usa DOCUMENT ME!
+	 * 
+	 * @param point DOCUMENT ME!
+	 * 
+	 * @return DOCUMENT ME!
+	 * 
+	 * @throws NoninvertibleTransformException DOCUMENT ME!
+	 * 
+	 * private static Point2D toShape(Point point) throws
+	 * NoninvertibleTransformException { Point2D viewPoint =
+	 * coordinate2FPoint2D(point.getCoordinate());
+	 * 
+	 * return viewPoint; }
+	 */
+
+	/**
+	 *
+	 */
+	private static GeneralPathX toShape(MultiPolygon mp)
+			throws NoninvertibleTransformException {
+		GeneralPathX path = new GeneralPathX();
+
+		for (int i = 0; i < mp.getNumGeometries(); i++) {
+			Polygon polygon = (Polygon) mp.getGeometryN(i);
+			path.append(toShape(polygon).getPathIterator(null), false);
+		}
+
+		// BasicFeatureRenderer expects LineStrings and MultiLineStrings to be
+		// converted to GeneralPathXs. [Jon Aquino]
+		return path;
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 * 
+	 * @param coord
+	 *            DOCUMENT ME!
+	 * 
+	 * @return DOCUMENT ME!
+	 * @throws CreateGeometryException
+	 */
+	public static org.gvsig.fmap.geom.primitive.Point coordinate2FPoint2D(
+			Coordinate coord) throws CreateGeometryException {
+		return geomManager.createPoint(coord.x, coord.y, SUBTYPES.GEOM2D); // ,coord.z);
+	}
+
+	/**
+	 * Convierte una Geometry de JTS a GeneralPathX.
+	 * 
+	 * @param geometry
+	 *            Geometry a convertir.
+	 * 
+	 * @return GeneralPathX.
+	 * 
+	 * @throws NoninvertibleTransformException
+	 * @throws CreateGeometryException
+	 * @throws IllegalArgumentException
+	 */
+	public static GeneralPathX toShape(
+			com.vividsolutions.jts.geom.Geometry geometry)
+			throws NoninvertibleTransformException, CreateGeometryException {
+		if (geometry.isEmpty()) {
+			return new GeneralPathX();
+		}
+
+		if (geometry instanceof Polygon) {
+			return toShape((Polygon) geometry);
+		}
+
+		if (geometry instanceof MultiPolygon) {
+			return toShape((MultiPolygon) geometry);
+		}
+
+		if (geometry instanceof LineString) {
+			return toShape((LineString) geometry);
+		}
+
+		if (geometry instanceof MultiLineString) {
+			return toShape((MultiLineString) geometry);
+		}
+
+		if (geometry instanceof GeometryCollection) {
+			return toShape(geometry);
+		}
+
+		throw new IllegalArgumentException("Unrecognized Geometry class: "
+				+ geometry.getClass());
+	}
+
+	public static GeneralPathX transformToInts(GeneralPathX gp,
+			AffineTransform at) {
+		GeneralPathX newGp = new GeneralPathX();
+		PathIterator theIterator;
+		int theType;
+		int numParts = 0;
+		double[] theData = new double[6];
+		java.awt.geom.Point2D ptDst = new java.awt.geom.Point2D.Double();
+		java.awt.geom.Point2D ptSrc = new java.awt.geom.Point2D.Double();
+		boolean bFirst = true;
+		int xInt, yInt, antX = -1, antY = -1;
+
+		theIterator = gp.getPathIterator(null); // , flatness);
+
+		while (!theIterator.isDone()) {
+			theType = theIterator.currentSegment(theData);
+			switch (theType) {
+			case PathIterator.SEG_MOVETO:
+				numParts++;
+				ptSrc.setLocation(theData[0], theData[1]);
+				at.transform(ptSrc, ptDst);
+				antX = (int) ptDst.getX();
+				antY = (int) ptDst.getY();
+				newGp.moveTo(antX, antY);
+				bFirst = true;
+				break;
+
+			case PathIterator.SEG_LINETO:
+				ptSrc.setLocation(theData[0], theData[1]);
+				at.transform(ptSrc, ptDst);
+				xInt = (int) ptDst.getX();
+				yInt = (int) ptDst.getY();
+				if ((bFirst) || ((xInt != antX) || (yInt != antY))) {
+					newGp.lineTo(xInt, yInt);
+					antX = xInt;
+					antY = yInt;
+					bFirst = false;
+				}
+				break;
+
+			case PathIterator.SEG_QUADTO:
+				System.out.println("Not supported here");
+
+				break;
+
+			case PathIterator.SEG_CUBICTO:
+				System.out.println("Not supported here");
+
+				break;
+
+			case PathIterator.SEG_CLOSE:
+				newGp.closePath();
+
+				break;
+			} // end switch
+
+			theIterator.next();
+		} // end while loop
+
+		return newGp;
+	}
+
+	public static Geometry transformToInts(Geometry gp, AffineTransform at)
+			throws CreateGeometryException {
+		GeneralPathX newGp = new GeneralPathX();
+		double[] theData = new double[6];
+		double[] aux = new double[6];
+
+		// newGp.reset();
+		PathIterator theIterator;
+		int theType;
+		int numParts = 0;
+
+		java.awt.geom.Point2D ptDst = new java.awt.geom.Point2D.Double();
+		java.awt.geom.Point2D ptSrc = new java.awt.geom.Point2D.Double();
+		boolean bFirst = true;
+		int xInt, yInt, antX = -1, antY = -1;
+
+		theIterator = gp.getPathIterator(null); // , flatness);
+		int numSegmentsAdded = 0;
+		while (!theIterator.isDone()) {
+			theType = theIterator.currentSegment(theData);
+
+			switch (theType) {
+			case PathIterator.SEG_MOVETO:
+				numParts++;
+				ptSrc.setLocation(theData[0], theData[1]);
+				at.transform(ptSrc, ptDst);
+				antX = (int) ptDst.getX();
+				antY = (int) ptDst.getY();
+				newGp.moveTo(antX, antY);
+				numSegmentsAdded++;
+				bFirst = true;
+				break;
+
+			case PathIterator.SEG_LINETO:
+				ptSrc.setLocation(theData[0], theData[1]);
+				at.transform(ptSrc, ptDst);
+				xInt = (int) ptDst.getX();
+				yInt = (int) ptDst.getY();
+				if ((bFirst) || ((xInt != antX) || (yInt != antY))) {
+					newGp.lineTo(xInt, yInt);
+					antX = xInt;
+					antY = yInt;
+					bFirst = false;
+					numSegmentsAdded++;
+				}
+				break;
+
+			case PathIterator.SEG_QUADTO:
+				at.transform(theData, 0, aux, 0, 2);
+				newGp.quadTo(aux[0], aux[1], aux[2], aux[3]);
+				numSegmentsAdded++;
+				break;
+
+			case PathIterator.SEG_CUBICTO:
+				at.transform(theData, 0, aux, 0, 3);
+				newGp.curveTo(aux[0], aux[1], aux[2], aux[3], aux[4], aux[5]);
+				numSegmentsAdded++;
+				break;
+
+			case PathIterator.SEG_CLOSE:
+				if (numSegmentsAdded < 3) {
+					newGp.lineTo(antX, antY);
+				}
+				newGp.closePath();
+
+				break;
+			} // end switch
+
+			theIterator.next();
+		} // end while loop
+
+		Geometry shp = null;
+		switch (gp.getType()) {
+		case Geometry.TYPES.POINT:
+			shp = geomManager.createPoint(ptDst.getX(), ptDst.getY(),
+					SUBTYPES.GEOM2D);
+			break;
+
+		case Geometry.TYPES.CURVE:
+		case Geometry.TYPES.ARC:
+			try {
+				shp = geomManager.createCurve(newGp, SUBTYPES.GEOM2D);
+			} catch (CreateGeometryException e1) {
+				logger.error("Error creating a curve", e1);
+			}
+			break;
+
+		case Geometry.TYPES.SURFACE:
+		case Geometry.TYPES.CIRCLE:
+		case Geometry.TYPES.ELLIPSE:
+
+			try {
+				shp = geomManager.createSurface(newGp, SUBTYPES.GEOM2D);
+			} catch (CreateGeometryException e) {
+				logger.error("Error creating a surface", e);
+			}
+			break;
+		}
+		return shp;
+	}
+
+	public static Rectangle2D convertEnvelopeToRectangle2D(Envelope jtsR) {
+		Rectangle2D.Double r = new Rectangle2D.Double(jtsR.getMinX(),
+				jtsR.getMinY(), jtsR.getWidth(), jtsR.getHeight());
+		return r;
+	}
+
+	public static Envelope convertEnvelopeToJTS(
+			org.gvsig.fmap.geom.primitive.Envelope r) {
+		Envelope e = new Envelope(r.getMinimum(0), r.getMaximum(0),
+				r.getMinimum(1), r.getMaximum(1));
+		return e;
+	}
+
+	/**
+	 * Return a correct polygon (no hole)
+	 * 
+	 * @param coordinates
+	 * @return
+	 */
+	public static Geometry getExteriorPolygon(Coordinate[] coordinates) {
+		// isCCW = true => it's a hole
+		Coordinate[] vs = new Coordinate[coordinates.length];
+		if (CGAlgorithms.isCCW(coordinates)) {
+			for (int i = vs.length - 1; i >= 0; i--) {
+				vs[i] = coordinates[i];
+			}
+		} else {
+			vs = coordinates;
+		}
+		LinearRing ring = geomFactory.createLinearRing(vs);
+
+		try {
+			Surface surface = (Surface) manager.create(TYPES.SURFACE,
+					SUBTYPES.GEOM2D);
+			surface.setGeneralPath(toShape(ring));
+			return surface;
+		} catch (NoninvertibleTransformException e) {
+			e.printStackTrace();
+		} catch (CreateGeometryException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	public static boolean isCCW(Point[] points) {
+		int length = points.length;
+		Coordinate[] vs;
+		// CGAlgorithms.isCCW asume que la lista de puntos tienen el primer
+		// y el ultimo puntos iguales.... y que este algoritmo est� solo
+		// garantizado con anillos v�lidos.
+		if (points[0].getX() != points[length - 1].getX()
+				|| points[0].getY() != points[length - 1].getY()) {
+			vs = new Coordinate[length + 1];
+			vs[points.length] = new Coordinate(points[0].getX(),
+					points[0].getY());
+		} else {
+			vs = new Coordinate[length];
+		}
+		for (int i = 0; i < length; i++) {
+			vs[i] = new Coordinate(points[i].getX(), points[i].getY());
+		}
+
+		return CGAlgorithms.isCCW(vs);
+	}
+
+	public static boolean isCCW(Surface pol) {
+		com.vividsolutions.jts.geom.Geometry jtsGeom = Converter
+				.geometryToJts(pol);
+		if (jtsGeom.getNumGeometries() == 1) {
+			Coordinate[] coords = jtsGeom.getCoordinates();
+			return CGAlgorithms.isCCW(coords);
+		}
+		return false;
+
+	}
+
+	/**
+	 * Return a hole (CCW ordered points)
+	 * 
+	 * @param coordinates
+	 * @return
+	 */
+	public static Geometry getHole(Coordinate[] coordinates) {
+		// isCCW = true => it's a hole
+		Coordinate[] vs = new Coordinate[coordinates.length];
+		if (CGAlgorithms.isCCW(coordinates)) {
+			vs = coordinates;
+
+		} else {
+			for (int i = vs.length - 1; i >= 0; i--) {
+				vs[i] = coordinates[i];
+			}
+		}
+		LinearRing ring = geomFactory.createLinearRing(vs);
+
+		try {
+			Surface surface = (Surface) manager.create(TYPES.SURFACE,
+					SUBTYPES.GEOM2D);
+			surface.setGeneralPath(toShape(ring));
+			return surface;
+		} catch (NoninvertibleTransformException e) {
+			e.printStackTrace();
+		} catch (CreateGeometryException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	public static Shape getExteriorPolygon(GeneralPathX gp) {
+		Area area = new Area(gp);
+		area.isSingular();
+		return area;
+
+	}
+
+	/**
+	 * Use it ONLY for NOT multipart polygons.
+	 * 
+	 * @param pol
+	 * @return
+	 */
+	public static Geometry getNotHolePolygon(Surface pol) {
+		// isCCW == true => hole
+		Coordinate[] coords;
+		ArrayList arrayCoords = null;
+		int theType;
+		int numParts = 0;
+
+		// Use this array to store segment coordinate data
+		double[] theData = new double[6];
+		PathIterator theIterator;
+
+		ArrayList shells = new ArrayList();
+		ArrayList holes = new ArrayList();
+		Coordinate[] points = null;
+
+		theIterator = pol.getPathIterator(null, manager.getFlatness());
+
+		while (!theIterator.isDone()) {
+			// while not done
+			theType = theIterator.currentSegment(theData);
+
+			// Populate a segment of the new
+			// GeneralPathX object.
+			// Process the current segment to populate a new
+			// segment of the new GeneralPathX object.
+			switch (theType) {
+			case PathIterator.SEG_MOVETO:
+
+				// System.out.println("SEG_MOVETO");
+				if (arrayCoords == null) {
+					arrayCoords = new ArrayList();
+				} else {
+					points = CoordinateArrays.toCoordinateArray(arrayCoords);
+
+					try {
+						LinearRing ring = geomFactory.createLinearRing(points);
+
+						if (CGAlgorithms.isCCW(points)) {
+							holes.add(ring);
+						} else {
+							shells.add(ring);
+						}
+					} catch (Exception e) {
+						System.err
+								.println("Caught Topology exception in GMLLinearRingHandler");
+
+						return null;
+					}
+
+					/*
+					 * if (numParts == 1) { linRingExt = new
+					 * GeometryFactory().createLinearRing(
+					 * CoordinateArrays.toCoordinateArray(arrayCoords)); } else
+					 * { linRing = new GeometryFactory().createLinearRing(
+					 * CoordinateArrays.toCoordinateArray(arrayCoords));
+					 * arrayLines.add(linRing); }
+					 */
+					arrayCoords = new ArrayList();
+				}
+
+				numParts++;
+				arrayCoords.add(new Coordinate(theData[0], theData[1]));
+
+				break;
+
+			case PathIterator.SEG_LINETO:
+
+				// System.out.println("SEG_LINETO");
+				arrayCoords.add(new Coordinate(theData[0], theData[1]));
+
+				break;
+
+			case PathIterator.SEG_QUADTO:
+				System.out.println("SEG_QUADTO Not supported here");
+
+				break;
+
+			case PathIterator.SEG_CUBICTO:
+				System.out.println("SEG_CUBICTO Not supported here");
+
+				break;
+
+			case PathIterator.SEG_CLOSE:
+
+				// A�adimos el primer punto para cerrar.
+				Coordinate firstCoord = (Coordinate) arrayCoords.get(0);
+				arrayCoords.add(new Coordinate(firstCoord.x, firstCoord.y));
+
+				break;
+			} // end switch
+
+			// System.out.println("theData[0] = " + theData[0] + " theData[1]="
+			// + theData[1]);
+			theIterator.next();
+		} // end while loop
+
+		arrayCoords.add(arrayCoords.get(0));
+		coords = CoordinateArrays.toCoordinateArray(arrayCoords);
+
+		if (numParts == 1) {
+			return getExteriorPolygon(coords);
+		}
+		return pol;
+
+	}
+
+	/*
+	 * public static GeometryCollection
+	 * convertFGeometryCollection(FGeometryCollection fGeomC) {
+	 * 
+	 * geomFactory.createGeometryCollection(theGeoms); }
+	 */
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/util/Converter.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/DataTypes.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/DataTypes.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/DataTypes.java	(revision 38288)
@@ -0,0 +1,39 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom;
+
+/**
+ * This interface defines a set of constants for all data types supported by the
+ * DAL.
+ * 
+ * @author gvSIG Team
+ * @version $Id$
+ * 
+ */
+public interface DataTypes extends org.gvsig.tools.dataTypes.DataTypes {
+
+    /*
+	 * 
+	 */
+    public static final int GEOMETRY = OBJECT + 2;
+    public static final int ENVELOPE = OBJECT + 3;
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/DataTypes.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/DirectPosition.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/DirectPosition.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/DirectPosition.java	(revision 38288)
@@ -0,0 +1,78 @@
+package org.gvsig.fmap.geom;
+/* gvSIG. Sistema de Informaci�nn Geográfica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ibáñez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+/**
+ * <p>
+ * DirectPosition object data types hold the coordinates for 
+ * a position within some coordinate reference system. 
+ * The coordinate reference system is described in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=41126">ISO 19111</a>.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @see <a http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=41126">ISO 19111</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface DirectPosition {
+	
+	/**
+	 * Returns the length of coordinate. This is determined by 
+	 * the reference system.
+	 * @return
+	 * The dimension
+	 */
+	public int getDimension();
+	
+	/**
+	 * Returns the ordinate of the given dimension.
+	 * @param dimension
+	 * The dimension to retrieve
+	 * @return
+	 * The value of the ordinate
+	 */
+	public double getOrdinate(int dimension);
+
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/DirectPosition.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/GeometryType.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/GeometryType.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/GeometryType.java	(revision 38288)
@@ -0,0 +1,134 @@
+package org.gvsig.fmap.geom.type;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+
+/**
+ * This class represents the type of a geometry. All the geometries
+ * has to have a type that can be retrieved using the 
+ * {@link Geometry}{@link #getGeometryType()} method.
+ * 
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface GeometryType {
+		
+	/**
+	 * @return the identifier of the geometry type. This identifier
+	 * is assigned by the {@link GeometryManager} in run time.
+	 */
+	public int getId();
+	
+	/**
+	 * @return the name of the geometry type.
+	 */
+	public String getName();
+	
+	/**
+	 * @return the type of the geometry. It is a constant value
+	 * that has to be one of the values in {@link Geometry.TYPES}
+	 * The type is an abstract representation of the object (Point, Curve...) 
+	 * but it is not a concrete representation (Point2D, Point3D...). 
+	 */
+	public int getType();	
+	
+	/**
+	 * @return the subtype of the geometry. It is a constant value
+	 * that has to be one of the values in {@link Geometry.SUBTYPES}.
+	 * The subtype represents a set of geometries with a 
+	 * dimensional relationship (2D, 3D, 2DM...)
+	 */
+	public int getSubType();
+	
+	/**
+	 * Check if a geometry type inherits of other type. E.g:
+	 * the super type of an arc could be a a curve, the super 
+	 * type of a circle could be a surface...
+	 * @param geometryType
+	 * the value of the {@link Geometry.TYPES} to check if is 
+	 * it super type
+	 * @return
+	 * <true> if the the parameter is a super type of this
+	 * geometry type
+	 */
+	public boolean isTypeOf(int geometryType);
+	   
+	/**
+     * Check if a geometry subType inherits of other subType. E.g:
+     * the super Subtype of a geometry 3D could be a geometry 2D, 
+     * because the 3D extends the behavior of a geometry 2D.
+     * @param geometrySubType
+     * the value of the {@link Geometry.SUBTYPES} to check if is 
+     * it super subType
+     * @return
+     * <true> if the the parameter is a super subType of this
+     * geometry type
+     */
+	public boolean isSubTypeOf(int geometrySubType);
+
+    /**
+     * Check if a geometry type inherits of other type. E.g:
+     * the super type of an arc could be a a curve, the super
+     * type of a circle could be a surface...
+     * 
+     * @param geometryType
+     *            the geometry type to check if is it super type
+     * @return
+     *         if the the parameter is a super type of this
+     *         geometry type
+     */
+    public boolean isTypeOf(GeometryType geometryType);
+
+    /**
+     * Check if a geometry subType inherits of other subType. E.g:
+     * the super Subtype of a geometry 3D could be a geometry 2D,
+     * because the 3D extends the behavior of a geometry 2D.
+     * 
+     * @param geometryType
+     *            the geometry type to check if is it super subtype
+     * @return
+     *         if the the parameter is a super subType of this
+     *         geometry type
+     */
+    public boolean isSubTypeOf(GeometryType geometryType);
+	
+	/**
+	 * This method creates a {@link Geometry} with the type specified 
+	 * by this class. The geometry is empty, and all the internal 
+	 * attributes must be assigned to a value when the geometry has  
+	 * been created.
+	 * 
+	 * @return
+	 * A empty geometry 
+	 * @throws InstantiationException
+	 * This exception is maybe thrown when  the application is  trying 
+	 * to instantiate the geometry
+	 * @throws IllegalAccessException
+	 * This exception is maybe thrown when  the application is  trying 
+	 * to instantiate the geometry
+	 */
+	public Geometry create() throws CreateGeometryException;
+		
+	/**
+	 * Registers an operation for this geometry type. 
+	 * @param index
+	 * @param geomOp
+	 */
+	public void setGeometryOperation(int index, GeometryOperation geomOp);
+	
+	/**
+	 * Get the operation for this geometry at a concrete position
+	 * @param index
+	 * The position of the operation
+	 * @return
+	 * A geometry operation
+	 */
+	public GeometryOperation getGeometryOperation(int index);
+		
+	/**
+	 * @return the geometry as a String
+	 */
+	public String toString();
+	
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/GeometryType.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/GeometryTypeNotValidException.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/GeometryTypeNotValidException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/GeometryTypeNotValidException.java	(revision 38288)
@@ -0,0 +1,94 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.type;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.gvsig.fmap.geom.GeometryException;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class GeometryTypeNotValidException extends GeometryException {
+	private static final long serialVersionUID = 2588983103873322295L;
+
+	/**
+	 * Key to retrieve this exception's message
+	 */
+	private static final String MESSAGE_KEY = "geometry_type_not_valid_exception";
+	/**
+	 * This exception's message. Substitution fields follow the format %(fieldName) and 
+	 * must be stored in the Map returned by the values() method. 
+	 */
+	private static final String FORMAT_STRING = 
+		"The geometry with type %(type) and subType %(subType) is not supported.";
+	
+	/**
+	 * Class name of the geometry type. Should never be null in this exception
+	 */
+	private int type;
+	private int subType;
+		
+	/**
+	 * Main constructor that provides both context data and a cause Exception
+	 * @param geomClass geometry class 
+	 * @param e cause exception
+	 */
+	public GeometryTypeNotValidException(int type, int subType, Exception e) {
+		super(FORMAT_STRING, e, MESSAGE_KEY, serialVersionUID);
+		// messageKey = MESSAGE_KEY;
+		// formatString = FORMAT_STRING;
+		// code = serialVersionUID;
+		//		
+		// if (e != null) {
+		// initCause(e);
+		// }
+		
+		this.type = type;
+		this.subType = subType;
+	}
+	
+	/**
+	 * Main constructor that provides both context data and a cause Exception
+	 * @param geomClass geometry class 
+	 * @param e cause exception
+	 */
+	public GeometryTypeNotValidException(int type, int subType) {
+		this(type, subType, null);
+	}	
+	
+	protected Map values() {
+		HashMap map = new HashMap();
+		map.put("type", new Integer(type));
+		map.put("subType", new Integer(subType));
+		return map;
+	}
+}
+
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/GeometryTypeNotValidException.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/impl/DefaultGeometryType.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/impl/DefaultGeometryType.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/impl/DefaultGeometryType.java	(revision 38288)
@@ -0,0 +1,272 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.type.impl;
+
+import java.lang.reflect.Constructor;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.operation.GeometryOperation;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class DefaultGeometryType implements GeometryType {
+	/** 
+	 * The geometry identifier
+	 */
+	private int id;
+	
+	/** 
+	 * Geometry type name
+	 */
+	private String name;
+		
+	/** Class that implements this class type */
+	private Class geometryClass;
+	
+	/**
+	 * The type of the geometry. The type is an abstract representation
+	 * of the object (Point, Curve...) but it is not a concrete 
+	 * representation (Point2D, Point3D...). To do that comparation
+	 * the id field is used.
+	 */
+	private int type;
+	
+	/**
+	 * The subtype of the geometry. The subtype represents a set of 
+	 * geometries with a dimensional relationship (2D, 3D, 2DM...)
+	 */
+	private int subType;	
+		
+	/** 
+	 * Registered operations for a concrete geometry type
+	 */
+	private List geometryOperations = new ArrayList();
+	
+	/**
+	 * Super types of a geometry. e.g: the super type of an
+	 * arc is a curve, the super type of a circle is a surface...
+	 * The supertypes are defined in the ISO 19107 
+	 * 
+	 * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012"
+	 * >ISO 19107< /a>
+	 */
+	private int[] superTypes = null;
+	
+	/**
+     * Super SubTypes of a geometry. e.g: the super SubType of a
+     * geometry 3D is a geometry 2D, because the 3D extends the
+     * behavior of a geometry 2D
+     */
+	private int[] superSubTypes = null;
+	
+    private Constructor constructor;
+    private final Object[] parameters = { this };
+
+	/**
+     * This constructor is used by the {@link GeometryManager} when it
+     * register a new GeometryType. It has not be used from other
+     * parts.
+     * @param geomClass
+     * Geometry class (e.g: Point2D.class)
+     * @param name
+     * Symbolic Geometry name that is used to persist the geometry type. In some
+     * cases, it is better to use this name because the id can change for different
+     * application executions.              
+     * @param id
+     * Geometry id  
+     * @param typeName
+     * The geometry type name
+     * @param type
+     * The geometry abstract type    
+     * @param superTypes
+     * The superTypes of the geometry type
+     * @param superSubTypes
+     * The superSubtypes of the geometry type      
+     */
+    public DefaultGeometryType(Class geomClass, String name, int id, int type, int subType, 
+        int[] superTypes, int[] superSubTypes) {
+        this.geometryClass = geomClass;
+        if (name == null) {
+            this.name = geomClass.getName();
+        } else {
+            this.name = name;
+        }
+        this.id = id;       
+        this.type = type;   
+        this.subType = subType;
+        this.superTypes = superTypes;
+        this.superSubTypes = superSubTypes;
+
+        Class[] parameterTypes = { GeometryType.class };
+        try {
+            constructor = geometryClass.getConstructor(parameterTypes);
+        } catch (NoSuchMethodException e) {
+            throw new RuntimeException(
+                "Error constructor of the geometry class " + geomClass
+                    + " with one parameter of type GeometryType not found", e);
+        }
+    }	
+	
+	/**
+	 * This constructor is used by the {@link GeometryManager} when it
+	 * register a new GeometryType. It has not be used from other
+	 * parts.
+	 * @param geomClass
+	 * Geometry class (e.g: Point2D.class)
+	 * @param name
+	 * Symbolic Geometry name that is used to persist the geometry type. In some
+	 * cases, it is better to use this name because the id can change for different
+	 * application executions.  	 		
+	 * @param id
+	 * Geometry id	
+	 * @param typeName
+	 * The geometry type name
+	 * @param type
+	 * The geometry abstract type			
+	 */
+	public DefaultGeometryType(Class geomClass, String name, int id, int type, int subType) {
+		this(geomClass, name, id, type, subType, new int[0], new int[0]);
+	}
+	
+	/**
+	 * This method creates a {@link Geometry} with the type specified 
+	 * by this GeometryType. The geometry has to have a constructor
+	 * without arguments.
+	 * 
+	 * @return A new geometry
+	 * @throws CreateGeometryException 
+	 */
+	public Geometry create() throws CreateGeometryException{
+		try {
+            return (Geometry) constructor.newInstance(parameters);
+		} catch (Exception e) {
+			throw new CreateGeometryException(type, subType, e);
+		} 
+	}
+	
+	/**
+	 * Guardamos una referencia a una instancia de la operación en el índice que se pasa como parámetro.
+	 * Si el índice ya está ocupado se sobrescribe.
+	 * 
+	 * @param index
+	 * @param geomOp
+	 */
+	public void setGeometryOperation(int index, GeometryOperation geomOp) {
+		
+		while (index > geometryOperations.size()) {
+			geometryOperations.add(null);
+		}
+		
+		if (index == geometryOperations.size()) {
+			geometryOperations.add(geomOp);
+		} else {				
+			geometryOperations.set(index, geomOp);
+		}
+	}
+	
+	public GeometryOperation getGeometryOperation(int index) {
+		return (GeometryOperation) geometryOperations.get(index);
+	}
+	
+	public Class getGeometryClass() {
+		return geometryClass;
+	}
+	
+	public String toString() {
+		StringBuffer sb = new StringBuffer("[")
+		.append(geometryClass.getName())
+		.append(",[")
+		.append(geometryOperations.toString())
+		.append("]");
+		
+		return sb.toString();
+	}
+	
+	public int getId() {
+		return id;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public int getType() {
+		return type;
+	}
+
+	public int getSubType() {
+		return subType;
+	}
+
+    public boolean isTypeOf(int geometryType) {
+        if (type == geometryType){
+            return true;
+        }
+        for (int i=0 ; i<superTypes.length ; i++){
+            if(superTypes[i] == geometryType){
+                return true;
+            }
+        }
+        return Geometry.TYPES.GEOMETRY == geometryType;
+    }
+
+    public boolean isSubTypeOf(int geometrySubType) {
+        if (subType == geometrySubType){
+            return true;
+        }
+        for (int i=0 ; i<superSubTypes.length ; i++){
+            if(superSubTypes[i] == geometrySubType){
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public boolean isTypeOf(GeometryType geometryType) {
+        return isTypeOf(geometryType.getType());
+    }
+
+    public boolean isSubTypeOf(GeometryType geometryType) {
+        return isSubTypeOf(geometryType.getSubType());
+    }
+
+    public boolean equals(Object obj) {
+        if (obj instanceof GeometryType) {
+            GeometryType other = (GeometryType) obj;
+            return type == other.getType() && subType == other.getSubType();
+        }
+        return false;
+    }
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/impl/DefaultGeometryType.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/GeometryTypeNotSupportedException.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/GeometryTypeNotSupportedException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/GeometryTypeNotSupportedException.java	(revision 38288)
@@ -0,0 +1,109 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+
+package org.gvsig.fmap.geom.type;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.gvsig.fmap.geom.GeometryException;
+
+/**
+ * This exception is raised when the someone tries to access a geometry 
+ * type that is not supported.
+ * 
+ * @author jiyarza
+ */
+public class GeometryTypeNotSupportedException extends GeometryException {
+
+	/**
+	 * Generated serial version UID 
+	 */
+	private static final long serialVersionUID = -196778635358286969L;
+
+	/**
+	 * Key to retrieve this exception's message
+	 */
+	private static final String MESSAGE_KEY = "geometry_type_not_supported_exception";
+	/**
+	 * This exception's message. Substitution fields follow the format %(fieldName) and 
+	 * must be stored in the Map returned by the values() method. 
+	 */
+	private static final String FORMAT_STRING = 
+		"The geometry class %(geomClassName) is not registered.";
+	
+	/**
+	 * Class name of the geometry type. Should never be null in this exception
+	 */
+	private String geomClassName = null;
+	
+	
+	/**
+	 * Constructor with some context data for cases in which the root cause of 
+	 * <code>this</code> is internal (usually an unsatisfied logic rule).
+	 * @param geomClass geometry class
+	 */
+	public GeometryTypeNotSupportedException(Class geomClass){
+		this(geomClass, null);
+	}
+	
+	/**
+	 * Constructor to use when <code>this</code> is caused by another Exception 
+	 * but there is not further context data available.
+	 * @param e cause exception
+	 */
+	public GeometryTypeNotSupportedException(Exception e) {
+		this(null, e);
+	}
+	
+	public GeometryTypeNotSupportedException(int type, int subType){
+	    super(
+	        "Geometry type %(type), %(subType) not supported.",
+            "_geometry_type_XtypeX_XsubTypeX_not_supported",
+	        serialVersionUID
+	     );
+		setValue("type", new Integer(type));
+        setValue("subType", new Integer(subType));
+	}
+	
+	public GeometryTypeNotSupportedException(String geomClassName){
+        super(FORMAT_STRING, MESSAGE_KEY, serialVersionUID);
+        
+        if (geomClassName != null) {
+            setValue("geomClassName", geomClassName);
+        }
+	}
+	
+	/**
+	 * Main constructor that provides both context data and a cause Exception
+	 * @param geomClass geometry class 
+	 * @param e cause exception
+	 */
+	public GeometryTypeNotSupportedException(Class geomClass, Exception e) {
+		super(FORMAT_STRING, e, MESSAGE_KEY, serialVersionUID);
+		
+		if (geomClass != null) {
+		    setValue("geomClassName", geomClass.getName());
+		}
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/GeometryTypeNotSupportedException.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/persistence/GeometryTypePersistenceFactory.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/persistence/GeometryTypePersistenceFactory.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/type/persistence/GeometryTypePersistenceFactory.java	(revision 38288)
@@ -0,0 +1,92 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.type.persistence;
+
+import org.gvsig.fmap.geom.GeometryException;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException;
+import org.gvsig.tools.dynobject.DynStruct;
+import org.gvsig.tools.persistence.AbstractSinglePersistenceFactory;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+
+/**
+ * Factory to persist {@link GeometryType} objects.
+ * 
+ * @author gvSIG Team
+ * @version $Id$
+ */
+public class GeometryTypePersistenceFactory extends
+    AbstractSinglePersistenceFactory {
+
+    private static final GeometryManager geometryManager = GeometryLocator
+        .getGeometryManager();
+
+    private static final String DYNCLASS_NAME = "GeometryType";
+    private static final String DYNCLASS_DESCRIPTION = "gvSIG Geometry type";
+
+    private static final String FIELD_TYPE = "type";
+    private static final String FIELD_SUBTYPE = "subtype";
+
+    /**
+     * Creates a new {@link GeometryTypePersistenceFactory}. It will persist
+     * the geometry type and subtype values, and use it to load
+     * {@link GeometryType}s from persistence by calling
+     * {@link GeometryManager#getGeometryType(int, int)}.
+     */
+    public GeometryTypePersistenceFactory() {
+        super(GeometryType.class, DYNCLASS_NAME, DYNCLASS_DESCRIPTION, null,
+            null);
+
+        DynStruct definition = this.getDefinition();
+        definition.addDynFieldInt(FIELD_TYPE).setMandatory(true);
+        definition.addDynFieldInt(FIELD_SUBTYPE).setMandatory(true);
+    }
+
+    public Object createFromState(PersistentState state)
+        throws PersistenceException {
+        int type = state.getInt(FIELD_TYPE);
+        int subType = state.getInt(FIELD_SUBTYPE);
+
+        try {
+            return geometryManager.getGeometryType(type, subType);
+        } catch (GeometryTypeNotSupportedException e) {
+            throw new PersistenceException(
+                "Error creating the geometry type with type = " + type
+                    + ", subType = " + subType, e);
+        } catch (GeometryException e) {
+            throw new PersistenceException(
+                "Error creating the geometry type with type = " + type
+                    + ", subType = " + subType, e);
+        }
+    }
+
+    public void saveToState(PersistentState state, Object obj)
+        throws PersistenceException {
+        GeometryType type = (GeometryType) obj;
+        state.set(FIELD_TYPE, type.getType());
+        state.set(FIELD_SUBTYPE, type.getSubType());
+    }
+
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiCurve.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiCurve.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiCurve.java	(revision 38288)
@@ -0,0 +1,62 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.aggregate;
+
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.OrientableCurve;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_Curve specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * MultiCurve is an aggregate class containing only instances of {@link OrientableCurve}.  
+ * The association role "element" shall be the set of {@link OrientableCurve}'s contained in 
+ * this MultiCurve.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface MultiCurve extends MultiPrimitive{
+	
+	/**
+	 * Adds a new curve to the  multi curve
+	 * @param curve
+	 * The curve to add
+	 */
+	void addCurve(Curve curve);
+	
+	/**
+	 * Gets the curve that is on a concrete position
+	 * inside the multi curve 
+	 * @param index
+	 * The position
+	 * @return
+	 * The selected curve
+	 */
+	Curve getCurveAt(int index);
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiCurve.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/BaseMultiPrimitive2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/BaseMultiPrimitive2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/BaseMultiPrimitive2D.java	(revision 38288)
@@ -0,0 +1,77 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.aggregate.impl;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.aggregate.MultiPrimitive;
+import org.gvsig.fmap.geom.primitive.Primitive;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class BaseMultiPrimitive2D extends BaseMultiPrimitive implements
+MultiPrimitive {
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public BaseMultiPrimitive2D(GeometryType geomType) {
+		super(geomType);
+	}
+
+	/**
+	 * @param id
+	 * @param projection
+	 * @param geometries
+	 */
+	BaseMultiPrimitive2D(GeometryType geomType, String id, IProjection projection,
+			Geometry[] geometries) {
+		super(geomType, id, projection, geometries);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#cloneGeometry()
+	 */
+	public Geometry cloneGeometry() {
+		Primitive[] aux = new Primitive[getPrimitivesNumber()];
+		for (int i = 0; i < getPrimitivesNumber(); i++) {
+			aux[i] = (Primitive)((Geometry)geometries.get(i)).cloneGeometry()
+			.getInternalShape();
+		}
+		return new BaseMultiPrimitive2D(getGeometryType(), id, projection, aux);
+	}	
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/BaseMultiPrimitive2D.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiPoint2DZ.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiPoint2DZ.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiPoint2DZ.java	(revision 38288)
@@ -0,0 +1,110 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.aggregate.impl;
+
+import java.awt.geom.Point2D;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.aggregate.MultiPoint;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * Multipunto 3D.
+ * 
+ * @author Vicente Caballero Navarro
+ */
+public class MultiPoint2DZ extends MultiPoint2D implements MultiPoint {
+	private static final long serialVersionUID = -2905029760276555041L;
+	double[] z = null;
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public MultiPoint2DZ(GeometryType geometryType) {
+		super(geometryType);		
+	}
+	
+	/**
+	 * 
+	 * @param id
+	 * @param projection
+	 * @param x
+	 * @param y
+	 * @param z
+	 */
+	MultiPoint2DZ(GeometryType geometryType, String id, IProjection projection, double[] x,
+			double[] y, double[] z) {
+		super(geometryType, id, projection, x, y);
+		this.z = z;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#cloneGeometry()
+	 */
+	public Geometry cloneGeometry() {
+		double[] x = new double[getPrimitivesNumber()];
+		double[] y = new double[getPrimitivesNumber()];
+		for (int i = 0; i < getPrimitivesNumber(); i++) {
+			Point2D p = ((Geometry)geometries.get(i)).getHandlers(Geometry.SELECTHANDLER)[0]
+					.getPoint();
+
+			x[i] = p.getX();
+			y[i] = p.getY();
+		}
+		return new MultiPoint2DZ(geometryType, id, projection, x, y, (double[]) z.clone());
+	}
+
+	/**
+	 * Devuelve un array con todos los valores de Z.
+	 * 
+	 * @return Array de Zs.
+	 */
+	public double[] getZs() {
+		return z;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiPoint2DZ.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiCurve2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiCurve2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiCurve2D.java	(revision 38288)
@@ -0,0 +1,113 @@
+package org.gvsig.fmap.geom.aggregate.impl;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.aggregate.MultiCurve;
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.impl.Curve2D;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id: FMultiPolyline2D.java,v 1.2 2008/03/25 08:47:41 cvs Exp $
+ * $Log: FMultiPolyline2D.java,v $
+ * Revision 1.2  2008/03/25 08:47:41  cvs
+ * Visitors removed
+ *
+ * Revision 1.1  2008/03/12 08:46:20  cvs
+ * *** empty log message ***
+ *
+ *
+ */
+/**
+ * @author Jorge Piera Llodr� (jorge.piera@iver.es)
+ */
+public class MultiCurve2D extends BaseMultiPrimitive implements MultiCurve {
+	private static final long serialVersionUID = -5279820875142516144L;
+	
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public MultiCurve2D(GeometryType geomType) {
+		super(geomType);		
+	}
+	
+	MultiCurve2D(GeometryType geomType, String id, IProjection projection) {
+		super(geomType, id, projection);
+	}
+
+	MultiCurve2D(GeometryType geomType, String id, IProjection projection, Curve2D[] lines) {
+		super(geomType, id, projection, lines);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.iver.cit.gvsig.fmap.core.FGeometryCollection#cloneGeometry()
+	 */
+	public Geometry cloneGeometry() {
+		MultiCurve2D auxCurve = new MultiCurve2D(geometryType, id, projection);
+		for (int i = 0; i < getPrimitivesNumber(); i++) {
+			auxCurve.addCurve((Curve)((Curve) geometries.get(i)).cloneGeometry());
+		}
+		return auxCurve;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.aggregate.MultiCurve#addCurve(org.gvsig.fmap.geom.primitive.Curve)
+	 */
+	public void addCurve(Curve curve) {
+		addPrimitive(curve);		
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.aggregate.MultiCurve#getCurveAt(int)
+	 */
+	public Curve getCurveAt(int index) {
+		return (Curve)getPrimitiveAt(index);
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiCurve2D.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiSolid2DZ.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiSolid2DZ.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiSolid2DZ.java	(revision 38288)
@@ -0,0 +1,109 @@
+package org.gvsig.fmap.geom.aggregate.impl;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.aggregate.MultiSolid;
+import org.gvsig.fmap.geom.primitive.Solid;
+import org.gvsig.fmap.geom.primitive.impl.Solid2DZ;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id: FMultiSolid.java,v 1.2 2008/03/25 08:47:41 cvs Exp $
+ * $Log: FMultiSolid.java,v $
+ * Revision 1.2  2008/03/25 08:47:41  cvs
+ * Visitors removed
+ *
+ * Revision 1.1  2008/03/12 08:46:20  cvs
+ * *** empty log message ***
+ *
+ *
+ */
+/**
+ * @author Jorge Piera Llodr� (jorge.piera@iver.es)
+ */
+public class MultiSolid2DZ extends BaseMultiPrimitive implements MultiSolid {
+	private static final long serialVersionUID = 6690458251466529134L;
+	
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public MultiSolid2DZ(GeometryType geomType) {
+		super(geomType);		
+	}
+	
+	MultiSolid2DZ(GeometryType geomType, String id, IProjection projection) {
+		super(geomType, id, projection);
+	}
+
+	MultiSolid2DZ(GeometryType geomType, String id, IProjection projection, Solid2DZ[] solids) {
+		super(geomType,id, projection, solids);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.gvsig.geometries.iso.GM_Object#coordinateDimension()
+	 */
+	public int getDimension() {
+		return 3;
+	}	
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.aggregate.MultiSolid#addSolid(org.gvsig.fmap.geom.primitive.Solid)
+	 */
+	public void addSolid(Solid solid) {
+		addPrimitive(solid);		
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.aggregate.MultiSolid#getSolidAt(int)
+	 */
+	public Solid getSolidAt(int index) {
+		return (Solid)getPrimitiveAt(index);
+	}
+
+}
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiSurface2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiSurface2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiSurface2D.java	(revision 38288)
@@ -0,0 +1,115 @@
+package org.gvsig.fmap.geom.aggregate.impl;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.aggregate.MultiSurface;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.fmap.geom.primitive.impl.Surface2D;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id: FMultiPolygon2D.java,v 1.2 2008/03/25 08:47:41 cvs Exp $
+ * $Log: FMultiPolygon2D.java,v $
+ * Revision 1.2  2008/03/25 08:47:41  cvs
+ * Visitors removed
+ *
+ * Revision 1.1  2008/03/12 08:46:20  cvs
+ * *** empty log message ***
+ *
+ *
+ */
+/**
+ * @author Jorge Piera Llodr� (jorge.piera@iver.es)
+ */
+public class MultiSurface2D extends BaseMultiPrimitive implements MultiSurface {
+	private static final long serialVersionUID = 625054010696136925L;
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public MultiSurface2D(GeometryType geomType) {
+		super(geomType);		
+	}
+	
+	MultiSurface2D(GeometryType geomType, String id, IProjection projection) {
+		super(geomType, id, projection);
+	}
+
+	MultiSurface2D(GeometryType geomType, String id, IProjection projection,
+			Surface2D[] polygons) {
+		super(geomType, id, projection, polygons);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.iver.cit.gvsig.fmap.core.FGeometryCollection#cloneGeometry()
+	 */
+	public Geometry cloneGeometry() {
+		MultiSurface2D auxSurface = new MultiSurface2D(geometryType, id, projection);
+		for (int i = 0; i < getPrimitivesNumber(); i++) {
+			auxSurface.addSurface((Surface)((Surface) geometries.get(i)).cloneGeometry());
+		}
+		return auxSurface;
+	}	
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.aggregate.MultiSurface#addSurface(org.gvsig.fmap.geom.primitive.Surface)
+	 */
+	public void addSurface(Surface surface) {
+		addPrimitive(surface);		
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.aggregate.MultiSurface#getSurfaceAt(int)
+	 */
+	public Surface getSurfaceAt(int index) {
+		return (Surface)getPrimitiveAt(index);
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiSurface2D.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiPoint2D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiPoint2D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiPoint2D.java	(revision 38288)
@@ -0,0 +1,307 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.fmap.geom.aggregate.impl;
+
+import java.awt.Rectangle;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Rectangle2D;
+import java.util.ArrayList;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.aggregate.MultiPoint;
+import org.gvsig.fmap.geom.handler.AbstractHandler;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.primitive.FShape;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.impl.Envelope2D;
+import org.gvsig.fmap.geom.primitive.impl.Point2D;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ * Multipunto 2D.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class MultiPoint2D extends BaseMultiPrimitive implements MultiPoint {
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public MultiPoint2D(GeometryType geometryType) {
+		super(geometryType);		
+	}
+
+	/**
+	 * 
+	 * @param geometryType
+	 * @param id
+	 * @param projection
+	 */
+	MultiPoint2D(GeometryType geometryType, String id, IProjection projection) {
+		super(geometryType, id, projection);
+	}
+	
+	/**
+	 * 
+	 * @param geometryType
+	 * @param id
+	 * @param projection
+	 * @param points
+	 */
+	public MultiPoint2D(GeometryType geometryType, String id, IProjection projection, Point2D[] points) {
+		super(geometryType, id, projection, points);
+	}
+	
+	
+	
+	/**
+	 * 
+	 * @param id
+	 * @param projection
+	 * @param x
+	 * @param y
+	 */
+	MultiPoint2D(GeometryType geometryType, String id, IProjection projection, double[] x,
+			double[] y) {
+		super(geometryType, id, projection);
+		geometries = new ArrayList();
+		for (int i = 0; i < x.length; i++) {
+			geometries.add(new Point2D(x[i], y[i]));
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#cloneGeometry()
+	 */
+	public Geometry cloneGeometry() {
+		MultiPoint auxPoint = new MultiPoint2D(geometryType, id, projection);
+		for (int i = 0; i < getPrimitivesNumber(); i++) {
+			auxPoint.addPoint((Point)((Point) geometries.get(i)).cloneGeometry());
+		}
+		return auxPoint;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.FGeometryCollection#getBounds()
+	 */
+	public Rectangle getBounds() {
+		Rectangle r = null;
+		if (getNumgeometries() > 0) {
+			r = ((Point)geometries.get(0)).getShape().getBounds();
+		}
+		
+		Rectangle2D r2d = new Rectangle2D.Double(
+				r.x, 
+				r.y, 
+				r.width,
+				r.height);
+		
+		for (int i = 1; i < getNumgeometries(); i++) {
+			java.awt.geom.Point2D p = ((Point)geometries.get(i))
+					.getHandlers(Geometry.SELECTHANDLER)[0].getPoint();
+			r2d.add(p.getX(), p.getY());
+		}
+		
+		Rectangle resp = new Rectangle(
+				Math.round((float) r2d.getMinX()),
+				Math.round((float) r2d.getMinY()),
+				Math.max(1, Math.round((float) r2d.getWidth())),
+				Math.max(1, Math.round((float) r2d.getHeight())));
+		// w,h >= 1
+		
+		return resp;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#getBounds2D()
+	 */
+	public Rectangle2D getBounds2D() {
+		Rectangle2D r = null;
+		if (getNumgeometries() > 0) {
+			java.awt.geom.Point2D p = ((Point)geometries.get(0))
+					.getHandlers(Geometry.SELECTHANDLER)[0].getPoint();
+
+			r = new Rectangle2D.Double(p.getX(), p.getY(), 0.001, 0.001);
+		}
+		for (int i = 1; i < getNumgeometries(); i++) {
+			java.awt.geom.Point2D p = ((Point)geometries.get(i))
+					.getHandlers(Geometry.SELECTHANDLER)[0].getPoint();
+			r.add(p.getX(), p.getY());
+		}
+		return r;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.FShape#cloneFShape()
+	 */
+	public FShape cloneFShape() {
+		Point2D[] aux = new Point2D[getNumgeometries()];
+		for (int i = 0; i < getNumgeometries(); i++) {
+			aux[i] = (Point2D) ((Point)geometries.get(i)).cloneGeometry().getInternalShape();
+		}
+		return (FShape) new MultiPoint2D(getGeometryType(), id, projection, aux);
+	}
+
+	/**
+	 * @return the numbre of points
+	 * @deprecated use getPrimitivesNumber
+	 */
+	public int getNumgeometries() {
+		return getPrimitivesNumber();
+	}
+
+	/**
+	 * @return the numbre of points
+	 * @deprecated use getPrimitivesNumber
+	 */
+	public int getNumPoints() {
+		return getPrimitivesNumber();
+	}
+
+	public Point2D getPoint(int i) {
+		return (Point2D) ((Point)geometries.get(i)).getInternalShape();
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @author Vicente Caballero Navarro
+	 */
+	class PointHandler extends AbstractHandler {
+		/**
+		 * Crea un nuevo PointHandler.
+		 *
+		 * @param x
+		 *            DOCUMENT ME!
+		 * @param y
+		 *            DOCUMENT ME!
+		 */
+		public PointHandler(int i, Point2D p) {
+			point = new java.awt.geom.Point2D.Double(p.getX(), p.getY());
+			index = i;
+		}
+
+		/**
+		 * DOCUMENT ME!
+		 *
+		 * @param x
+		 *            DOCUMENT ME!
+		 * @param y
+		 *            DOCUMENT ME!
+		 *
+		 * @return DOCUMENT ME!
+		 */
+		public void move(double x, double y) {
+			java.awt.geom.Point2D p = ((Point)geometries.get(index))
+					.getHandlers(Geometry.SELECTHANDLER)[0].getPoint();
+
+			point.setLocation(p.getX() + x, p.getY() + y);
+		}
+
+		/**
+		 * @see org.gvsig.fmap.geom.handler.Handler#set(double, double)
+		 */
+		public void set(double x, double y) {
+			point.setLocation(x, y);
+		}
+
+	}
+
+	public void transform(AffineTransform at) {
+		for (int i = 0; i < getNumgeometries(); i++) {
+			((Point)geometries.get(i)).transform(at);
+		}
+
+	}
+
+	public Envelope getEnvelope() {
+		Envelope r = null;
+		if (getNumgeometries() > 0) {
+			java.awt.geom.Point2D p = ((Point)geometries.get(0))
+					.getHandlers(Geometry.SELECTHANDLER)[0].getPoint();
+
+			r = new Envelope2D(p.getX(), p.getY(), p.getX()+0.001, p.getY()+0.001);
+		}
+		for (int i = 1; i < getNumgeometries(); i++) {
+			java.awt.geom.Point2D p = ((Point)geometries.get(i))
+					.getHandlers(Geometry.SELECTHANDLER)[0].getPoint();
+			r.add(new Envelope2D(p.getX(), p.getY(),p.getX()+0.001, p.getY()+0.001));
+		}
+		return r;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.aggregate.MultiPoint#addPoint(org.gvsig.fmap.geom.primitive.Point)
+	 */
+	public void addPoint(Point point) {
+		addPrimitive(point);		
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.aggregate.MultiPoint#setPoints(double[], double[])
+	 */
+	public void setPoints(double[] x, double[] y) {
+		geometries = new ArrayList();
+		for (int i = 0; i < x.length; i++) {
+			geometries.add(new Point2D(x[i], y[i]));
+		}	
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.aggregate.MultiPoint#getPointAt(int)
+	 */
+	public Point getPointAt(int index) {
+		return (Point)getPrimitiveAt(index) ;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiPoint2D.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiSurface3D.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiSurface3D.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiSurface3D.java	(revision 38288)
@@ -0,0 +1,59 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.fmap.geom.aggregate.impl;
+
+import org.cresques.cts.IProjection;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+
+/**
+ * @author gvSIG Team
+ * @version $Id$
+ *
+ */
+public class MultiSurface3D extends MultiSurface2D {
+    private static final long serialVersionUID = 3088528632507696618L;
+
+    public MultiSurface3D(GeometryType geomType) {
+        super(geomType);       
+    }
+    
+    public MultiSurface3D(GeometryType geomType, String id,
+        IProjection projection) {
+        super(geomType, id, projection);       
+    }
+
+    public Geometry cloneGeometry() {
+        MultiSurface3D auxSurface = new MultiSurface3D(geometryType, id, projection);
+        for (int i = 0; i < getPrimitivesNumber(); i++) {
+            auxSurface.addSurface((Surface)((Surface) geometries.get(i)).cloneGeometry());
+        }
+        return auxSurface;
+    }
+    
+    public int getDimension() {
+        return 3;
+    }   
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiSurface3D.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/BaseMultiPrimitive.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/BaseMultiPrimitive.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/BaseMultiPrimitive.java	(revision 38288)
@@ -0,0 +1,489 @@
+package org.gvsig.fmap.geom.aggregate.impl;
+
+import java.awt.Rectangle;
+import java.awt.Shape;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.cresques.cts.ICoordTrans;
+import org.cresques.cts.IProjection;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.aggregate.MultiPrimitive;
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.primitive.FShape;
+import org.gvsig.fmap.geom.primitive.GeneralPathX;
+import org.gvsig.fmap.geom.primitive.Primitive;
+import org.gvsig.fmap.geom.primitive.impl.AbstractPrimitive;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id: FGeometryCollection.java,v 1.2 2008/03/25 08:47:41 cvs Exp $
+ * $Log: FGeometryCollection.java,v $
+ * Revision 1.2  2008/03/25 08:47:41  cvs
+ * Visitors removed
+ *
+ * Revision 1.1  2008/03/12 08:46:20  cvs
+ * *** empty log message ***
+ *
+ *
+ */
+/**
+ * @author Jorge Piera Llodr� (jorge.piera@iver.es)
+ */
+public abstract class BaseMultiPrimitive extends AbstractPrimitive implements
+		MultiPrimitive {
+	private static final long serialVersionUID = 8023609161647736932L;
+	
+	private static final Logger logger = LoggerFactory.getLogger(GeometryManager.class);
+
+	protected ArrayList geometries = null;
+	
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public BaseMultiPrimitive(GeometryType geometryType) {
+		super(geometryType);
+		geometries = new ArrayList();
+	}
+
+	BaseMultiPrimitive(GeometryType geometryType, String id, IProjection projection,
+			Geometry[] geometries) {
+		super(geometryType, id, projection);
+		this.geometries = new ArrayList();
+		for (int i=0 ; i<geometries.length ; i++){
+			this.geometries.add(geometries[i]);
+		}
+	}	
+	
+	BaseMultiPrimitive(GeometryType geometryType, String id, IProjection projection) {
+		super(geometryType, id, projection);
+		this.geometries = new ArrayList();		
+	}	
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see java.awt.Shape#contains(double, double)
+	 */
+	public boolean contains(double x, double y) {
+		
+		boolean bResul;
+		for (int i = 0; i < getPrimitivesNumber(); i++) {
+
+			try {
+				bResul = containsPoint(
+						(Geometry)geometries.get(i), x, y);
+			} catch (GeometryOperationException e) {
+				logger.error("While doing contains: " + e.getMessage(), e);
+				bResul = true;
+			}
+
+			if (bResul)
+				return true;
+		}
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see java.awt.Shape#contains(double, double, double, double)
+	 */
+	public boolean contains(double x, double y, double w, double h) {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see java.awt.Shape#contains(java.awt.geom.Point2D)
+	 */
+	public boolean contains(Point2D p) {
+		boolean bResul;
+		for (int i = 0; i < getPrimitivesNumber(); i++) {
+			try {
+				bResul = containsPoint(
+						(Geometry)geometries.get(i),
+						p.getX(), p.getY());
+			} catch (GeometryOperationException e) {
+				logger.error("While doing contains: " + e.getMessage(), e);
+				bResul = true;
+			}
+			if (bResul)
+				return true;
+		}
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see java.awt.Shape#contains(java.awt.geom.Rectangle2D)
+	 */
+	public boolean contains(Rectangle2D r) {
+		boolean bResul;
+		for (int i = 0; i < getPrimitivesNumber(); i++) {
+			
+			try {
+				bResul = containsRectangle(
+						(Geometry)geometries.get(i),
+						r.getMinX(), r.getMinY(), r.getWidth(), r.getHeight());
+			} catch (GeometryOperationException e) {
+				logger.error("While doing contains: " + e.getMessage(), e);
+				bResul = true;
+			}
+			
+			
+			if (bResul)
+				return true;
+		}
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.gvsig.geometries.iso.GM_Object#coordinateDimension()
+	 */
+	public int getDimension() {
+		return 2;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#fastIntersects(double,
+	 *      double, double, double)
+	 */
+	public boolean fastIntersects(double x, double y, double w, double h) {
+		
+		boolean resp = false;
+		for (int i = 0; i < getPrimitivesNumber(); i++) {
+			
+			Geometry geom = (Geometry) geometries.get(i);
+			
+			try {
+				resp = intersectsRectangle(geom, x, y, w, h);
+			} catch (GeometryOperationException e) {
+				logger.error("While doing fast intersects: " + e.getMessage(), e);
+				resp = true;
+			}
+			
+			if (resp) {
+				return true;
+			}
+			
+				
+				
+		}
+		return false;
+	}
+
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see java.awt.Shape#getBounds()
+	 */
+	public Rectangle getBounds() {
+		Rectangle r = null;
+		if (getPrimitivesNumber() > 0) {
+			r = ((Geometry)geometries.get(0)).getShape().getBounds();
+		}
+		for (int i = 1; i < getPrimitivesNumber(); i++) {
+			Rectangle r2 = ((Geometry)geometries.get(i)).getShape().getBounds();
+			r.add(r2);
+		}
+		return r;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#getBounds2D()
+	 */
+	public Rectangle2D getBounds2D() {
+		return null;
+	}
+
+	public Handler[] getHandlers(int type) {
+		int numPrimitives = getPrimitivesNumber();
+		List handlers = new ArrayList();
+		for (int i = 0; i < numPrimitives; i++) {
+		    Handler[] currentHandlers = getPrimitiveAt(i).getHandlers(type);
+		    for (int j=0 ; j<currentHandlers.length ; j++){
+		        handlers.add(currentHandlers[j]);
+		    }
+		}
+		return (Handler[])handlers.toArray(new Handler[handlers.size()]);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#getInternalShape()
+	 */
+	public Shape getInternalShape() {
+		return this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#getPathIterator(java.awt.geom.AffineTransform)
+	 */
+	public PathIterator getPathIterator(AffineTransform at) {
+		GeneralPathX gpx = new GeneralPathX();
+		int primiNum = getPrimitivesNumber();
+		if (primiNum > 0) {
+			Point2D p = ((Geometry)geometries.get(0)).getHandlers(Geometry.SELECTHANDLER)[0]
+			                                                                              .getPoint();
+			gpx.moveTo(p.getX(), p.getY());
+
+			for (int i = 1; i < primiNum; i++) {
+				p = ((Geometry)geometries.get(i)).getHandlers(Geometry.SELECTHANDLER)[0]
+				                                                                              .getPoint();
+				gpx.lineTo(p.getX(), p.getY());
+			}
+			Point2D p2 = ((Geometry)geometries.get(primiNum-1)).getHandlers(Geometry.SELECTHANDLER)[((Geometry)geometries.get(primiNum-1)).getHandlers(Geometry.SELECTHANDLER).length-1]
+			                                                                                        .getPoint();
+			gpx.lineTo(p2.getX(), p2.getY());
+		}
+		return gpx.getPathIterator(at);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#getPathIterator(java.awt.geom.AffineTransform,
+	 *      double)
+	 */
+	public PathIterator getPathIterator(AffineTransform at, double flatness) {
+		GeneralPathX gpx = new GeneralPathX();
+		int primiNum = getPrimitivesNumber();
+		if (primiNum > 0) {
+			Point2D p = ((Geometry)geometries.get(0)).getHandlers(Geometry.SELECTHANDLER)[0]
+			                                                                              .getPoint();
+			gpx.moveTo(p.getX(), p.getY());
+
+			for (int i = 1; i < primiNum; i++) {
+				p = ((Geometry)geometries.get(i)).getHandlers(Geometry.SELECTHANDLER)[0]
+				                                                                              .getPoint();
+				gpx.lineTo(p.getX(), p.getY());
+			}
+			Point2D p2 = ((Geometry)geometries.get(primiNum-1)).getHandlers(Geometry.SELECTHANDLER)[((Geometry)geometries.get(primiNum-1)).getHandlers(Geometry.SELECTHANDLER).length-1]
+			                                                                                        .getPoint();
+			gpx.lineTo(p2.getX(), p2.getY());
+		}
+		return gpx.getPathIterator(at, flatness);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.gvsig.geometries.iso.aggregate.GM_Aggregate#getPrimitiveAt(int)
+	 */
+	public Primitive getPrimitiveAt(int i) {
+		if (i < getPrimitivesNumber()) {
+			return (Primitive) ((Geometry)geometries.get(i));
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.gvsig.geometries.iso.aggregate.GM_Aggregate#getPrimitivesNumber()
+	 */
+	public int getPrimitivesNumber() {
+		if (geometries == null) {
+			return 0;
+		}
+		return geometries.size();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see java.awt.Shape#intersects(double, double, double, double)
+	 */
+	public boolean intersects(double x, double y, double w, double h) {
+		boolean bResul;
+		for (int i = 0; i < getPrimitivesNumber(); i++) {
+
+			try {
+				bResul = containsRectangle((Geometry)geometries.get(i), x, y, w, h);
+			} catch (GeometryOperationException e) {
+				logger.error("While doing contains: " + e.getMessage(), e);
+				bResul = true;
+			}
+			if (bResul)
+				return true;
+		}
+		return false;
+	}
+
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#intersects(java.awt.geom.Rectangle2D)
+	 */
+	public boolean intersects(Rectangle2D r) {
+		for (int i = 0; i < getPrimitivesNumber(); i++) {
+			Point2D p = ((Geometry)geometries.get(i)).getHandlers(Geometry.SELECTHANDLER)[0]
+					.getPoint();
+			if (r.contains(p.getX(), p.getY()))
+				return true;
+		}
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#isSimple()
+	 */
+	public boolean isSimple() {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#reProject(org.cresques.cts.ICoordTrans)
+	 */
+	public void reProject(ICoordTrans ct) {
+		for (int i = 0; i < getPrimitivesNumber(); i++) {
+			((Geometry)geometries.get(i)).reProject(ct);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.IGeometry#transform(java.awt.geom.AffineTransform)
+	 */
+	public void transform(AffineTransform at) {
+		for (int i = 0; i < getPrimitivesNumber(); i++) {
+			((Geometry)geometries.get(i)).transform(at);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.gvsig.geometries.iso.GM_Object#getBoundary()
+	 */
+	public Envelope getEnvelope() {
+		Envelope r = null;
+		if (getPrimitivesNumber() > 0) {
+			r = ((Geometry)geometries.get(0)).getEnvelope();
+		}
+		for (int i = 1; i < getPrimitivesNumber(); i++) {
+			Envelope r2 = ((Geometry)geometries.get(i)).getEnvelope();
+			r.add(r2);
+		}
+		return r;
+	}
+
+	/**
+	 * @return the geometries
+	 * @deprecated
+	 */
+	public Geometry[] getGeometries() {
+		Geometry[] _geometries = new Geometry[geometries.size()];
+		for (int i=0 ; i<geometries.size() ; i++){
+			_geometries[i] = ((Geometry)geometries.get(i));
+		}
+		return _geometries;
+	}
+
+	public FShape cloneFShape() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Handler[] getSelectHandlers() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Handler[] getStretchingHandlers() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public GeneralPathX getGeneralPath() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.aggregate.MultiPrimitive#addPrimitive(org.gvsig.fmap.geom.primitive.Primitive)
+	 */
+	public void addPrimitive(Primitive primitive) {
+		geometries.add(primitive);
+	}
+	
+
+
+
+
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/BaseMultiPrimitive.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiCurve2DZ.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiCurve2DZ.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiCurve2DZ.java	(revision 38288)
@@ -0,0 +1,113 @@
+package org.gvsig.fmap.geom.aggregate.impl;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.aggregate.MultiCurve;
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.impl.Curve2DZ;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id: FMultiPolyline2D.java,v 1.2 2008/03/25 08:47:41 cvs Exp $
+ * $Log: FMultiPolyline2D.java,v $
+ * Revision 1.2  2008/03/25 08:47:41  cvs
+ * Visitors removed
+ *
+ * Revision 1.1  2008/03/12 08:46:20  cvs
+ * *** empty log message ***
+ *
+ *
+ */
+/**
+ * @author Jorge Piera Llodr� (jorge.piera@iver.es)
+ */
+public class MultiCurve2DZ extends BaseMultiPrimitive implements MultiCurve {
+	private static final long serialVersionUID = 3079910108112255174L;
+
+	/**
+	 * The constructor with the GeometryType like and argument 
+	 * is used by the {@link GeometryType}{@link #create()}
+	 * to create the geometry
+	 * @param type
+	 * The geometry type
+	 */
+	public MultiCurve2DZ(GeometryType geomType) {
+		super(geomType);
+	}
+
+	MultiCurve2DZ(GeometryType geomType, String id, IProjection projection) {
+		super(geomType, id, projection);
+	}
+
+	MultiCurve2DZ(GeometryType geomType, String id, IProjection projection, Curve2DZ[] lines) {
+		super(geomType, id, projection, lines);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see com.iver.cit.gvsig.fmap.core.FGeometryCollection#cloneGeometry()
+	 */
+	public Geometry cloneGeometry() {
+		MultiCurve2DZ auxCurve = new MultiCurve2DZ(geometryType, id, projection);
+		for (int i = 0; i < getPrimitivesNumber(); i++) {
+			auxCurve.addCurve((Curve)((Curve) geometries.get(i)).cloneGeometry());
+		}
+		return auxCurve;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.aggregate.MultiCurve#addCurve(org.gvsig.fmap.geom.primitive.Curve)
+	 */
+	public void addCurve(Curve curve) {
+		addPrimitive(curve);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.fmap.geom.aggregate.MultiCurve#getCurveAt(int)
+	 */
+	public Curve getCurveAt(int index) {
+		return (Curve)getPrimitiveAt(index);
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/impl/MultiCurve2DZ.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiPrimitive.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiPrimitive.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiPrimitive.java	(revision 38288)
@@ -0,0 +1,53 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.aggregate;
+
+import org.gvsig.fmap.geom.primitive.Primitive;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_MultiPrimitive specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * MultiPrimitive is the root class for all primitive aggregates. 
+ * The association role "element" shall be the set of {@link Primitive}'s contained 
+ * in this MultiPrimitive.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface MultiPrimitive extends Aggregate {
+
+	/**
+	 * Adds a new primitive to the primitive
+	 * @param primitive
+	 * The primitive to add
+	 */
+	void addPrimitive(Primitive primitive);
+	
+	
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiPrimitive.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiSurface.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiSurface.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiSurface.java	(revision 38288)
@@ -0,0 +1,62 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.aggregate;
+
+import org.gvsig.fmap.geom.primitive.OrientableSurface;
+import org.gvsig.fmap.geom.primitive.Surface;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_MultiSurface specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * MultiSurface is an aggregate class containing only instances of {@link OrientableSurface}. 
+ * The association role "element" shall be the set of {@link OrientableSurface}'s 
+ * contained in this GMultiSurface.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface MultiSurface extends MultiPrimitive{
+	
+	/**
+	 * Adds a new surface to the  multi surface
+	 * @param surface
+	 * The surface to add
+	 */
+	void addSurface(Surface surface);
+	
+	/**
+	 * Gets the surface that is on a concrete position
+	 * inside the multi surface 
+	 * @param index
+	 * The position
+	 * @return
+	 * The selected surface
+	 */
+	Surface getSurfaceAt(int index);
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiSurface.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiPoint.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiPoint.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiPoint.java	(revision 38288)
@@ -0,0 +1,61 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.aggregate;
+
+import org.gvsig.fmap.geom.primitive.Point;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_MultiPoint specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * MultiPoint is an aggregate class containing only points. 
+ * The association role "element" shall be the set of {@link Point}'s contained in 
+ * this MultiPoint.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface MultiPoint extends MultiPrimitive {
+	
+	/**
+	 * Adds a new point to the multipoint
+	 * @param point
+	 * The point to add
+	 */
+	void addPoint(Point point);
+	
+	/**
+	 * Gets the point that is on a concrete position
+	 * inside the multi point 
+	 * @param index
+	 * The position
+	 * @return
+	 * The selected point
+	 */
+	Point getPointAt(int index);
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiPoint.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiSolid.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiSolid.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiSolid.java	(revision 38288)
@@ -0,0 +1,60 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.aggregate;
+
+import org.gvsig.fmap.geom.primitive.Solid;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_MultiSolid specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * MultiSolid is an aggregate class containing only solids. The association role "element" 
+ * shall be the set of {@link Solid}'s contained in this MultiSolid.
+ * </p>
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface MultiSolid extends MultiPrimitive{
+	
+	/**
+	 * Adds a new solid to the  multi solid
+	 * @param solid
+	 * The solid to add
+	 */
+	void addSolid(Solid solid);
+	
+	/**
+	 * Gets the solid that is on a concrete position
+	 * inside the multi solid 
+	 * @param index
+	 * The position
+	 * @return
+	 * The selected solid
+	 */
+	Solid getSolidAt(int index);
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/MultiSolid.java
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/Aggregate.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/Aggregate.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/Aggregate.java	(revision 38288)
@@ -0,0 +1,71 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {Iver T.I.}   {Task}
+ */
+
+package org.gvsig.fmap.geom.aggregate;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.primitive.Primitive;
+
+/**
+ * <p>
+ * This interface is equivalent to the GM_Aggregate specified in 
+ * <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>.
+ * The aggregates gather geometric objects. Since they will often use orientation 
+ * modification, the curve reference and surface references do not go directly to 
+ * the {@link Curve} and {@link Surface}, but are directed to {@link OrientableCurve} 
+ * and {@link OrientableSurface}.
+ * </p>
+ * <p>
+ * Most geometric objects are contained in features, and cannot be held in 
+ * collections that are strong aggregations. For this reason, the collections 
+ * described on this package are all weak aggregations, and shall use 
+ * references to include geometric objects. 
+ * </p> 
+ * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012">ISO 19107</a>
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface Aggregate extends Geometry{	
+	
+	/**
+	 * Returns the number of {@link Primitive}'s that composes
+	 * this multi geometry.
+	 * @return the number of {@link Primitive}'s that composes
+	 * this multi geometry.
+	 */
+	public int getPrimitivesNumber();
+			
+	/**
+	 * Returns one of the {@link Primitive}'s that is in
+	 * a concrete position.
+	 * @param i
+	 * Geometry position.
+	 * @return
+	 * A simple geometry.
+	 */
+	public Primitive getPrimitiveAt(int i);
+	
+}

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/aggregate/Aggregate.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/GeometryException.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/GeometryException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/GeometryException.java	(revision 38288)
@@ -0,0 +1,63 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {}  {{Task}}
+*/
+package org.gvsig.fmap.geom;
+
+import org.gvsig.tools.exception.BaseException;
+
+/**
+ * Parent exception for the geometry library.
+ * 
+ * @author 2009- <a href="cordinyana@gvsig.org">C�sar Ordi�ana</a> - gvSIG team
+ */
+public class GeometryException extends BaseException {
+
+	private static final long serialVersionUID = -8382242322162454758L;
+
+	/**
+	 * @see BaseException#BaseException(String, String, long).
+	 */
+	protected GeometryException(String message, String key, long code) {
+		super(message, key, code);
+	}
+
+	/**
+	 * @see BaseException#BaseException(String, Throwable, String, long)
+	 */
+	protected GeometryException(String message, Throwable cause, String key,
+			long code) {
+		super(message, cause, key, code);
+	}
+	
+	public GeometryException(Throwable cause) {
+		super(
+			"Error managing geometries", 
+			cause, 
+			"_Error_managing_geometries", 
+			serialVersionUID
+		);
+	}
+}
\ No newline at end of file
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/exception/CreateEnvelopeException.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/exception/CreateEnvelopeException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/exception/CreateEnvelopeException.java	(revision 38288)
@@ -0,0 +1,46 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.exception;
+
+import org.gvsig.tools.exception.BaseException;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class CreateEnvelopeException extends BaseException{
+	private static final long serialVersionUID = -8080549653325427654L;
+	private final static String MESSAGE_FORMAT = "Exception creating the envelope with " +
+			"subType '%(subType)'.";
+	private final static String MESSAGE_KEY = "_CreateEnvelopeException";
+	
+	public CreateEnvelopeException(int subType, Throwable cause){
+		super(MESSAGE_FORMAT, cause, MESSAGE_KEY, serialVersionUID);
+		setValue("subType", new Integer(subType));
+	}
+}
+

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/exception/CreateEnvelopeException.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/exception/CreateGeometryException.java
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/exception/CreateGeometryException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/exception/CreateGeometryException.java	(revision 38288)
@@ -0,0 +1,50 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.geom.exception;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryException;
+
+/**
+ * Exception thrown when there is an error creating a new {@link Geometry}.
+ * 
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class CreateGeometryException extends GeometryException {
+	private static final long serialVersionUID = -9092927920296656571L;
+	private final static String MESSAGE_FORMAT = "Exception creating the geometry with " +
+			"type '%(type)' and subType '%(subType)'.";
+	private final static String MESSAGE_KEY = "_CreateGeometryException";
+	
+	public CreateGeometryException(int type, int subType, Throwable cause){
+		super(MESSAGE_FORMAT, cause, MESSAGE_KEY, serialVersionUID);
+		setValue("type", new Integer(type));
+		setValue("subType", new Integer(subType));
+	}
+	
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/exception/CreateGeometryException.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model.umldi
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model.umldi	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model.umldi	(revision 38288)
@@ -0,0 +1,496 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diagrams:Diagrams xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.topcased.org/DI/1.0" xmlns:diagrams="http://www.topcased.org/Diagrams/1.0" xmi:id="_VjL08OOTEdyGNPaNHSGn_w" activeDiagram="_lnHrcOO7EdyGNPaNHSGn_w">
+  <model href="model.uml#_wySgAOOSEdyLpcXsYAESEQ"/>
+  <subdiagrams xmi:id="_-tahoOOTEdyGNPaNHSGn_w">
+    <model href="model.uml#_wySgDuOSEdyLpcXsYAESEQ"/>
+    <diagrams xmi:id="_-ttckOOTEdyGNPaNHSGn_w" position="0,0" size="100,100" name="unnamed" viewport="0,81">
+      <property xmi:id="_-t3NkOOTEdyGNPaNHSGn_w" key="pageFormatName" value="A4"/>
+      <property xmi:id="_-t3NkeOTEdyGNPaNHSGn_w" key="diagramWidth" value="840"/>
+      <property xmi:id="_-t3NkuOTEdyGNPaNHSGn_w" key="diagramHeight" value="1188"/>
+      <property xmi:id="_-t3Nk-OTEdyGNPaNHSGn_w" key="pageMarginName" value="Small Margin"/>
+      <property xmi:id="_-t3NlOOTEdyGNPaNHSGn_w" key="diagramTopMargin" value="20"/>
+      <property xmi:id="_-t3NleOTEdyGNPaNHSGn_w" key="diagramBottomMargin" value="20"/>
+      <property xmi:id="_-t3NluOTEdyGNPaNHSGn_w" key="diagramLeftMargin" value="20"/>
+      <property xmi:id="_-t3Nl-OTEdyGNPaNHSGn_w" key="diagramRightMargin" value="20"/>
+      <property xmi:id="_-t3NmOOTEdyGNPaNHSGn_w" key="orientation" value="portrait"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_-ttckeOTEdyGNPaNHSGn_w" presentation="org.topcased.modeler.uml.classdiagram">
+        <element href="model.uml#_wySgDuOSEdyLpcXsYAESEQ"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_BpeDEOOUEdyGNPaNHSGn_w" position="290,123" size="104,-1">
+        <anchorage xmi:id="_HiwxsOOUEdyGNPaNHSGn_w" graphEdge="_K4TKIeOUEdyGNPaNHSGn_w _SAv-EOOVEdyGNPaNHSGn_w _loLQoeOVEdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_BpeDEeOUEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycS_OOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_BpeDEuOUEdyGNPaNHSGn_w">
+          <property xmi:id="_BpeDE-OUEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_BpeDFOOUEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycS_OOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_BpeDFeOUEdyGNPaNHSGn_w">
+          <property xmi:id="_BpeDFuOUEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="47"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_BpeDF-OUEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycS_OOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_K3jjQOOUEdyGNPaNHSGn_w" position="258,12" size="154,-1">
+        <anchorage xmi:id="_K4TKIOOUEdyGNPaNHSGn_w" graphEdge="_K4TKIeOUEdyGNPaNHSGn_w _SATSIOOVEdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_K3jjQeOUEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycRC-OSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_K3jjQuOUEdyGNPaNHSGn_w">
+          <property xmi:id="_K3jjQ-OUEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_K3jjROOUEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycRC-OSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_K3jjReOUEdyGNPaNHSGn_w">
+          <property xmi:id="_K3jjRuOUEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="38"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_K3jjR-OUEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycRC-OSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphEdge" xmi:id="_K4TKIeOUEdyGNPaNHSGn_w" anchor="_HiwxsOOUEdyGNPaNHSGn_w _K4TKIOOUEdyGNPaNHSGn_w">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_K4TKIuOUEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycS_eOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="_K4TKI-OUEdyGNPaNHSGn_w" id="stereotypeEdgeObject"/>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_R_tcQOOVEdyGNPaNHSGn_w" position="87,261" size="210,-1">
+        <anchorage xmi:id="_SAKIMOOVEdyGNPaNHSGn_w" graphEdge="_SATSIOOVEdyGNPaNHSGn_w _SAv-EOOVEdyGNPaNHSGn_w _tO2HEOOVEdyGNPaNHSGn_w _v27joOOVEdyGNPaNHSGn_w _xxt1UeOVEdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_R_tcQeOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycR4-OSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_R_tcQuOVEdyGNPaNHSGn_w">
+          <property xmi:id="_R_tcQ-OVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_R_tcROOVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycR4-OSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+          <contained xsi:type="di:GraphNode" xmi:id="_R_2mMOOVEdyGNPaNHSGn_w" position="0,0" size="-1,-1">
+            <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_R_2mMeOVEdyGNPaNHSGn_w" presentation="default">
+              <element href="model.uml#_wycR5eOSEdyLpcXsYAESEQ"/>
+            </semanticModel>
+          </contained>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_R_tcReOVEdyGNPaNHSGn_w">
+          <property xmi:id="_R_tcRuOVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="47"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_R_tcR-OVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycR4-OSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphEdge" xmi:id="_SATSIOOVEdyGNPaNHSGn_w" anchor="_K4TKIOOUEdyGNPaNHSGn_w _SAKIMOOVEdyGNPaNHSGn_w">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_SATSIeOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycTrOOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:EdgeObjectUV" xmi:id="_SATSIuOVEdyGNPaNHSGn_w" id="srcNameEdgeObject" uDistance="10" vDistance="10"/>
+        <contained xsi:type="di:EdgeObjectUV" xmi:id="_SATSI-OVEdyGNPaNHSGn_w" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+        <contained xsi:type="di:EdgeObjectUV" xmi:id="_SATSJOOVEdyGNPaNHSGn_w" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+        <contained xsi:type="di:EdgeObjectUV" xmi:id="_SATSJeOVEdyGNPaNHSGn_w" id="targetCountEdgeObject" uDistance="10" vDistance="-10"/>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="_SATSJuOVEdyGNPaNHSGn_w" visible="false" id="middleNameEdgeObject" offset="0,10"/>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="_SATSJ-OVEdyGNPaNHSGn_w" id="stereotypeEdgeObject" offset="0,-10"/>
+        <waypoints>[-272, 0, -129, -241]</waypoints>
+        <waypoints>[-272, 241, -129, 0]</waypoints>
+      </contained>
+      <contained xsi:type="di:GraphEdge" xmi:id="_SAv-EOOVEdyGNPaNHSGn_w" anchor="_SAKIMOOVEdyGNPaNHSGn_w _HiwxsOOUEdyGNPaNHSGn_w">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_SAv-EeOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycR5OOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="_SAv-EuOVEdyGNPaNHSGn_w" id="stereotypeEdgeObject"/>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_ln4VsOOVEdyGNPaNHSGn_w" position="413,263" size="166,-1">
+        <anchorage xmi:id="_loLQoOOVEdyGNPaNHSGn_w" graphEdge="_qggRgeOVEdyGNPaNHSGn_w _xRYIYeOVEdyGNPaNHSGn_w _loLQoeOVEdyGNPaNHSGn_w __g47EeOVEdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ln4VseOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycRx-OSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_ln4VsuOVEdyGNPaNHSGn_w">
+          <property xmi:id="_ln4Vs-OVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ln4VtOOVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycRx-OSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_ln4VteOVEdyGNPaNHSGn_w">
+          <property xmi:id="_ln4VtuOVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="47"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ln4Vt-OVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycRx-OSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphEdge" xmi:id="_loLQoeOVEdyGNPaNHSGn_w" anchor="_loLQoOOVEdyGNPaNHSGn_w _HiwxsOOUEdyGNPaNHSGn_w">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_loLQouOVEdyGNPaNHSGn_w" presentation="default"/>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="_loLQo-OVEdyGNPaNHSGn_w" id="stereotypeEdgeObject"/>
+        <waypoints>[0, -89, 154, 51]</waypoints>
+        <waypoints>[-154, -89, 0, 51]</waypoints>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_qgNWkOOVEdyGNPaNHSGn_w" position="543,398" size="162,-1">
+        <anchorage xmi:id="_qggRgOOVEdyGNPaNHSGn_w" graphEdge="_qggRgeOVEdyGNPaNHSGn_w _vLuDdeOVEdyGNPaNHSGn_w _89a4weOVEdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_qgNWkeOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycTIOOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_qgNWkuOVEdyGNPaNHSGn_w">
+          <property xmi:id="_qgNWk-OVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_qgNWlOOVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycTIOOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+          <contained xsi:type="di:GraphNode" xmi:id="_qgWggOOVEdyGNPaNHSGn_w" position="0,0" size="-1,-1">
+            <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_qgWggeOVEdyGNPaNHSGn_w" presentation="default">
+              <element href="model.uml#_wycTIuOSEdyLpcXsYAESEQ"/>
+            </semanticModel>
+          </contained>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_qgNWleOVEdyGNPaNHSGn_w">
+          <property xmi:id="_qgNWluOVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="47"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_qgNWl-OVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycTIOOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphEdge" xmi:id="_qggRgeOVEdyGNPaNHSGn_w" anchor="_qggRgOOVEdyGNPaNHSGn_w _loLQoOOVEdyGNPaNHSGn_w">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_qggRguOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycTIeOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="_qggRg-OVEdyGNPaNHSGn_w" id="stereotypeEdgeObject"/>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_tOsWEOOVEdyGNPaNHSGn_w" position="143,466" size="86,-1">
+        <anchorage xmi:id="_tOsWGOOVEdyGNPaNHSGn_w" graphEdge="_tO2HEOOVEdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_tOsWEeOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wySg7uOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_tOsWEuOVEdyGNPaNHSGn_w">
+          <property xmi:id="_tOsWE-OVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_tOsWFOOVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wySg7uOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_tOsWFeOVEdyGNPaNHSGn_w">
+          <property xmi:id="_tOsWFuOVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="47"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_tOsWF-OVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wySg7uOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphEdge" xmi:id="_tO2HEOOVEdyGNPaNHSGn_w" anchor="_tOsWGOOVEdyGNPaNHSGn_w _SAKIMOOVEdyGNPaNHSGn_w">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_tO2HEeOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wySg7-OSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="_tO2HEuOVEdyGNPaNHSGn_w" id="stereotypeEdgeObject"/>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_vLkScOOVEdyGNPaNHSGn_w" position="436,526" size="164,-1">
+        <anchorage xmi:id="_vLuDdOOVEdyGNPaNHSGn_w" graphEdge="_vLuDdeOVEdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_vLkSceOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycS9uOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_vLkScuOVEdyGNPaNHSGn_w">
+          <property xmi:id="_vLkSc-OVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_vLkSdOOVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycS9uOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_vLkSdeOVEdyGNPaNHSGn_w">
+          <property xmi:id="_vLkSduOVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="47"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_vLkSd-OVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycS9uOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphEdge" xmi:id="_vLuDdeOVEdyGNPaNHSGn_w" anchor="_vLuDdOOVEdyGNPaNHSGn_w _qggRgOOVEdyGNPaNHSGn_w">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_vLuDduOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycS9-OSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="_vLuDd-OVEdyGNPaNHSGn_w" id="stereotypeEdgeObject"/>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_v2xyoOOVEdyGNPaNHSGn_w" position="188,534" size="108,-1">
+        <anchorage xmi:id="_v2xyqOOVEdyGNPaNHSGn_w" graphEdge="_v27joOOVEdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_v2xyoeOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycTDeOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_v2xyouOVEdyGNPaNHSGn_w">
+          <property xmi:id="_v2xyo-OVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_v2xypOOVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycTDeOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_v2xypeOVEdyGNPaNHSGn_w">
+          <property xmi:id="_v2xypuOVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="47"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_v2xyp-OVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycTDeOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphEdge" xmi:id="_v27joOOVEdyGNPaNHSGn_w" anchor="_v2xyqOOVEdyGNPaNHSGn_w _SAKIMOOVEdyGNPaNHSGn_w">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_v27joeOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycTDuOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="_v27jouOVEdyGNPaNHSGn_w" id="stereotypeEdgeObject"/>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_xRFNcOOVEdyGNPaNHSGn_w" position="375,401" size="120,-1">
+        <anchorage xmi:id="_xRYIYOOVEdyGNPaNHSGn_w" graphEdge="_xRYIYeOVEdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_xRFNceOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wyShAeOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_xRFNcuOVEdyGNPaNHSGn_w">
+          <property xmi:id="_xRFNc-OVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_xRFNdOOVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wyShAeOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_xRFNdeOVEdyGNPaNHSGn_w">
+          <property xmi:id="_xRFNduOVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="47"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_xRFNd-OVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wyShAeOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphEdge" xmi:id="_xRYIYeOVEdyGNPaNHSGn_w" anchor="_xRYIYOOVEdyGNPaNHSGn_w _loLQoOOVEdyGNPaNHSGn_w">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_xRYIYuOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wyShAuOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="_xRYIY-OVEdyGNPaNHSGn_w" id="stereotypeEdgeObject"/>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_xxRJYOOVEdyGNPaNHSGn_w" position="60,396" size="115,-1">
+        <anchorage xmi:id="_xxt1UOOVEdyGNPaNHSGn_w" graphEdge="_xxt1UeOVEdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_xxRJYeOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wySgiuOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_xxRJYuOVEdyGNPaNHSGn_w">
+          <property xmi:id="_xxRJY-OVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_xxRJZOOVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wySgiuOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_xxRJZeOVEdyGNPaNHSGn_w">
+          <property xmi:id="_xxRJZuOVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="47"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_xxRJZ-OVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wySgiuOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphEdge" xmi:id="_xxt1UeOVEdyGNPaNHSGn_w" anchor="_xxt1UOOVEdyGNPaNHSGn_w _SAKIMOOVEdyGNPaNHSGn_w">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_xxt1UuOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wySgi-OSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="_xxt1U-OVEdyGNPaNHSGn_w" id="stereotypeEdgeObject"/>
+      </contained>
+      <contained xsi:type="di:GraphEdge" xmi:id="_89a4weOVEdyGNPaNHSGn_w" anchor="_89a4wOOVEdyGNPaNHSGn_w _qggRgOOVEdyGNPaNHSGn_w">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_89a4wuOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycSIOOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="_89a4w-OVEdyGNPaNHSGn_w" id="stereotypeEdgeObject"/>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_89RHwOOVEdyGNPaNHSGn_w" position="641,523" size="100,-1">
+        <anchorage xmi:id="_89a4wOOVEdyGNPaNHSGn_w" graphEdge="_89a4weOVEdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_89RHweOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycSH-OSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_89RHwuOVEdyGNPaNHSGn_w">
+          <property xmi:id="_89RHw-OVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_89RHxOOVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycSH-OSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_89RHxeOVEdyGNPaNHSGn_w">
+          <property xmi:id="_89RHxuOVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="47"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_89RHx-OVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycSH-OSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="__glZEOOVEdyGNPaNHSGn_w" position="603,92" size="100,-1">
+        <anchorage xmi:id="__g47EOOVEdyGNPaNHSGn_w" graphEdge="__g47EeOVEdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="__glZEeOVEdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycS2eOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="__glZEuOVEdyGNPaNHSGn_w">
+          <property xmi:id="__glZE-OVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="__glZFOOVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycS2eOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="__glZFeOVEdyGNPaNHSGn_w">
+          <property xmi:id="__glZFuOVEdyGNPaNHSGn_w" key="eStructuralFeatureID" value="38"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="__glZF-OVEdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycS2eOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphEdge" xmi:id="__g47EeOVEdyGNPaNHSGn_w" anchor="_loLQoOOVEdyGNPaNHSGn_w __g47EOOVEdyGNPaNHSGn_w">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="__g47EuOVEdyGNPaNHSGn_w" presentation="default"/>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="__g47E-OVEdyGNPaNHSGn_w" id="stereotypeEdgeObject"/>
+        <waypoints>[155, 0, 6, 161]</waypoints>
+      </contained>
+    </diagrams>
+    <diagrams xmi:id="_lnHrcOO7EdyGNPaNHSGn_w" position="0,0" size="100,100" name="unnamed" viewport="62,102">
+      <property xmi:id="_lowqMOO7EdyGNPaNHSGn_w" key="pageFormatName" value="A4"/>
+      <property xmi:id="_lowqMeO7EdyGNPaNHSGn_w" key="diagramWidth" value="840"/>
+      <property xmi:id="_lowqMuO7EdyGNPaNHSGn_w" key="diagramHeight" value="1188"/>
+      <property xmi:id="_lowqM-O7EdyGNPaNHSGn_w" key="pageMarginName" value="Small Margin"/>
+      <property xmi:id="_lowqNOO7EdyGNPaNHSGn_w" key="diagramTopMargin" value="20"/>
+      <property xmi:id="_lowqNeO7EdyGNPaNHSGn_w" key="diagramBottomMargin" value="20"/>
+      <property xmi:id="_lowqNuO7EdyGNPaNHSGn_w" key="diagramLeftMargin" value="20"/>
+      <property xmi:id="_lowqN-O7EdyGNPaNHSGn_w" key="diagramRightMargin" value="20"/>
+      <property xmi:id="_lowqOOO7EdyGNPaNHSGn_w" key="orientation" value="portrait"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_lnHrceO7EdyGNPaNHSGn_w" presentation="org.topcased.modeler.uml.classdiagram">
+        <element href="model.uml#_wySgDuOSEdyLpcXsYAESEQ"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_tj2RcOO7EdyGNPaNHSGn_w" position="521,113" size="189,-1">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_tj2RceO7EdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wycRC-OSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_tj2RcuO7EdyGNPaNHSGn_w">
+          <property xmi:id="_tj2Rc-O7EdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_tj2RdOO7EdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycRC-OSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_tj2RdeO7EdyGNPaNHSGn_w">
+          <property xmi:id="_tj2RduO7EdyGNPaNHSGn_w" key="eStructuralFeatureID" value="38"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_tj2Rd-O7EdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wycRC-OSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+          <contained xsi:type="di:GraphNode" xmi:id="_tkACguO7EdyGNPaNHSGn_w" position="0,0" size="-1,-1">
+            <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_tkACg-O7EdyGNPaNHSGn_w" presentation="default">
+              <element href="model.uml#_wycRPeOSEdyLpcXsYAESEQ"/>
+            </semanticModel>
+          </contained>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_ZlqPQOO8EdyGNPaNHSGn_w" position="168,108" size="167,-1">
+        <anchorage xmi:id="_RIojIeO9EdyGNPaNHSGn_w" graphEdge="_RIojIuO9EdyGNPaNHSGn_w _Rhg9MOO9EdyGNPaNHSGn_w _Rt4lQeO9EdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZlqPQeO8EdyGNPaNHSGn_w" presentation="default">
+          <element href="model.uml#_wySg8OOSEdyLpcXsYAESEQ"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_ZlqPQuO8EdyGNPaNHSGn_w">
+          <property xmi:id="_ZlqPQ-O8EdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZlqPROO8EdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wySg8OOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_ZlqPReO8EdyGNPaNHSGn_w">
+          <property xmi:id="_ZlqPRuO8EdyGNPaNHSGn_w" key="eStructuralFeatureID" value="38"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZlqPR-O8EdyGNPaNHSGn_w" presentation="default">
+            <element href="model.uml#_wySg8OOSEdyLpcXsYAESEQ"/>
+          </semanticModel>
+          <contained xsi:type="di:GraphNode" xmi:id="_ZlqPSOO8EdyGNPaNHSGn_w" position="0,0" size="-1,-1">
+            <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZlqPSeO8EdyGNPaNHSGn_w" presentation="default">
+              <element href="model.uml#_wySg8eOSEdyLpcXsYAESEQ"/>
+            </semanticModel>
+          </contained>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_IK7oUOO9EdyGNPaNHSGn_w" position="12,244" size="168,-1">
+        <anchorage xmi:id="_RIojIOO9EdyGNPaNHSGn_w" graphEdge="_RIojIuO9EdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_IK7oUeO9EdyGNPaNHSGn_w" presentation="default">
+          <element href="modelFmap.uml#_6UUp5eO8EdyGNPaNHSGn_w"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_IK7oUuO9EdyGNPaNHSGn_w">
+          <property xmi:id="_IK7oU-O9EdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_IK7oVOO9EdyGNPaNHSGn_w" presentation="default">
+            <element href="modelFmap.uml#_6UUp5eO8EdyGNPaNHSGn_w"/>
+          </semanticModel>
+          <contained xsi:type="di:GraphNode" xmi:id="_IK7oWuO9EdyGNPaNHSGn_w" position="0,0" size="-1,-1">
+            <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_IK7oW-O9EdyGNPaNHSGn_w" presentation="default">
+              <element href="modelFmap.uml#_6UUp5-O8EdyGNPaNHSGn_w"/>
+            </semanticModel>
+          </contained>
+          <contained xsi:type="di:GraphNode" xmi:id="_IK7oXOO9EdyGNPaNHSGn_w" position="0,0" size="-1,-1">
+            <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_IK7oXeO9EdyGNPaNHSGn_w" presentation="default">
+              <element href="modelFmap.uml#_6UUp6OO8EdyGNPaNHSGn_w"/>
+            </semanticModel>
+          </contained>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_IK7oVeO9EdyGNPaNHSGn_w">
+          <property xmi:id="_IK7oVuO9EdyGNPaNHSGn_w" key="eStructuralFeatureID" value="47"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_IK7oV-O9EdyGNPaNHSGn_w" presentation="default">
+            <element href="modelFmap.uml#_6UUp5eO8EdyGNPaNHSGn_w"/>
+          </semanticModel>
+          <contained xsi:type="di:GraphNode" xmi:id="_IK7oYOO9EdyGNPaNHSGn_w" position="0,0" size="-1,-1">
+            <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_IK7oYeO9EdyGNPaNHSGn_w" presentation="default">
+              <element href="modelFmap.uml#_6UUp6uO8EdyGNPaNHSGn_w"/>
+            </semanticModel>
+          </contained>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_JKQ-YOO9EdyGNPaNHSGn_w" position="164,346" size="167,-1">
+        <anchorage xmi:id="_RhXMMOO9EdyGNPaNHSGn_w" graphEdge="_Rhg9MOO9EdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_JKQ-YeO9EdyGNPaNHSGn_w" presentation="default">
+          <element href="modelFmap.uml#_6UUp9OO8EdyGNPaNHSGn_w"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_JKQ-YuO9EdyGNPaNHSGn_w">
+          <property xmi:id="_JKQ-Y-O9EdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_JKQ-ZOO9EdyGNPaNHSGn_w" presentation="default">
+            <element href="modelFmap.uml#_6UUp9OO8EdyGNPaNHSGn_w"/>
+          </semanticModel>
+          <contained xsi:type="di:GraphNode" xmi:id="_JKQ-aOO9EdyGNPaNHSGn_w" position="0,0" size="-1,-1">
+            <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_JKQ-aeO9EdyGNPaNHSGn_w" presentation="default">
+              <element href="modelFmap.uml#_6UUp9eO8EdyGNPaNHSGn_w"/>
+            </semanticModel>
+          </contained>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_JKQ-ZeO9EdyGNPaNHSGn_w">
+          <property xmi:id="_JKQ-ZuO9EdyGNPaNHSGn_w" key="eStructuralFeatureID" value="47"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_JKQ-Z-O9EdyGNPaNHSGn_w" presentation="default">
+            <element href="modelFmap.uml#_6UUp9OO8EdyGNPaNHSGn_w"/>
+          </semanticModel>
+          <contained xsi:type="di:GraphNode" xmi:id="_JKavYOO9EdyGNPaNHSGn_w" position="0,0" size="-1,-1">
+            <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_JKavYeO9EdyGNPaNHSGn_w" presentation="default">
+              <element href="modelFmap.uml#_6UUp-OO8EdyGNPaNHSGn_w"/>
+            </semanticModel>
+          </contained>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_J04osOO9EdyGNPaNHSGn_w" position="312,246" size="165,-1">
+        <anchorage xmi:id="_Rt4lQOO9EdyGNPaNHSGn_w" graphEdge="_Rt4lQeO9EdyGNPaNHSGn_w"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_J04oseO9EdyGNPaNHSGn_w" presentation="default">
+          <element href="modelFmap.uml#_6UUp-uO8EdyGNPaNHSGn_w"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_J04osuO9EdyGNPaNHSGn_w">
+          <property xmi:id="_J04os-O9EdyGNPaNHSGn_w" key="eStructuralFeatureID" value="37"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_J04otOO9EdyGNPaNHSGn_w" presentation="default">
+            <element href="modelFmap.uml#_6UUp-uO8EdyGNPaNHSGn_w"/>
+          </semanticModel>
+          <contained xsi:type="di:GraphNode" xmi:id="_J04ouOO9EdyGNPaNHSGn_w" position="0,0" size="-1,-1">
+            <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_J04oueO9EdyGNPaNHSGn_w" presentation="default">
+              <element href="modelFmap.uml#_6UUp--O8EdyGNPaNHSGn_w"/>
+            </semanticModel>
+          </contained>
+          <contained xsi:type="di:GraphNode" xmi:id="_J04ovOO9EdyGNPaNHSGn_w" position="0,0" size="-1,-1">
+            <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_J04oveO9EdyGNPaNHSGn_w" presentation="default">
+              <element href="modelFmap.uml#_6UUp_eO8EdyGNPaNHSGn_w"/>
+            </semanticModel>
+          </contained>
+        </contained>
+        <contained xsi:type="di:GraphNode" xmi:id="_J04oteO9EdyGNPaNHSGn_w">
+          <property xmi:id="_J04otuO9EdyGNPaNHSGn_w" key="eStructuralFeatureID" value="47"/>
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_J04ot-O9EdyGNPaNHSGn_w" presentation="default">
+            <element href="modelFmap.uml#_6UUp-uO8EdyGNPaNHSGn_w"/>
+          </semanticModel>
+          <contained xsi:type="di:GraphNode" xmi:id="_J04owuO9EdyGNPaNHSGn_w" position="0,0" size="-1,-1">
+            <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_J04ow-O9EdyGNPaNHSGn_w" presentation="default">
+              <element href="modelFmap.uml#_6UUqAeO8EdyGNPaNHSGn_w"/>
+            </semanticModel>
+          </contained>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphEdge" xmi:id="_RIojIuO9EdyGNPaNHSGn_w" anchor="_RIojIOO9EdyGNPaNHSGn_w _RIojIeO9EdyGNPaNHSGn_w">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_RIojI-O9EdyGNPaNHSGn_w" presentation="default">
+          <element href="modelFmap.uml#_RIojJeO9EdyGNPaNHSGn_w"/>
+        </semanticModel>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="_RIojJOO9EdyGNPaNHSGn_w" id="stereotypeEdgeObject"/>
+      </contained>
+      <contained xsi:type="di:GraphEdge" xmi:id="_Rhg9MOO9EdyGNPaNHSGn_w" anchor="_RhXMMOO9EdyGNPaNHSGn_w _RIojIeO9EdyGNPaNHSGn_w">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Rhg9MeO9EdyGNPaNHSGn_w" presentation="default">
+          <element href="modelFmap.uml#_Rhg9M-O9EdyGNPaNHSGn_w"/>
+        </semanticModel>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="_Rhg9MuO9EdyGNPaNHSGn_w" id="stereotypeEdgeObject"/>
+      </contained>
+      <contained xsi:type="di:GraphEdge" xmi:id="_Rt4lQeO9EdyGNPaNHSGn_w" anchor="_Rt4lQOO9EdyGNPaNHSGn_w _RIojIeO9EdyGNPaNHSGn_w">
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Rt4lQuO9EdyGNPaNHSGn_w" presentation="default">
+          <element href="modelFmap.uml#_Rt4lROO9EdyGNPaNHSGn_w"/>
+        </semanticModel>
+        <contained xsi:type="di:EdgeObjectOffset" xmi:id="_Rt4lQ-O9EdyGNPaNHSGn_w" id="stereotypeEdgeObject"/>
+      </contained>
+    </diagrams>
+  </subdiagrams>
+</diagrams:Diagrams>

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model.umldi
___________________________________________________________________
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model2.umldi
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model2.umldi	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model2.umldi	(revision 38288)
@@ -0,0 +1,640 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diagrams:Diagrams xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.topcased.org/DI/1.0" xmlns:diagrams="http://www.topcased.org/Diagrams/1.0" xmi:id="_SAwLgOnfEdyqwYAyxR2bxw" activeDiagram="_sCZTMOoFEdyWhupJHd1xRA">
+  <model href="model2.uml#_NfXrAOnfEdyqwYAyxR2bxw"/>
+  <diagrams xmi:id="_SAwLgenfEdyqwYAyxR2bxw" position="0,0" size="100,100" name="No name" viewport="52,84">
+    <property xmi:id="_SD4YAOnfEdyqwYAyxR2bxw" key="pageFormatName" value="A4"/>
+    <property xmi:id="_SEBh8OnfEdyqwYAyxR2bxw" key="diagramWidth" value="840"/>
+    <property xmi:id="_SEBh8enfEdyqwYAyxR2bxw" key="diagramHeight" value="1188"/>
+    <property xmi:id="_SEBh8unfEdyqwYAyxR2bxw" key="pageMarginName" value="Small Margin"/>
+    <property xmi:id="_SEBh8-nfEdyqwYAyxR2bxw" key="diagramTopMargin" value="20"/>
+    <property xmi:id="_SEBh9OnfEdyqwYAyxR2bxw" key="diagramBottomMargin" value="20"/>
+    <property xmi:id="_SEBh9enfEdyqwYAyxR2bxw" key="diagramLeftMargin" value="20"/>
+    <property xmi:id="_SEBh9unfEdyqwYAyxR2bxw" key="diagramRightMargin" value="20"/>
+    <property xmi:id="_SEBh9-nfEdyqwYAyxR2bxw" key="orientation" value="portrait"/>
+    <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_SAwLgunfEdyqwYAyxR2bxw" presentation="org.topcased.modeler.uml.classdiagram">
+      <element href="model2.uml#_NfXrAOnfEdyqwYAyxR2bxw"/>
+    </semanticModel>
+    <contained xsi:type="di:GraphNode" xmi:id="_U4B6oOnfEdyqwYAyxR2bxw" position="189,123" size="170,-1">
+      <anchorage xmi:id="_yCZjE-nfEdycSvxH-nDZNg" graphEdge="_yCZjFOnfEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_U4B6oenfEdyqwYAyxR2bxw" presentation="default">
+        <element href="model2.uml#_NfXspenfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_U4B6ounfEdyqwYAyxR2bxw">
+        <property xmi:id="_U4B6o-nfEdyqwYAyxR2bxw" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_U4B6pOnfEdyqwYAyxR2bxw" presentation="default">
+          <element href="model2.uml#_NfXspenfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_U4B6penfEdyqwYAyxR2bxw">
+        <property xmi:id="_U4B6punfEdyqwYAyxR2bxw" key="eStructuralFeatureID" value="38"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_U4B6p-nfEdyqwYAyxR2bxw" presentation="default">
+          <element href="model2.uml#_NfXspenfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_qqe6UOnfEdycSvxH-nDZNg" position="184,383" size="182,-1">
+      <anchorage xmi:id="_yA6VUOnfEdycSvxH-nDZNg" graphEdge="_yCZjEOnfEdycSvxH-nDZNg _STaMUengEdycSvxH-nDZNg _by7awengEdycSvxH-nDZNg _C3lasenkEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_qqe6UenfEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXununfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_qqe6UunfEdycSvxH-nDZNg">
+        <property xmi:id="_qqe6U-nfEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_qqe6VOnfEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXununfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_qqe6VenfEdycSvxH-nDZNg">
+        <property xmi:id="_qqe6VunfEdycSvxH-nDZNg" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_qqe6V-nfEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXununfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_yAnaYOnfEdycSvxH-nDZNg" position="283,235" size="197,-1">
+      <anchorage xmi:id="_yA6VUenfEdycSvxH-nDZNg" graphEdge="_yCZjEOnfEdycSvxH-nDZNg _yCZjFOnfEdycSvxH-nDZNg _84zE6OnfEdycSvxH-nDZNg _1QjPMenhEdycSvxH-nDZNg _xWFvUeniEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yAnaYenfEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXt1OnfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_yAnaYunfEdycSvxH-nDZNg">
+        <property xmi:id="_yAnaY-nfEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yAnaZOnfEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXt1OnfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_yAnaZenfEdycSvxH-nDZNg">
+        <property xmi:id="_yAnaZunfEdycSvxH-nDZNg" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yAnaZ-nfEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXt1OnfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_yAxLYOnfEdycSvxH-nDZNg" position="0,0" size="-1,-1">
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yAxLYenfEdycSvxH-nDZNg" presentation="default">
+            <element href="model2.uml#_NfXt1unfEdyqwYAyxR2bxw"/>
+          </semanticModel>
+        </contained>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_yCZjEOnfEdycSvxH-nDZNg" anchor="_yA6VUOnfEdycSvxH-nDZNg _yA6VUenfEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yCZjEenfEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXun-nfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_yCZjEunfEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+      <waypoints>[0, -47, -15, 61]</waypoints>
+      <waypoints>[15, -47, 0, 61]</waypoints>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_yCZjFOnfEdycSvxH-nDZNg" anchor="_yA6VUenfEdycSvxH-nDZNg _yCZjE-nfEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yCZjFenfEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXt1enfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_yCZjFunfEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_84zE6OnfEdycSvxH-nDZNg" anchor="_84gJ8OnfEdycSvxH-nDZNg _yA6VUenfEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_84zE6enfEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXtcunfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_84zE6unfEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_84DeAOnfEdycSvxH-nDZNg" position="446,385" size="166,-1">
+      <anchorage xmi:id="_84gJ8OnfEdycSvxH-nDZNg" graphEdge="_84zE6OnfEdycSvxH-nDZNg _llZk-enhEdycSvxH-nDZNg _qtrGUenhEdycSvxH-nDZNg _PGwiwOnjEdycSvxH-nDZNg _GSCIUenkEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_84DeAenfEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXtcenfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_84DeAunfEdycSvxH-nDZNg">
+        <property xmi:id="_84DeA-nfEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_84DeBOnfEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXtcenfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_84DeCOnfEdycSvxH-nDZNg" position="0,0" size="-1,-1">
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_84DeCenfEdycSvxH-nDZNg" presentation="default">
+            <element href="model2.uml#_NfXtc-nfEdyqwYAyxR2bxw"/>
+          </semanticModel>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_84DeBenfEdycSvxH-nDZNg">
+        <property xmi:id="_84DeBunfEdycSvxH-nDZNg" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_84DeB-nfEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXtcenfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_SS9gYOngEdycSvxH-nDZNg" position="78,519" size="128,-1">
+      <anchorage xmi:id="_STaMUOngEdycSvxH-nDZNg" graphEdge="_STaMUengEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_SS9gYengEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXsAenfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_SS9gYungEdycSvxH-nDZNg">
+        <property xmi:id="_SS9gY-ngEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_SS9gZOngEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXsAenfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_SS9gZengEdycSvxH-nDZNg">
+        <property xmi:id="_SS9gZungEdycSvxH-nDZNg" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_SS9gZ-ngEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXsAenfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_STaMUengEdycSvxH-nDZNg" anchor="_STaMUOngEdycSvxH-nDZNg _yA6VUOnfEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_STaMUungEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXsAunfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_STaMU-ngEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_a_hA0OngEdycSvxH-nDZNg" position="85,746" size="147,-1">
+      <anchorage xmi:id="_by7axOngEdycSvxH-nDZNg" graphEdge="_by7axengEdycSvxH-nDZNg _WS4ApeniEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_a_hA0engEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXt0unfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_a_hA0ungEdycSvxH-nDZNg">
+        <property xmi:id="_a_hA0-ngEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_a_hA1OngEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXt0unfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_a_hA1engEdycSvxH-nDZNg">
+        <property xmi:id="_a_hA1ungEdycSvxH-nDZNg" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_a_hA1-ngEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXt0unfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_byof0OngEdycSvxH-nDZNg" position="176,615" size="144,-1">
+      <anchorage xmi:id="_by7awOngEdycSvxH-nDZNg" graphEdge="_by7awengEdycSvxH-nDZNg _by7axengEdycSvxH-nDZNg _hXNisOngEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_byof0engEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXuzenfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_byof0ungEdycSvxH-nDZNg">
+        <property xmi:id="_byof0-ngEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_byof1OngEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXuzenfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+        <contained xsi:type="di:GraphNode" xmi:id="_byof2OngEdycSvxH-nDZNg" position="0,0" size="-1,-1">
+          <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_byof2engEdycSvxH-nDZNg" presentation="default">
+            <element href="model2.uml#_NfXuz-nfEdyqwYAyxR2bxw"/>
+          </semanticModel>
+        </contained>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_byof1engEdycSvxH-nDZNg">
+        <property xmi:id="_byof1ungEdycSvxH-nDZNg" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_byof1-ngEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXuzenfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_by7awengEdycSvxH-nDZNg" anchor="_by7awOngEdycSvxH-nDZNg _yA6VUOnfEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_by7awungEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXuzunfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_by7aw-ngEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_by7axengEdycSvxH-nDZNg" anchor="_by7axOngEdycSvxH-nDZNg _by7awOngEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_by7axungEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXt0-nfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_by7ax-ngEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+      <waypoints>[0, -69, -105, 62]</waypoints>
+      <waypoints>[105, -69, 0, 62]</waypoints>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_hXEYwOngEdycSvxH-nDZNg" position="312,744" size="129,-1">
+      <anchorage xmi:id="_hXEYyOngEdycSvxH-nDZNg" graphEdge="_hXNisOngEdycSvxH-nDZNg _FwawYOnhEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_hXEYwengEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXs2enfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_hXEYwungEdycSvxH-nDZNg">
+        <property xmi:id="_hXEYw-ngEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_hXEYxOngEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXs2enfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_hXEYxengEdycSvxH-nDZNg">
+        <property xmi:id="_hXEYxungEdycSvxH-nDZNg" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_hXEYx-ngEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXs2enfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_hXNisOngEdycSvxH-nDZNg" anchor="_hXEYyOngEdycSvxH-nDZNg _by7awOngEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_hXNisengEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXs2unfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_hXNisungEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+      <waypoints>[0, -59, 206, 62]</waypoints>
+      <waypoints>[-206, -59, 0, 62]</waypoints>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_FwQ_YOnhEdycSvxH-nDZNg" position="305,865" size="137,-1">
+      <anchorage xmi:id="_FwQ_bunhEdycSvxH-nDZNg" graphEdge="_FwawYOnhEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_FwQ_YenhEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXtt-nfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_FwQ_YunhEdycSvxH-nDZNg">
+        <property xmi:id="_FwQ_Y-nhEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_FwQ_ZOnhEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXtt-nfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_FwQ_ZenhEdycSvxH-nDZNg">
+        <property xmi:id="_FwQ_ZunhEdycSvxH-nDZNg" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_FwQ_Z-nhEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXtt-nfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_FwawYOnhEdycSvxH-nDZNg" anchor="_FwQ_bunhEdycSvxH-nDZNg _hXEYyOngEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_FwawYenhEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXtuOnfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_FwawYunhEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_llQbAOnhEdycSvxH-nDZNg" position="468,541" size="100,-1">
+      <anchorage xmi:id="_llZk-OnhEdycSvxH-nDZNg" graphEdge="_llZk-enhEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_llQbAenhEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXriunfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_llQbAunhEdycSvxH-nDZNg">
+        <property xmi:id="_llQbA-nhEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_llQbBOnhEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXriunfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_llQbBenhEdycSvxH-nDZNg">
+        <property xmi:id="_llQbBunhEdycSvxH-nDZNg" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_llQbB-nhEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXriunfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_llZk-enhEdycSvxH-nDZNg" anchor="_llZk-OnhEdycSvxH-nDZNg _84gJ8OnfEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_llZk-unhEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXri-nfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_llZk--nhEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_qth8YOnhEdycSvxH-nDZNg" position="616,690" size="108,-1">
+      <anchorage xmi:id="_qtrGUOnhEdycSvxH-nDZNg" graphEdge="_qtrGUenhEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_qth8YenhEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXuuunfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_qth8YunhEdycSvxH-nDZNg">
+        <property xmi:id="_qth8Y-nhEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_qth8ZOnhEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXuuunfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_qth8ZenhEdycSvxH-nDZNg">
+        <property xmi:id="_qth8ZunhEdycSvxH-nDZNg" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_qth8Z-nhEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXuuunfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_qtrGUenhEdycSvxH-nDZNg" anchor="_qtrGUOnhEdycSvxH-nDZNg _84gJ8OnfEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_qtrGUunhEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXuu-nfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_qtrGU-nhEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_1QQUQOnhEdycSvxH-nDZNg" position="684,386" size="100,-1">
+      <anchorage xmi:id="_1QjPMOnhEdycSvxH-nDZNg" graphEdge="_1QjPMenhEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_1QQUQenhEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXuPOnfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_1QQUQunhEdycSvxH-nDZNg">
+        <property xmi:id="_1QQUQ-nhEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_1QQUROnhEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXuPOnfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_1QQURenhEdycSvxH-nDZNg">
+        <property xmi:id="_1QQURunhEdycSvxH-nDZNg" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_1QQUR-nhEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXuPOnfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_1QjPMenhEdycSvxH-nDZNg" anchor="_1QjPMOnhEdycSvxH-nDZNg _yA6VUenfEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_1QjPMunhEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXuPenfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_1QjPM-nhEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_WSuPoOniEdycSvxH-nDZNg" position="84,858" size="149,-1">
+      <anchorage xmi:id="_WS4ApOniEdycSvxH-nDZNg" graphEdge="_WS4ApeniEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_WSuPoeniEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXumOnfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_WSuPouniEdycSvxH-nDZNg">
+        <property xmi:id="_WSuPo-niEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_WSuPpOniEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXumOnfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_WSuPpeniEdycSvxH-nDZNg">
+        <property xmi:id="_WSuPpuniEdycSvxH-nDZNg" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_WSuPp-niEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXumOnfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_WS4ApeniEdycSvxH-nDZNg" anchor="_WS4ApOniEdycSvxH-nDZNg _by7axOngEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_WS4ApuniEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXumenfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_WS4Ap-niEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_wjktQOniEdycSvxH-nDZNg" position="409,136" size="89,-1">
+      <anchorage xmi:id="_xWFvUOniEdycSvxH-nDZNg" graphEdge="_xWFvUeniEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_wjktQeniEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_wjktSOniEdycSvxH-nDZNg"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_wjktQuniEdycSvxH-nDZNg">
+        <property xmi:id="_wjktQ-niEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_wjktROniEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_wjktSOniEdycSvxH-nDZNg"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_wjktReniEdycSvxH-nDZNg">
+        <property xmi:id="_wjktRuniEdycSvxH-nDZNg" key="eStructuralFeatureID" value="38"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_wjktR-niEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_wjktSOniEdycSvxH-nDZNg"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_xWFvUeniEdycSvxH-nDZNg" anchor="_yA6VUenfEdycSvxH-nDZNg _xWFvUOniEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_xWFvUuniEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_xWFvVOniEdycSvxH-nDZNg"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_xWFvU-niEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_PGmxwOnjEdycSvxH-nDZNg" position="543,609" size="116,-1">
+      <anchorage xmi:id="_PGmxyOnjEdycSvxH-nDZNg" graphEdge="_PGwiwOnjEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PGmxwenjEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXr7unfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_PGmxwunjEdycSvxH-nDZNg">
+        <property xmi:id="_PGmxw-njEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PGmxxOnjEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXr7unfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_PGmxxenjEdycSvxH-nDZNg">
+        <property xmi:id="_PGmxxunjEdycSvxH-nDZNg" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PGmxx-njEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_NfXr7unfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_PGwiwOnjEdycSvxH-nDZNg" anchor="_PGmxyOnjEdycSvxH-nDZNg _84gJ8OnfEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PGwiwenjEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_NfXr7-nfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_PGwiwunjEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_A7KKQOnkEdycSvxH-nDZNg" position="374,647" size="100,-1">
+      <anchorage xmi:id="_C3lasOnkEdycSvxH-nDZNg" graphEdge="_C3lasenkEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_A7KKQenkEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_A7KKSOnkEdycSvxH-nDZNg"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_A7KKQunkEdycSvxH-nDZNg">
+        <property xmi:id="_A7KKQ-nkEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_A7KKROnkEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_A7KKSOnkEdycSvxH-nDZNg"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_A7KKRenkEdycSvxH-nDZNg">
+        <property xmi:id="_A7KKRunkEdycSvxH-nDZNg" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_A7KKR-nkEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_A7KKSOnkEdycSvxH-nDZNg"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_C3lasenkEdycSvxH-nDZNg" anchor="_C3lasOnkEdycSvxH-nDZNg _yA6VUOnfEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_C3lasunkEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_C3latOnkEdycSvxH-nDZNg"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_C3las-nkEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_EjnesOnkEdycSvxH-nDZNg" position="691,766" size="100,-1">
+      <anchorage xmi:id="_GSCIUOnkEdycSvxH-nDZNg" graphEdge="_GSCIUenkEdycSvxH-nDZNg"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_EjnesenkEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_EjneuOnkEdycSvxH-nDZNg"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_EjnesunkEdycSvxH-nDZNg">
+        <property xmi:id="_Ejnes-nkEdycSvxH-nDZNg" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_EjnetOnkEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_EjneuOnkEdycSvxH-nDZNg"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_EjnetenkEdycSvxH-nDZNg">
+        <property xmi:id="_EjnetunkEdycSvxH-nDZNg" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Ejnet-nkEdycSvxH-nDZNg" presentation="default">
+          <element href="model2.uml#_EjneuOnkEdycSvxH-nDZNg"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_GSCIUenkEdycSvxH-nDZNg" anchor="_GSCIUOnkEdycSvxH-nDZNg _84gJ8OnfEdycSvxH-nDZNg">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_GSL5UOnkEdycSvxH-nDZNg" presentation="default">
+        <element href="model2.uml#_GSL5UunkEdycSvxH-nDZNg"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_GSL5UenkEdycSvxH-nDZNg" id="stereotypeEdgeObject"/>
+    </contained>
+  </diagrams>
+  <diagrams xmi:id="_sCZTMOoFEdyWhupJHd1xRA" position="0,0" size="100,100" name="unnamed" viewport="144,84">
+    <property xmi:id="_sDI6EOoFEdyWhupJHd1xRA" key="pageFormatName" value="A4"/>
+    <property xmi:id="_sDI6EeoFEdyWhupJHd1xRA" key="diagramWidth" value="840"/>
+    <property xmi:id="_sDI6EuoFEdyWhupJHd1xRA" key="diagramHeight" value="1188"/>
+    <property xmi:id="_sDI6E-oFEdyWhupJHd1xRA" key="pageMarginName" value="Small Margin"/>
+    <property xmi:id="_sDI6FOoFEdyWhupJHd1xRA" key="diagramTopMargin" value="20"/>
+    <property xmi:id="_sDI6FeoFEdyWhupJHd1xRA" key="diagramBottomMargin" value="20"/>
+    <property xmi:id="_sDI6FuoFEdyWhupJHd1xRA" key="diagramLeftMargin" value="20"/>
+    <property xmi:id="_sDI6F-oFEdyWhupJHd1xRA" key="diagramRightMargin" value="20"/>
+    <property xmi:id="_sDI6GOoFEdyWhupJHd1xRA" key="orientation" value="portrait"/>
+    <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_sCZTMeoFEdyWhupJHd1xRA" presentation="org.topcased.modeler.uml.classdiagram">
+      <element href="model2.uml#_NfXrAOnfEdyqwYAyxR2bxw"/>
+    </semanticModel>
+    <contained xsi:type="di:GraphNode" xmi:id="_vsMEYOoFEdyWhupJHd1xRA" position="264,309" size="202,-1">
+      <anchorage xmi:id="_0jejfOoFEdyWhupJHd1xRA" graphEdge="_0joUcOoFEdyWhupJHd1xRA _4VUdYeoFEdyWhupJHd1xRA _KvG4IOoGEdyWhupJHd1xRA"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_vsMEYeoFEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_NfXununfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_vsMEYuoFEdyWhupJHd1xRA">
+        <property xmi:id="_vsMEY-oFEdyWhupJHd1xRA" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_vsMEZOoFEdyWhupJHd1xRA" presentation="default">
+          <element href="model2.uml#_NfXununfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_vsMEZeoFEdyWhupJHd1xRA">
+        <property xmi:id="_vsMEZuoFEdyWhupJHd1xRA" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_vsMEZ-oFEdyWhupJHd1xRA" presentation="default">
+          <element href="model2.uml#_NfXununfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_0jejcOoFEdyWhupJHd1xRA" position="266,138" size="197,-1">
+      <anchorage xmi:id="_0jejfeoFEdyWhupJHd1xRA" graphEdge="_0joUcOoFEdyWhupJHd1xRA _E9Q1UeoGEdyWhupJHd1xRA"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_0jejceoFEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_NfXt1OnfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_0jejcuoFEdyWhupJHd1xRA">
+        <property xmi:id="_0jejc-oFEdyWhupJHd1xRA" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_0jejdOoFEdyWhupJHd1xRA" presentation="default">
+          <element href="model2.uml#_NfXt1OnfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_0jejdeoFEdyWhupJHd1xRA">
+        <property xmi:id="_0jejduoFEdyWhupJHd1xRA" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_0jejd-oFEdyWhupJHd1xRA" presentation="default">
+          <element href="model2.uml#_NfXt1OnfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_0joUcOoFEdyWhupJHd1xRA" anchor="_0jejfOoFEdyWhupJHd1xRA _0jejfeoFEdyWhupJHd1xRA">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_0joUceoFEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_NfXun-nfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_0joUcuoFEdyWhupJHd1xRA" id="stereotypeEdgeObject"/>
+      <waypoints>[0, -74, -170, 93]</waypoints>
+      <waypoints>[170, -74, 0, 93]</waypoints>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_4VBicOoFEdyWhupJHd1xRA" position="273,444" size="184,-1">
+      <anchorage xmi:id="_4VUdYOoFEdyWhupJHd1xRA" graphEdge="_4VUdYeoFEdyWhupJHd1xRA _B4kVQ-oGEdyWhupJHd1xRA _SDTegOoGEdyWhupJHd1xRA"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_4VBiceoFEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_NfXsAenfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_4VBicuoFEdyWhupJHd1xRA">
+        <property xmi:id="_4VBic-oFEdyWhupJHd1xRA" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_4VBidOoFEdyWhupJHd1xRA" presentation="default">
+          <element href="model2.uml#_NfXsAenfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_4VBideoFEdyWhupJHd1xRA">
+        <property xmi:id="_4VBiduoFEdyWhupJHd1xRA" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_4VBid-oFEdyWhupJHd1xRA" presentation="default">
+          <element href="model2.uml#_NfXsAenfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_4VUdYeoFEdyWhupJHd1xRA" anchor="_4VUdYOoFEdyWhupJHd1xRA _0jejfOoFEdyWhupJHd1xRA">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_4VUdYuoFEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_NfXsAunfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_4VUdY-oFEdyWhupJHd1xRA" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_B4bLUOoGEdyWhupJHd1xRA" position="283,576" size="164,-1">
+      <anchorage xmi:id="_B4kVQuoGEdyWhupJHd1xRA" graphEdge="_B4kVQ-oGEdyWhupJHd1xRA _SWPBkOoGEdyWhupJHd1xRA"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_B4bLUeoGEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_NfXuAenfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_B4bLUuoGEdyWhupJHd1xRA">
+        <property xmi:id="_B4bLU-oGEdyWhupJHd1xRA" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_B4bLVOoGEdyWhupJHd1xRA" presentation="default">
+          <element href="model2.uml#_NfXuAenfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_B4bLVeoGEdyWhupJHd1xRA">
+        <property xmi:id="_B4bLVuoGEdyWhupJHd1xRA" key="eStructuralFeatureID" value="47"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_B4bLV-oGEdyWhupJHd1xRA" presentation="default">
+          <element href="model2.uml#_NfXuAenfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_B4kVQ-oGEdyWhupJHd1xRA" anchor="_B4kVQuoGEdyWhupJHd1xRA _4VUdYOoFEdyWhupJHd1xRA">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_B4kVROoGEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_NfXuAunfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_B4kVReoGEdyWhupJHd1xRA" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_DoLRsOoGEdyWhupJHd1xRA" position="541,16" size="89,-1">
+      <anchorage xmi:id="_E9Q1UOoGEdyWhupJHd1xRA" graphEdge="_E9Q1UeoGEdyWhupJHd1xRA _GxfzEeoGEdyWhupJHd1xRA"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_DoLRseoGEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_NfXvvunfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_DoLRsuoGEdyWhupJHd1xRA">
+        <property xmi:id="_DoLRs-oGEdyWhupJHd1xRA" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_DoLRtOoGEdyWhupJHd1xRA" presentation="default">
+          <element href="model2.uml#_NfXvvunfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_DoLRteoGEdyWhupJHd1xRA">
+        <property xmi:id="_DoLRtuoGEdyWhupJHd1xRA" key="eStructuralFeatureID" value="38"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_DoLRt-oGEdyWhupJHd1xRA" presentation="default">
+          <element href="model2.uml#_NfXvvunfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_E9Q1UeoGEdyWhupJHd1xRA" anchor="_0jejfeoFEdyWhupJHd1xRA _E9Q1UOoGEdyWhupJHd1xRA">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_E9Q1UuoGEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_E9Q1VOoGEdyWhupJHd1xRA"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_E9Q1U-oGEdyWhupJHd1xRA" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_GxWCEOoGEdyWhupJHd1xRA" position="540,198" size="90,-1">
+      <anchorage xmi:id="_GxfzEOoGEdyWhupJHd1xRA" graphEdge="_GxfzEeoGEdyWhupJHd1xRA _KvG4IOoGEdyWhupJHd1xRA _Q2tvmeoGEdyWhupJHd1xRA"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_GxWCEeoGEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_NfXv4OnfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_GxWCEuoGEdyWhupJHd1xRA">
+        <property xmi:id="_GxWCE-oGEdyWhupJHd1xRA" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_GxWCFOoGEdyWhupJHd1xRA" presentation="default">
+          <element href="model2.uml#_NfXv4OnfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_GxWCFeoGEdyWhupJHd1xRA">
+        <property xmi:id="_GxWCFuoGEdyWhupJHd1xRA" key="eStructuralFeatureID" value="38"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_GxWCF-oGEdyWhupJHd1xRA" presentation="default">
+          <element href="model2.uml#_NfXv4OnfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_GxfzEeoGEdyWhupJHd1xRA" anchor="_GxfzEOoGEdyWhupJHd1xRA _E9Q1UOoGEdyWhupJHd1xRA">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_GxfzEuoGEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_NfXv4enfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_GxfzE-oGEdyWhupJHd1xRA" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_KvG4IOoGEdyWhupJHd1xRA" anchor="_0jejfOoFEdyWhupJHd1xRA _GxfzEOoGEdyWhupJHd1xRA">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_KvG4IeoGEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_KvG4I-oGEdyWhupJHd1xRA"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_KvG4IuoGEdyWhupJHd1xRA" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphNode" xmi:id="_Q2tvkOoGEdyWhupJHd1xRA" position="541,358" size="89,-1">
+      <anchorage xmi:id="_Q2tvmOoGEdyWhupJHd1xRA" graphEdge="_Q2tvmeoGEdyWhupJHd1xRA _SDTegOoGEdyWhupJHd1xRA _SWPBkOoGEdyWhupJHd1xRA"/>
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Q2tvkeoGEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_NfXv3OnfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:GraphNode" xmi:id="_Q2tvkuoGEdyWhupJHd1xRA">
+        <property xmi:id="_Q2tvk-oGEdyWhupJHd1xRA" key="eStructuralFeatureID" value="37"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Q2tvlOoGEdyWhupJHd1xRA" presentation="default">
+          <element href="model2.uml#_NfXv3OnfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+      <contained xsi:type="di:GraphNode" xmi:id="_Q2tvleoGEdyWhupJHd1xRA">
+        <property xmi:id="_Q2tvluoGEdyWhupJHd1xRA" key="eStructuralFeatureID" value="38"/>
+        <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Q2tvl-oGEdyWhupJHd1xRA" presentation="default">
+          <element href="model2.uml#_NfXv3OnfEdyqwYAyxR2bxw"/>
+        </semanticModel>
+      </contained>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_Q2tvmeoGEdyWhupJHd1xRA" anchor="_Q2tvmOoGEdyWhupJHd1xRA _GxfzEOoGEdyWhupJHd1xRA">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Q2tvmuoGEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_NfXv3enfEdyqwYAyxR2bxw"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_Q2tvm-oGEdyWhupJHd1xRA" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_SDTegOoGEdyWhupJHd1xRA" anchor="_4VUdYOoFEdyWhupJHd1xRA _Q2tvmOoGEdyWhupJHd1xRA">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_SDTegeoGEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_SDdPgOoGEdyWhupJHd1xRA"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_SDTeguoGEdyWhupJHd1xRA" id="stereotypeEdgeObject"/>
+    </contained>
+    <contained xsi:type="di:GraphEdge" xmi:id="_SWPBkOoGEdyWhupJHd1xRA" anchor="_B4kVQuoGEdyWhupJHd1xRA _Q2tvmOoGEdyWhupJHd1xRA">
+      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_SWPBkeoGEdyWhupJHd1xRA" presentation="default">
+        <element href="model2.uml#_SWPBk-oGEdyWhupJHd1xRA"/>
+      </semanticModel>
+      <contained xsi:type="di:EdgeObjectOffset" xmi:id="_SWPBkuoGEdyWhupJHd1xRA" id="stereotypeEdgeObject"/>
+    </contained>
+  </diagrams>
+  <subdiagrams xmi:id="_kRI9YOoFEdyWhupJHd1xRA">
+    <model href="model2.uml#_NfXrDunfEdyqwYAyxR2bxw"/>
+  </subdiagrams>
+</diagrams:Diagrams>

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model2.umldi
___________________________________________________________________
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model.uml
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model.uml	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model.uml	(revision 38288)
@@ -0,0 +1,1571 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xmi:id="_wySgAOOSEdyLpcXsYAESEQ">
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_wySgAeOSEdyLpcXsYAESEQ" name="boolean"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_wySgAuOSEdyLpcXsYAESEQ" name="byte"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_wySgA-OSEdyLpcXsYAESEQ" name="char"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_wySgBOOSEdyLpcXsYAESEQ" name="double"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_wySgBeOSEdyLpcXsYAESEQ" name="float"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_wySgBuOSEdyLpcXsYAESEQ" name="int"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_wySgB-OSEdyLpcXsYAESEQ" name="long"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_wySgCOOSEdyLpcXsYAESEQ" name="short"/>
+  <packagedElement xmi:type="uml:Package" xmi:id="_wySgCeOSEdyLpcXsYAESEQ" name="com">
+    <packagedElement xmi:type="uml:Package" xmi:id="_wySgCuOSEdyLpcXsYAESEQ" name="iver">
+      <packagedElement xmi:type="uml:Package" xmi:id="_wySgC-OSEdyLpcXsYAESEQ" name="cit">
+        <packagedElement xmi:type="uml:Package" xmi:id="_wySgDOOSEdyLpcXsYAESEQ" name="gvsig">
+          <packagedElement xmi:type="uml:Package" xmi:id="_wySgDeOSEdyLpcXsYAESEQ" name="fmap">
+            <packagedElement xmi:type="uml:Package" xmi:id="_wySgDuOSEdyLpcXsYAESEQ" name="core">
+              <packagedElement xmi:type="uml:Class" xmi:id="_wySgD-OSEdyLpcXsYAESEQ" name="FArc2D">
+                <generalization xmi:id="_wySgEOOSEdyLpcXsYAESEQ" general="_wycS9uOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wySgEeOSEdyLpcXsYAESEQ" name="init" visibility="private" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wySgEuOSEdyLpcXsYAESEQ" name="center" visibility="private" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wySgE-OSEdyLpcXsYAESEQ" name="end" visibility="private" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wySgFOOSEdyLpcXsYAESEQ" name="getInit" visibility="public">
+                  <ownedParameter xmi:id="_wySgFeOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgFuOSEdyLpcXsYAESEQ" name="getEnd" visibility="public">
+                  <ownedParameter xmi:id="_wySgF-OSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgGOOSEdyLpcXsYAESEQ" name="getCenter" visibility="public">
+                  <ownedParameter xmi:id="_wySgGeOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgGuOSEdyLpcXsYAESEQ" name="getMid" visibility="public">
+                  <ownedParameter xmi:id="_wySgG-OSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgHOOSEdyLpcXsYAESEQ" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_wySgHeOSEdyLpcXsYAESEQ" name="return" type="_wycS2eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgHuOSEdyLpcXsYAESEQ" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_wySgH-OSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgIOOSEdyLpcXsYAESEQ" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_wySgIeOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgIuOSEdyLpcXsYAESEQ" name="getStretchingHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wySgI-OSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgJOOSEdyLpcXsYAESEQ" name="getSelectHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wySgJeOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgJuOSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wySgJ-OSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgKOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wySgKeOSEdyLpcXsYAESEQ" name="CenterSelHandler" clientDependency="_wySgLeOSEdyLpcXsYAESEQ _wySgLuOSEdyLpcXsYAESEQ _wySgL-OSEdyLpcXsYAESEQ">
+                <generalization xmi:id="_wySgKuOSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <generalization xmi:id="_wySgK-OSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <generalization xmi:id="_wySgLOOSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wySgLeOSEdyLpcXsYAESEQ" name="ICenterHandler" supplier="_wycSX-OSEdyLpcXsYAESEQ" client="_wySgKeOSEdyLpcXsYAESEQ" contract="_wycSX-OSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wySgLuOSEdyLpcXsYAESEQ" name="ICenterHandler" supplier="_wycSX-OSEdyLpcXsYAESEQ" client="_wySgKeOSEdyLpcXsYAESEQ" contract="_wycSX-OSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wySgL-OSEdyLpcXsYAESEQ" name="ICenterHandler" supplier="_wycSX-OSEdyLpcXsYAESEQ" client="_wySgKeOSEdyLpcXsYAESEQ" contract="_wycSX-OSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wySgMOOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wySgMeOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgMuOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgM-OSEdyLpcXsYAESEQ" name="setPoint" visibility="public">
+                  <ownedParameter xmi:id="_wySgNOOSEdyLpcXsYAESEQ" name="p" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgNeOSEdyLpcXsYAESEQ" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_wySgNuOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgN-OSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wySgOOOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgOeOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgOuOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wySgO-OSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgPOOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgPeOSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wySgPuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgP-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgQOOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wySgQeOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgQuOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgQ-OSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wySgROOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgReOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wySgRuOSEdyLpcXsYAESEQ" name="InitHandler" clientDependency="_wySgSOOSEdyLpcXsYAESEQ">
+                <generalization xmi:id="_wySgR-OSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wySgSOOSEdyLpcXsYAESEQ" name="IFinalHandler" supplier="_wycR4eOSEdyLpcXsYAESEQ" client="_wySgRuOSEdyLpcXsYAESEQ" contract="_wycR4eOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wySgSeOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wySgSuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgS-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgTOOSEdyLpcXsYAESEQ" name="setPoint" visibility="public">
+                  <ownedParameter xmi:id="_wySgTeOSEdyLpcXsYAESEQ" name="p" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgTuOSEdyLpcXsYAESEQ" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_wySgT-OSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgUOOSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wySgUeOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgUuOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wySgU-OSEdyLpcXsYAESEQ" name="EndHandler" clientDependency="_wySgVeOSEdyLpcXsYAESEQ">
+                <generalization xmi:id="_wySgVOOSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wySgVeOSEdyLpcXsYAESEQ" name="IFinalHandler" supplier="_wycR4eOSEdyLpcXsYAESEQ" client="_wySgU-OSEdyLpcXsYAESEQ" contract="_wycR4eOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wySgVuOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wySgV-OSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgWOOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgWeOSEdyLpcXsYAESEQ" name="setPoint" visibility="public">
+                  <ownedParameter xmi:id="_wySgWuOSEdyLpcXsYAESEQ" name="p" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgW-OSEdyLpcXsYAESEQ" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_wySgXOOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgXeOSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wySgXuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgX-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wySgYOOSEdyLpcXsYAESEQ" name="InitSelHandler" clientDependency="_wySgY-OSEdyLpcXsYAESEQ _wySgZOOSEdyLpcXsYAESEQ">
+                <generalization xmi:id="_wySgYeOSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <generalization xmi:id="_wySgYuOSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wySgY-OSEdyLpcXsYAESEQ" name="IFinalHandler" supplier="_wycR4eOSEdyLpcXsYAESEQ" client="_wySgYOOSEdyLpcXsYAESEQ" contract="_wycR4eOSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wySgZOOSEdyLpcXsYAESEQ" name="ICuadrantHandler" supplier="_wycSOOOSEdyLpcXsYAESEQ" client="_wySgYOOSEdyLpcXsYAESEQ" contract="_wycSOOOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wySgZeOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wySgZuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgZ-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgaOOSEdyLpcXsYAESEQ" name="setPoint" visibility="public">
+                  <ownedParameter xmi:id="_wySgaeOSEdyLpcXsYAESEQ" name="p" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgauOSEdyLpcXsYAESEQ" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_wySga-OSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgbOOSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wySgbeOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgbuOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgb-OSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wySgcOOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgceOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgcuOSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wySgc-OSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgdOOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wySgdeOSEdyLpcXsYAESEQ" name="EndSelHandler" clientDependency="_wySgeOOSEdyLpcXsYAESEQ _wySgeeOSEdyLpcXsYAESEQ">
+                <generalization xmi:id="_wySgduOSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <generalization xmi:id="_wySgd-OSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wySgeOOSEdyLpcXsYAESEQ" name="IFinalHandler" supplier="_wycR4eOSEdyLpcXsYAESEQ" client="_wySgdeOSEdyLpcXsYAESEQ" contract="_wycR4eOSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wySgeeOSEdyLpcXsYAESEQ" name="ICuadrantHandler" supplier="_wycSOOOSEdyLpcXsYAESEQ" client="_wySgdeOSEdyLpcXsYAESEQ" contract="_wycSOOOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wySgeuOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wySge-OSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgfOOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgfeOSEdyLpcXsYAESEQ" name="setPoint" visibility="public">
+                  <ownedParameter xmi:id="_wySgfuOSEdyLpcXsYAESEQ" name="p" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgf-OSEdyLpcXsYAESEQ" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_wySggOOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySggeOSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wySgguOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgg-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySghOOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wySgheOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySghuOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgh-OSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wySgiOOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgieOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wySgiuOSEdyLpcXsYAESEQ" name="FMultiPoint2D">
+                <generalization xmi:id="_wySgi-OSEdyLpcXsYAESEQ" general="_wycR4-OSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wySgjOOSEdyLpcXsYAESEQ" name="toJTSGeometry" visibility="public">
+                  <ownedParameter xmi:id="_wySgjeOSEdyLpcXsYAESEQ" name="return" type="_wycTpeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgjuOSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wySgj-OSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgkOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgkeOSEdyLpcXsYAESEQ" name="getBounds2D" visibility="public">
+                  <ownedParameter xmi:id="_wySgkuOSEdyLpcXsYAESEQ" name="return" type="_wycTpOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgk-OSEdyLpcXsYAESEQ" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_wySglOOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgleOSEdyLpcXsYAESEQ" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_wySgluOSEdyLpcXsYAESEQ" name="return" type="_wycS2eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgl-OSEdyLpcXsYAESEQ" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_wySgmOOSEdyLpcXsYAESEQ" name="ct" type="_wycTpuOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgmeOSEdyLpcXsYAESEQ" name="getNumgeometries" visibility="public">
+                  <ownedParameter xmi:id="_wySgmuOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgm-OSEdyLpcXsYAESEQ" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_wySgnOOSEdyLpcXsYAESEQ" name="i" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgneOSEdyLpcXsYAESEQ" name="return" type="_wyShAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgnuOSEdyLpcXsYAESEQ" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_wySgn-OSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgoOOSEdyLpcXsYAESEQ" name="return" type="_wycTp-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgoeOSEdyLpcXsYAESEQ" name="fastIntersects" visibility="public">
+                  <ownedParameter xmi:id="_wySgouOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgo-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgpOOSEdyLpcXsYAESEQ" name="w" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgpeOSEdyLpcXsYAESEQ" name="h" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgpuOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgp-OSEdyLpcXsYAESEQ" name="getHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wySgqOOSEdyLpcXsYAESEQ" name="type" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgqeOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgquOSEdyLpcXsYAESEQ" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_wySgq-OSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgrOOSEdyLpcXsYAESEQ" name="toWKB" visibility="public">
+                  <ownedParameter xmi:id="_wySgreOSEdyLpcXsYAESEQ" name="return" type="_wySgAuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgruOSEdyLpcXsYAESEQ" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_wySgr-OSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgsOOSEdyLpcXsYAESEQ" name="flatness" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgseOSEdyLpcXsYAESEQ" name="return" type="_wycTp-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgsuOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wySgs-OSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgtOOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgteOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgtuOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wySgt-OSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySguOOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgueOSEdyLpcXsYAESEQ" name="w" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySguuOSEdyLpcXsYAESEQ" name="h" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgu-OSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgvOOSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wySgveOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgvuOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgv-OSEdyLpcXsYAESEQ" name="w" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgwOOSEdyLpcXsYAESEQ" name="h" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgweOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgwuOSEdyLpcXsYAESEQ" name="getBounds" visibility="public">
+                  <ownedParameter xmi:id="_wySgw-OSEdyLpcXsYAESEQ" name="return" type="_wycTqOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgxOOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wySgxeOSEdyLpcXsYAESEQ" name="p" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgxuOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgx-OSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wySgyOOSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySgyeOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgyuOSEdyLpcXsYAESEQ" name="getGeometryType" visibility="public">
+                  <ownedParameter xmi:id="_wySgy-OSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySgzOOSEdyLpcXsYAESEQ" name="cloneGeometry" visibility="public">
+                  <ownedParameter xmi:id="_wySgzeOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wySgzuOSEdyLpcXsYAESEQ" name="PointHandler" clientDependency="_wySg0-OSEdyLpcXsYAESEQ _wySg1OOSEdyLpcXsYAESEQ _wySg1eOSEdyLpcXsYAESEQ">
+                <generalization xmi:id="_wySgz-OSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <generalization xmi:id="_wySg0OOSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <generalization xmi:id="_wySg0eOSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <generalization xmi:id="_wySg0uOSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wySg0-OSEdyLpcXsYAESEQ" name="IFinalHandler" supplier="_wycR4eOSEdyLpcXsYAESEQ" client="_wySgzuOSEdyLpcXsYAESEQ" contract="_wycR4eOSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wySg1OOSEdyLpcXsYAESEQ" name="IFinalHandler" supplier="_wycR4eOSEdyLpcXsYAESEQ" client="_wySgzuOSEdyLpcXsYAESEQ" contract="_wycR4eOSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wySg1eOSEdyLpcXsYAESEQ" name="IFinalHandler" supplier="_wycR4eOSEdyLpcXsYAESEQ" client="_wySgzuOSEdyLpcXsYAESEQ" contract="_wycR4eOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wySg1uOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wySg1-OSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySg2OOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySg2eOSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wySg2uOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySg2-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySg3OOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wySg3eOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySg3uOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySg3-OSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wySg4OOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySg4eOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySg4uOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wySg4-OSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySg5OOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySg5eOSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wySg5uOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySg5-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySg6OOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wySg6eOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySg6uOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySg6-OSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wySg7OOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySg7eOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wySg7uOSEdyLpcXsYAESEQ" name="FMultiLine2D">
+                <generalization xmi:id="_wySg7-OSEdyLpcXsYAESEQ" general="_wycR4-OSEdyLpcXsYAESEQ"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_wySg8OOSEdyLpcXsYAESEQ" name="IGeometryVisitor">
+                <ownedOperation xmi:id="_wySg8eOSEdyLpcXsYAESEQ" name="visit" visibility="public">
+                  <ownedParameter xmi:id="_wySg8uOSEdyLpcXsYAESEQ" name="geometry" type="_wycRC-OSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wySg8-OSEdyLpcXsYAESEQ" name="AbstractHandler" clientDependency="_wySg9-OSEdyLpcXsYAESEQ">
+                <ownedAttribute xmi:id="_wySg9OOSEdyLpcXsYAESEQ" name="index" visibility="protected" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wySg9eOSEdyLpcXsYAESEQ" name="point" visibility="protected" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wySg9uOSEdyLpcXsYAESEQ" name="select" visibility="private" type="_wySgAeOSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wySg9-OSEdyLpcXsYAESEQ" name="Handler" supplier="_wycR1eOSEdyLpcXsYAESEQ" client="_wySg8-OSEdyLpcXsYAESEQ" contract="_wycR1eOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wySg-OOSEdyLpcXsYAESEQ" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_wySg-eOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySg-uOSEdyLpcXsYAESEQ" name="select" visibility="public">
+                  <ownedParameter xmi:id="_wySg--OSEdyLpcXsYAESEQ" name="b" type="_wySgAeOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySg_OOSEdyLpcXsYAESEQ" name="isSelected" visibility="public">
+                  <ownedParameter xmi:id="_wySg_eOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySg_uOSEdyLpcXsYAESEQ" name="equalsPoint" visibility="public">
+                  <ownedParameter xmi:id="_wySg_-OSEdyLpcXsYAESEQ" name="obj" type="_wycTqeOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShAOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wyShAeOSEdyLpcXsYAESEQ" name="FPoint2D">
+                <generalization xmi:id="_wyShAuOSEdyLpcXsYAESEQ" general="_wycRx-OSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wyShA-OSEdyLpcXsYAESEQ" name="p" visibility="protected" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wyShBOOSEdyLpcXsYAESEQ" name="setPoint" visibility="private">
+                  <ownedParameter xmi:id="_wyShBeOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShBuOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShB-OSEdyLpcXsYAESEQ" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_wyShCOOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShCeOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wyShCuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShC-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShDOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShDeOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wyShDuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShD-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShEOOSEdyLpcXsYAESEQ" name="w" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShEeOSEdyLpcXsYAESEQ" name="h" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShEuOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShE-OSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wyShFOOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShFeOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShFuOSEdyLpcXsYAESEQ" name="w" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShF-OSEdyLpcXsYAESEQ" name="h" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShGOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShGeOSEdyLpcXsYAESEQ" name="getBounds" visibility="public">
+                  <ownedParameter xmi:id="_wyShGuOSEdyLpcXsYAESEQ" name="return" type="_wycTqOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShG-OSEdyLpcXsYAESEQ" name="getX" visibility="public">
+                  <ownedParameter xmi:id="_wyShHOOSEdyLpcXsYAESEQ" name="return" type="_wySgBOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShHeOSEdyLpcXsYAESEQ" name="getY" visibility="public">
+                  <ownedParameter xmi:id="_wyShHuOSEdyLpcXsYAESEQ" name="return" type="_wySgBOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShH-OSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wyShIOOSEdyLpcXsYAESEQ" name="p" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShIeOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShIuOSEdyLpcXsYAESEQ" name="getBounds2D" visibility="public">
+                  <ownedParameter xmi:id="_wyShI-OSEdyLpcXsYAESEQ" name="return" type="_wycTpOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShJOOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wyShJeOSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShJuOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShJ-OSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wyShKOOSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShKeOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShKuOSEdyLpcXsYAESEQ" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_wyShK-OSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShLOOSEdyLpcXsYAESEQ" name="return" type="_wycTp-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShLeOSEdyLpcXsYAESEQ" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_wyShLuOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShL-OSEdyLpcXsYAESEQ" name="flatness" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShMOOSEdyLpcXsYAESEQ" name="return" type="_wycTp-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShMeOSEdyLpcXsYAESEQ" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_wyShMuOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShM-OSEdyLpcXsYAESEQ" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_wyShNOOSEdyLpcXsYAESEQ" name="return" type="_wycS2eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShNeOSEdyLpcXsYAESEQ" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_wyShNuOSEdyLpcXsYAESEQ" name="ct" type="_wycTpuOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShN-OSEdyLpcXsYAESEQ" name="getStretchingHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wyShOOOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShOeOSEdyLpcXsYAESEQ" name="getSelectHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wyShOuOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wyShO-OSEdyLpcXsYAESEQ" name="PointHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wyShPOOSEdyLpcXsYAESEQ" name="GeneralPathX">
+                <ownedAttribute xmi:id="_wyShPeOSEdyLpcXsYAESEQ" name="WIND_EVEN_ODD" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wyShPuOSEdyLpcXsYAESEQ" name="WIND_NON_ZERO" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wyShP-OSEdyLpcXsYAESEQ" name="SEG_MOVETO" visibility="private" type="_wySgAuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wyShQOOSEdyLpcXsYAESEQ" name="SEG_LINETO" visibility="private" type="_wySgAuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wyShQeOSEdyLpcXsYAESEQ" name="SEG_QUADTO" visibility="private" type="_wySgAuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wyShQuOSEdyLpcXsYAESEQ" name="SEG_CUBICTO" visibility="private" type="_wySgAuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wyShQ-OSEdyLpcXsYAESEQ" name="SEG_CLOSE" visibility="private" type="_wySgAuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wyShROOSEdyLpcXsYAESEQ" name="pointTypes" type="_wySgAuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wyShReOSEdyLpcXsYAESEQ" name="pointCoords" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wyShRuOSEdyLpcXsYAESEQ" name="numTypes" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wyShR-OSEdyLpcXsYAESEQ" name="numCoords" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wyShSOOSEdyLpcXsYAESEQ" name="windingRule" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wyShSeOSEdyLpcXsYAESEQ" name="INIT_SIZE" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wyShSuOSEdyLpcXsYAESEQ" name="EXPAND_MAX" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wyShS-OSEdyLpcXsYAESEQ" name="curvesize" visibility="private" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wyShTOOSEdyLpcXsYAESEQ" name="needRoom" visibility="private">
+                  <ownedParameter xmi:id="_wyShTeOSEdyLpcXsYAESEQ" name="newTypes" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShTuOSEdyLpcXsYAESEQ" name="newCoords" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShT-OSEdyLpcXsYAESEQ" name="needMove" type="_wySgAeOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShUOOSEdyLpcXsYAESEQ" name="moveTo" visibility="public">
+                  <ownedParameter xmi:id="_wyShUeOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShUuOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShU-OSEdyLpcXsYAESEQ" name="lineTo" visibility="public">
+                  <ownedParameter xmi:id="_wyShVOOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShVeOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShVuOSEdyLpcXsYAESEQ" name="quadTo" visibility="public">
+                  <ownedParameter xmi:id="_wyShV-OSEdyLpcXsYAESEQ" name="x1" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShWOOSEdyLpcXsYAESEQ" name="y1" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShWeOSEdyLpcXsYAESEQ" name="x2" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShWuOSEdyLpcXsYAESEQ" name="y2" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShW-OSEdyLpcXsYAESEQ" name="curveTo" visibility="public">
+                  <ownedParameter xmi:id="_wyShXOOSEdyLpcXsYAESEQ" name="x1" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShXeOSEdyLpcXsYAESEQ" name="y1" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShXuOSEdyLpcXsYAESEQ" name="x2" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShX-OSEdyLpcXsYAESEQ" name="y2" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShYOOSEdyLpcXsYAESEQ" name="x3" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShYeOSEdyLpcXsYAESEQ" name="y3" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShYuOSEdyLpcXsYAESEQ" name="closePath" visibility="public"/>
+                <ownedOperation xmi:id="_wyShY-OSEdyLpcXsYAESEQ" name="isClosed" visibility="public">
+                  <ownedParameter xmi:id="_wyShZOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShZeOSEdyLpcXsYAESEQ" name="append" visibility="public">
+                  <ownedParameter xmi:id="_wyShZuOSEdyLpcXsYAESEQ" name="s" type="_wycTquOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShZ-OSEdyLpcXsYAESEQ" name="connect" type="_wySgAeOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShaOOSEdyLpcXsYAESEQ" name="append" visibility="public">
+                  <ownedParameter xmi:id="_wyShaeOSEdyLpcXsYAESEQ" name="pi" type="_wycTp-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShauOSEdyLpcXsYAESEQ" name="connect" type="_wySgAeOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySha-OSEdyLpcXsYAESEQ" name="getWindingRule" visibility="public">
+                  <ownedParameter xmi:id="_wyShbOOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShbeOSEdyLpcXsYAESEQ" name="setWindingRule" visibility="public">
+                  <ownedParameter xmi:id="_wyShbuOSEdyLpcXsYAESEQ" name="rule" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShb-OSEdyLpcXsYAESEQ" name="getCurrentPoint" visibility="public">
+                  <ownedParameter xmi:id="_wyShcOOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShceOSEdyLpcXsYAESEQ" name="reset" visibility="public"/>
+                <ownedOperation xmi:id="_wyShcuOSEdyLpcXsYAESEQ" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_wyShc-OSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShdOOSEdyLpcXsYAESEQ" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_wyShdeOSEdyLpcXsYAESEQ" name="ct" type="_wycTpuOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShduOSEdyLpcXsYAESEQ" name="createTransformedShape" visibility="public">
+                  <ownedParameter xmi:id="_wyShd-OSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wySheOOSEdyLpcXsYAESEQ" name="return" type="_wycTquOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wySheeOSEdyLpcXsYAESEQ" name="getBounds" visibility="public">
+                  <ownedParameter xmi:id="_wySheuOSEdyLpcXsYAESEQ" name="return" type="_wycTq-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShe-OSEdyLpcXsYAESEQ" name="getBounds2D" visibility="public">
+                  <ownedParameter xmi:id="_wyShfOOSEdyLpcXsYAESEQ" name="return" type="_wycTpOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShfeOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wyShfuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShf-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShgOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShgeOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wyShguOSEdyLpcXsYAESEQ" name="p" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShg-OSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShhOOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wyShheOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShhuOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShh-OSEdyLpcXsYAESEQ" name="w" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShiOOSEdyLpcXsYAESEQ" name="h" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShieOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShiuOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wyShi-OSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShjOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShjeOSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wyShjuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShj-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShkOOSEdyLpcXsYAESEQ" name="w" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShkeOSEdyLpcXsYAESEQ" name="h" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShkuOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShk-OSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wyShlOOSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShleOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShluOSEdyLpcXsYAESEQ" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_wyShl-OSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wyShmOOSEdyLpcXsYAESEQ" name="return" type="_wycTp-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wyShmeOSEdyLpcXsYAESEQ" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_wycRAOOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRAeOSEdyLpcXsYAESEQ" name="flatness" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRAuOSEdyLpcXsYAESEQ" name="return" type="_wycTp-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRA-OSEdyLpcXsYAESEQ" name="clone" visibility="public">
+                  <ownedParameter xmi:id="_wycRBOOSEdyLpcXsYAESEQ" name="return" type="_wycTqeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRBeOSEdyLpcXsYAESEQ" name="flip" visibility="public"/>
+                <ownedOperation xmi:id="_wycRBuOSEdyLpcXsYAESEQ" name="ensureOrientation" visibility="public">
+                  <ownedParameter xmi:id="_wycRB-OSEdyLpcXsYAESEQ" name="bCCW" type="_wySgAeOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRCOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRCeOSEdyLpcXsYAESEQ" name="isCCW" visibility="public">
+                  <ownedParameter xmi:id="_wycRCuOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_wycRC-OSEdyLpcXsYAESEQ" name="IGeometry">
+                <generalization xmi:id="_wycRDOOSEdyLpcXsYAESEQ" general="_wycTquOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycRDeOSEdyLpcXsYAESEQ" name="BEST" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycRDuOSEdyLpcXsYAESEQ" name="N" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycRD-OSEdyLpcXsYAESEQ" name="NE" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycREOOSEdyLpcXsYAESEQ" name="E" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycREeOSEdyLpcXsYAESEQ" name="SE" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycREuOSEdyLpcXsYAESEQ" name="S" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycRE-OSEdyLpcXsYAESEQ" name="SW" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycRFOOSEdyLpcXsYAESEQ" name="W" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycRFeOSEdyLpcXsYAESEQ" name="NW" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycRFuOSEdyLpcXsYAESEQ" name="SELECTHANDLER" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycRF-OSEdyLpcXsYAESEQ" name="STRETCHINGHANDLER" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycRGOOSEdyLpcXsYAESEQ" name="toJTSGeometry">
+                  <ownedParameter xmi:id="_wycRGeOSEdyLpcXsYAESEQ" name="return" type="_wycTpeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRGuOSEdyLpcXsYAESEQ" name="getGeometryType">
+                  <ownedParameter xmi:id="_wycRG-OSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRHOOSEdyLpcXsYAESEQ" name="cloneGeometry">
+                  <ownedParameter xmi:id="_wycRHeOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRHuOSEdyLpcXsYAESEQ" name="intersects">
+                  <ownedParameter xmi:id="_wycRH-OSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRIOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRIeOSEdyLpcXsYAESEQ" name="fastIntersects" visibility="public">
+                  <ownedParameter xmi:id="_wycRIuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRI-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRJOOSEdyLpcXsYAESEQ" name="w" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRJeOSEdyLpcXsYAESEQ" name="h" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRJuOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRJ-OSEdyLpcXsYAESEQ" name="getBounds2D">
+                  <ownedParameter xmi:id="_wycRKOOSEdyLpcXsYAESEQ" name="return" type="_wycTpOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRKeOSEdyLpcXsYAESEQ" name="reProject">
+                  <ownedParameter xmi:id="_wycRKuOSEdyLpcXsYAESEQ" name="ct" type="_wycTpuOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRK-OSEdyLpcXsYAESEQ" name="getPathIterator">
+                  <ownedParameter xmi:id="_wycRLOOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRLeOSEdyLpcXsYAESEQ" name="return" type="_wycTp-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRLuOSEdyLpcXsYAESEQ" name="toWKB" visibility="public">
+                  <ownedParameter xmi:id="_wycRL-OSEdyLpcXsYAESEQ" name="return" type="_wySgAuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRMOOSEdyLpcXsYAESEQ" name="getHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wycRMeOSEdyLpcXsYAESEQ" name="type" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRMuOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRM-OSEdyLpcXsYAESEQ" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_wycRNOOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRNeOSEdyLpcXsYAESEQ" name="getPathIterator">
+                  <ownedParameter xmi:id="_wycRNuOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRN-OSEdyLpcXsYAESEQ" name="flatness" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycROOOSEdyLpcXsYAESEQ" name="return" type="_wycTp-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycROeOSEdyLpcXsYAESEQ" name="getInternalShape">
+                  <ownedParameter xmi:id="_wycROuOSEdyLpcXsYAESEQ" name="return" type="_wycTquOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRO-OSEdyLpcXsYAESEQ" name="isSimple" visibility="public">
+                  <ownedParameter xmi:id="_wycRPOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRPeOSEdyLpcXsYAESEQ" name="accept" visibility="public">
+                  <ownedParameter xmi:id="_wycRPuOSEdyLpcXsYAESEQ" name="visitor" type="_wySg8OOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycRP-OSEdyLpcXsYAESEQ" name="FPolyline3D" clientDependency="_wycRQuOSEdyLpcXsYAESEQ">
+                <generalization xmi:id="_wycRQOOSEdyLpcXsYAESEQ" general="_wycS9uOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycRQeOSEdyLpcXsYAESEQ" name="pZ" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wycRQuOSEdyLpcXsYAESEQ" name="FShape3D" supplier="_wycS8uOSEdyLpcXsYAESEQ" client="_wycRP-OSEdyLpcXsYAESEQ" contract="_wycS8uOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycRQ-OSEdyLpcXsYAESEQ" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_wycRROOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRReOSEdyLpcXsYAESEQ" name="getZs" visibility="public">
+                  <ownedParameter xmi:id="_wycRRuOSEdyLpcXsYAESEQ" name="return" type="_wySgBOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRR-OSEdyLpcXsYAESEQ" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_wycRSOOSEdyLpcXsYAESEQ" name="return" type="_wycS2eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycRSeOSEdyLpcXsYAESEQ" name="FCircle2D">
+                <generalization xmi:id="_wycRSuOSEdyLpcXsYAESEQ" general="_wycSH-OSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycRS-OSEdyLpcXsYAESEQ" name="center" visibility="private" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycRTOOSEdyLpcXsYAESEQ" name="radio" visibility="private" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycRTeOSEdyLpcXsYAESEQ" name="getCenter" visibility="public">
+                  <ownedParameter xmi:id="_wycRTuOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRT-OSEdyLpcXsYAESEQ" name="getRadio" visibility="public">
+                  <ownedParameter xmi:id="_wycRUOOSEdyLpcXsYAESEQ" name="return" type="_wySgBOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRUeOSEdyLpcXsYAESEQ" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_wycRUuOSEdyLpcXsYAESEQ" name="return" type="_wycS2eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRU-OSEdyLpcXsYAESEQ" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_wycRVOOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRVeOSEdyLpcXsYAESEQ" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_wycRVuOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRV-OSEdyLpcXsYAESEQ" name="getStretchingHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wycRWOOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRWeOSEdyLpcXsYAESEQ" name="getSelectHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wycRWuOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRW-OSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wycRXOOSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRXeOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycRXuOSEdyLpcXsYAESEQ" name="CenterHandler" clientDependency="_wycRYeOSEdyLpcXsYAESEQ _wycRYuOSEdyLpcXsYAESEQ">
+                <generalization xmi:id="_wycRX-OSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <generalization xmi:id="_wycRYOOSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wycRYeOSEdyLpcXsYAESEQ" name="ICenterHandler" supplier="_wycSX-OSEdyLpcXsYAESEQ" client="_wycRXuOSEdyLpcXsYAESEQ" contract="_wycSX-OSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wycRYuOSEdyLpcXsYAESEQ" name="ICenterHandler" supplier="_wycSX-OSEdyLpcXsYAESEQ" client="_wycRXuOSEdyLpcXsYAESEQ" contract="_wycSX-OSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycRY-OSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wycRZOOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRZeOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRZuOSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wycRZ-OSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRaOOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRaeOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wycRauOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRa-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRbOOSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wycRbeOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRbuOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycRb-OSEdyLpcXsYAESEQ" name="CenterSelHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycRcOOSEdyLpcXsYAESEQ" name="RadioSelHandler" clientDependency="_wycRcuOSEdyLpcXsYAESEQ">
+                <generalization xmi:id="_wycRceOSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wycRcuOSEdyLpcXsYAESEQ" name="ICuadrantHandler" supplier="_wycSOOOSEdyLpcXsYAESEQ" client="_wycRcOOSEdyLpcXsYAESEQ" contract="_wycSOOOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycRc-OSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wycRdOOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRdeOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRduOSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wycRd-OSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycReOOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycReeOSEdyLpcXsYAESEQ" name="ShapeFactory">
+                <ownedOperation xmi:id="_wycReuOSEdyLpcXsYAESEQ" name="createPoint2D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRe-OSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRfOOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRfeOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRfuOSEdyLpcXsYAESEQ" name="createPoint2D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRf-OSEdyLpcXsYAESEQ" name="p" type="_wyShAeOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRgOOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRgeOSEdyLpcXsYAESEQ" name="createMultipoint2D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRguOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRg-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRhOOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRheOSEdyLpcXsYAESEQ" name="createPoint3D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRhuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRh-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRiOOSEdyLpcXsYAESEQ" name="z" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRieOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRiuOSEdyLpcXsYAESEQ" name="createMultipoint3D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRi-OSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRjOOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRjeOSEdyLpcXsYAESEQ" name="z" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRjuOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRj-OSEdyLpcXsYAESEQ" name="createPolyline2D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRkOOSEdyLpcXsYAESEQ" name="shape" type="_wyShPOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRkeOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRkuOSEdyLpcXsYAESEQ" name="createPolyline3D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRk-OSEdyLpcXsYAESEQ" name="shape" type="_wyShPOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRlOOSEdyLpcXsYAESEQ" name="pZ" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRleOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRluOSEdyLpcXsYAESEQ" name="createPolygon3D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRl-OSEdyLpcXsYAESEQ" name="shape" type="_wyShPOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRmOOSEdyLpcXsYAESEQ" name="pZ" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRmeOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRmuOSEdyLpcXsYAESEQ" name="createPolygon2D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRm-OSEdyLpcXsYAESEQ" name="shape" type="_wyShPOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRnOOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRneOSEdyLpcXsYAESEQ" name="createPolygon2D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRnuOSEdyLpcXsYAESEQ" name="shape" type="_wycS9uOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRn-OSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRoOOSEdyLpcXsYAESEQ" name="createGeometry" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRoeOSEdyLpcXsYAESEQ" name="shp" type="_wycS2eOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRouOSEdyLpcXsYAESEQ" name="return" type="_wycS_OOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRo-OSEdyLpcXsYAESEQ" name="createCircle" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRpOOSEdyLpcXsYAESEQ" name="center" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRpeOSEdyLpcXsYAESEQ" name="r" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRpuOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRp-OSEdyLpcXsYAESEQ" name="createCircle" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRqOOSEdyLpcXsYAESEQ" name="center" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRqeOSEdyLpcXsYAESEQ" name="radio" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRquOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRq-OSEdyLpcXsYAESEQ" name="createCircle" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRrOOSEdyLpcXsYAESEQ" name="p1" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRreOSEdyLpcXsYAESEQ" name="p2" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRruOSEdyLpcXsYAESEQ" name="p3" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRr-OSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRsOOSEdyLpcXsYAESEQ" name="createArc" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRseOSEdyLpcXsYAESEQ" name="p1" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRsuOSEdyLpcXsYAESEQ" name="p2" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRs-OSEdyLpcXsYAESEQ" name="p3" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRtOOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRteOSEdyLpcXsYAESEQ" name="createEllipse" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRtuOSEdyLpcXsYAESEQ" name="axis1Start" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRt-OSEdyLpcXsYAESEQ" name="axis1End" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRuOOSEdyLpcXsYAESEQ" name="axis2Length" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRueOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRuuOSEdyLpcXsYAESEQ" name="createSpline2D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycRu-OSEdyLpcXsYAESEQ" name="points" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycRvOOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycRveOSEdyLpcXsYAESEQ" name="FMultipoint3D" clientDependency="_wycRwOOSEdyLpcXsYAESEQ">
+                <generalization xmi:id="_wycRvuOSEdyLpcXsYAESEQ" general="_wySgiuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycRv-OSEdyLpcXsYAESEQ" name="z" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wycRwOOSEdyLpcXsYAESEQ" name="IGeometry3D" supplier="_wycS8-OSEdyLpcXsYAESEQ" client="_wycRveOSEdyLpcXsYAESEQ" contract="_wycS8-OSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycRweOSEdyLpcXsYAESEQ" name="cloneGeometry" visibility="public">
+                  <ownedParameter xmi:id="_wycRwuOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRw-OSEdyLpcXsYAESEQ" name="getZs" visibility="public">
+                  <ownedParameter xmi:id="_wycRxOOSEdyLpcXsYAESEQ" name="return" type="_wySgBOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRxeOSEdyLpcXsYAESEQ" name="getGeometryType" visibility="public">
+                  <ownedParameter xmi:id="_wycRxuOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycRx-OSEdyLpcXsYAESEQ" name="FPrimitiveAbstract">
+                <ownedOperation xmi:id="_wycRyuOSEdyLpcXsYAESEQ" name="cloneGeometry" visibility="public">
+                  <ownedParameter xmi:id="_wycRy-OSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRzOOSEdyLpcXsYAESEQ" name="toJTSGeometry" visibility="public">
+                  <ownedParameter xmi:id="_wycRzeOSEdyLpcXsYAESEQ" name="return" type="_wycTpeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycRzuOSEdyLpcXsYAESEQ" name="getHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wycRz-OSEdyLpcXsYAESEQ" name="type" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycR0OOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycR0eOSEdyLpcXsYAESEQ" name="getGeometryType" visibility="public">
+                  <ownedParameter xmi:id="_wycR0uOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycR0-OSEdyLpcXsYAESEQ" name="isSimple" visibility="public">
+                  <ownedParameter xmi:id="_wycR1OOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_wycR1eOSEdyLpcXsYAESEQ" name="Handler">
+                <ownedOperation xmi:id="_wycR1uOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wycR1-OSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycR2OOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycR2eOSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wycR2uOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycR2-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycR3OOSEdyLpcXsYAESEQ" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_wycR3eOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycR3uOSEdyLpcXsYAESEQ" name="equalsPoint" visibility="public">
+                  <ownedParameter xmi:id="_wycR3-OSEdyLpcXsYAESEQ" name="obj" type="_wycTqeOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycR4OOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_wycR4eOSEdyLpcXsYAESEQ" name="IFinalHandler">
+                <generalization xmi:id="_wycR4uOSEdyLpcXsYAESEQ" general="_wycR1eOSEdyLpcXsYAESEQ"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycR4-OSEdyLpcXsYAESEQ" name="FGeometryCollection">
+                <generalization xmi:id="_wycR5OOSEdyLpcXsYAESEQ" general="_wycS_OOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycR5eOSEdyLpcXsYAESEQ" name="geometries" type="_wycRC-OSEdyLpcXsYAESEQ" association="_wycTrOOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycR5uOSEdyLpcXsYAESEQ" name="getGeometriesNumber" visibility="public">
+                  <ownedParameter xmi:id="_wycR5-OSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycR6OOSEdyLpcXsYAESEQ" name="cloneGeometry" visibility="public">
+                  <ownedParameter xmi:id="_wycR6eOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycR6uOSEdyLpcXsYAESEQ" name="getBounds2D" visibility="public">
+                  <ownedParameter xmi:id="_wycR6-OSEdyLpcXsYAESEQ" name="return" type="_wycTpOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycR7OOSEdyLpcXsYAESEQ" name="getGeometryType" visibility="public">
+                  <ownedParameter xmi:id="_wycR7eOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycR7uOSEdyLpcXsYAESEQ" name="getHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wycR7-OSEdyLpcXsYAESEQ" name="type" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycR8OOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycR8eOSEdyLpcXsYAESEQ" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_wycR8uOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycR8-OSEdyLpcXsYAESEQ" name="return" type="_wycTp-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycR9OOSEdyLpcXsYAESEQ" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_wycR9eOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycR9uOSEdyLpcXsYAESEQ" name="flatness" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycR9-OSEdyLpcXsYAESEQ" name="return" type="_wycTp-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycR-OOSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wycR-eOSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycR-uOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycR--OSEdyLpcXsYAESEQ" name="isSimple" visibility="public">
+                  <ownedParameter xmi:id="_wycR_OOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycR_eOSEdyLpcXsYAESEQ" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_wycR_uOSEdyLpcXsYAESEQ" name="ct" type="_wycTpuOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycR_-OSEdyLpcXsYAESEQ" name="toJTSGeometry" visibility="public">
+                  <ownedParameter xmi:id="_wycSAOOSEdyLpcXsYAESEQ" name="return" type="_wycTpeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSAeOSEdyLpcXsYAESEQ" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_wycSAuOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSA-OSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wycSBOOSEdyLpcXsYAESEQ" name="p" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSBeOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSBuOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wycSB-OSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSCOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSCeOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wycSCuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSC-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSDOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSDeOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wycSDuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSD-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSEOOSEdyLpcXsYAESEQ" name="w" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSEeOSEdyLpcXsYAESEQ" name="h" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSEuOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSE-OSEdyLpcXsYAESEQ" name="getBounds" visibility="public">
+                  <ownedParameter xmi:id="_wycSFOOSEdyLpcXsYAESEQ" name="return" type="_wycTqOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSFeOSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wycSFuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSF-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSGOOSEdyLpcXsYAESEQ" name="w" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSGeOSEdyLpcXsYAESEQ" name="h" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSGuOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSG-OSEdyLpcXsYAESEQ" name="accept" visibility="public">
+                  <ownedParameter xmi:id="_wycSHOOSEdyLpcXsYAESEQ" name="visitor" type="_wySg8OOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSHeOSEdyLpcXsYAESEQ" name="getGeometries" visibility="public">
+                  <ownedParameter xmi:id="_wycSHuOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycSH-OSEdyLpcXsYAESEQ" name="FPolygon2D">
+                <generalization xmi:id="_wycSIOOSEdyLpcXsYAESEQ" general="_wycTIOOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycSIeOSEdyLpcXsYAESEQ" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_wycSIuOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSI-OSEdyLpcXsYAESEQ" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_wycSJOOSEdyLpcXsYAESEQ" name="return" type="_wycS2eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSJeOSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wycSJuOSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSJ-OSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycSKOOSEdyLpcXsYAESEQ" name="FPointIterator">
+                <generalization xmi:id="_wycSKeOSEdyLpcXsYAESEQ" general="_wycTD-OSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycSKuOSEdyLpcXsYAESEQ" name="at" visibility="private" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycSK-OSEdyLpcXsYAESEQ" name="p" visibility="private" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycSLOOSEdyLpcXsYAESEQ" name="done" visibility="private" type="_wySgAeOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycSLeOSEdyLpcXsYAESEQ" name="getWindingRule" visibility="public">
+                  <ownedParameter xmi:id="_wycSLuOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSL-OSEdyLpcXsYAESEQ" name="next" visibility="public"/>
+                <ownedOperation xmi:id="_wycSMOOSEdyLpcXsYAESEQ" name="isDone" visibility="public">
+                  <ownedParameter xmi:id="_wycSMeOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSMuOSEdyLpcXsYAESEQ" name="currentSegment" visibility="public">
+                  <ownedParameter xmi:id="_wycSM-OSEdyLpcXsYAESEQ" name="coords" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSNOOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSNeOSEdyLpcXsYAESEQ" name="currentSegment" visibility="public">
+                  <ownedParameter xmi:id="_wycSNuOSEdyLpcXsYAESEQ" name="coords" type="_wySgBeOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSN-OSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_wycSOOOSEdyLpcXsYAESEQ" name="ICuadrantHandler">
+                <generalization xmi:id="_wycSOeOSEdyLpcXsYAESEQ" general="_wycR1eOSEdyLpcXsYAESEQ"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycSOuOSEdyLpcXsYAESEQ" name="FEllipse2D">
+                <generalization xmi:id="_wycSO-OSEdyLpcXsYAESEQ" general="_wycSH-OSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycSPOOSEdyLpcXsYAESEQ" name="init" visibility="private" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycSPeOSEdyLpcXsYAESEQ" name="end" visibility="private" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycSPuOSEdyLpcXsYAESEQ" name="ydist" visibility="private" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycSP-OSEdyLpcXsYAESEQ" name="getInit" visibility="public">
+                  <ownedParameter xmi:id="_wycSQOOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSQeOSEdyLpcXsYAESEQ" name="getEnd" visibility="public">
+                  <ownedParameter xmi:id="_wycSQuOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSQ-OSEdyLpcXsYAESEQ" name="getDist" visibility="public">
+                  <ownedParameter xmi:id="_wycSROOSEdyLpcXsYAESEQ" name="return" type="_wySgBOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSReOSEdyLpcXsYAESEQ" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_wycSRuOSEdyLpcXsYAESEQ" name="return" type="_wycS2eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSR-OSEdyLpcXsYAESEQ" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_wycSSOOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSSeOSEdyLpcXsYAESEQ" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_wycSSuOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSS-OSEdyLpcXsYAESEQ" name="getStretchingHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wycSTOOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSTeOSEdyLpcXsYAESEQ" name="getSelectHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wycSTuOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycST-OSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wycSUOOSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSUeOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycSUuOSEdyLpcXsYAESEQ" name="CenterHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycSU-OSEdyLpcXsYAESEQ" name="CenterSelHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycSVOOSEdyLpcXsYAESEQ" name="InitSelHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycSVeOSEdyLpcXsYAESEQ" name="EndSelHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycSVuOSEdyLpcXsYAESEQ" name="RadioSelYHandler" clientDependency="_wycSWOOSEdyLpcXsYAESEQ">
+                <generalization xmi:id="_wycSV-OSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wycSWOOSEdyLpcXsYAESEQ" name="ICuadrantHandler" supplier="_wycSOOOSEdyLpcXsYAESEQ" client="_wycSVuOSEdyLpcXsYAESEQ" contract="_wycSOOOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycSWeOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wycSWuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSW-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSXOOSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wycSXeOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSXuOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_wycSX-OSEdyLpcXsYAESEQ" name="ICenterHandler">
+                <generalization xmi:id="_wycSYOOSEdyLpcXsYAESEQ" general="_wycR1eOSEdyLpcXsYAESEQ"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycSYeOSEdyLpcXsYAESEQ" name="FPoint3D" clientDependency="_wycSZOOSEdyLpcXsYAESEQ">
+                <generalization xmi:id="_wycSYuOSEdyLpcXsYAESEQ" general="_wyShAeOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycSY-OSEdyLpcXsYAESEQ" name="z" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wycSZOOSEdyLpcXsYAESEQ" name="FShape3D" supplier="_wycS8uOSEdyLpcXsYAESEQ" client="_wycSYeOSEdyLpcXsYAESEQ" contract="_wycS8uOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycSZeOSEdyLpcXsYAESEQ" name="getZs" visibility="public">
+                  <ownedParameter xmi:id="_wycSZuOSEdyLpcXsYAESEQ" name="return" type="_wySgBOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSZ-OSEdyLpcXsYAESEQ" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_wycSaOOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSaeOSEdyLpcXsYAESEQ" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_wycSauOSEdyLpcXsYAESEQ" name="return" type="_wycS2eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycSa-OSEdyLpcXsYAESEQ" name="FSpline2D">
+                <generalization xmi:id="_wycSbOOSEdyLpcXsYAESEQ" general="_wycS9uOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycSbeOSEdyLpcXsYAESEQ" name="points" visibility="private" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycSbuOSEdyLpcXsYAESEQ" name="getGeneralPathX" visibility="private" isStatic="true">
+                  <ownedParameter xmi:id="_wycSb-OSEdyLpcXsYAESEQ" name="ps" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycScOOSEdyLpcXsYAESEQ" name="return" type="_wyShPOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSceOSEdyLpcXsYAESEQ" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_wycScuOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSc-OSEdyLpcXsYAESEQ" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_wycSdOOSEdyLpcXsYAESEQ" name="return" type="_wycS2eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSdeOSEdyLpcXsYAESEQ" name="getStretchingHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wycSduOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSd-OSEdyLpcXsYAESEQ" name="getSelectHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wycSeOOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycSeeOSEdyLpcXsYAESEQ" name="PointHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycSeuOSEdyLpcXsYAESEQ" name="PointSelHandler" clientDependency="_wycSfeOSEdyLpcXsYAESEQ _wycSfuOSEdyLpcXsYAESEQ">
+                <generalization xmi:id="_wycSe-OSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <generalization xmi:id="_wycSfOOSEdyLpcXsYAESEQ" general="_wySg8-OSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wycSfeOSEdyLpcXsYAESEQ" name="IFinalHandler" supplier="_wycR4eOSEdyLpcXsYAESEQ" client="_wycSeuOSEdyLpcXsYAESEQ" contract="_wycR4eOSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wycSfuOSEdyLpcXsYAESEQ" name="IFinalHandler" supplier="_wycR4eOSEdyLpcXsYAESEQ" client="_wycSeuOSEdyLpcXsYAESEQ" contract="_wycR4eOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycSf-OSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wycSgOOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSgeOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSguOSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wycSg-OSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycShOOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSheOSEdyLpcXsYAESEQ" name="move" visibility="public">
+                  <ownedParameter xmi:id="_wycShuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSh-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSiOOSEdyLpcXsYAESEQ" name="set" visibility="public">
+                  <ownedParameter xmi:id="_wycSieOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSiuOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycSi-OSEdyLpcXsYAESEQ" name="Spline">
+                <ownedAttribute xmi:id="_wycSjOOSEdyLpcXsYAESEQ" name="y" visibility="private" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycSjeOSEdyLpcXsYAESEQ" name="y2" visibility="private" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycSjuOSEdyLpcXsYAESEQ" name="fn" visibility="public">
+                  <ownedParameter xmi:id="_wycSj-OSEdyLpcXsYAESEQ" name="n" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSkOOSEdyLpcXsYAESEQ" name="t" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSkeOSEdyLpcXsYAESEQ" name="return" type="_wySgBOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycSkuOSEdyLpcXsYAESEQ" name="FPolygon3D" clientDependency="_wycSleOSEdyLpcXsYAESEQ">
+                <generalization xmi:id="_wycSk-OSEdyLpcXsYAESEQ" general="_wycSH-OSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycSlOOSEdyLpcXsYAESEQ" name="pZ" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wycSleOSEdyLpcXsYAESEQ" name="FShape3D" supplier="_wycS8uOSEdyLpcXsYAESEQ" client="_wycSkuOSEdyLpcXsYAESEQ" contract="_wycS8uOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycSluOSEdyLpcXsYAESEQ" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_wycSl-OSEdyLpcXsYAESEQ" name="return" type="_wycS2eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSmOOSEdyLpcXsYAESEQ" name="getZs" visibility="public">
+                  <ownedParameter xmi:id="_wycSmeOSEdyLpcXsYAESEQ" name="return" type="_wySgBOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSmuOSEdyLpcXsYAESEQ" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_wycSm-OSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycSnOOSEdyLpcXsYAESEQ" name="FNullGeometry">
+                <generalization xmi:id="_wycSneOSEdyLpcXsYAESEQ" general="_wycS_OOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycSnuOSEdyLpcXsYAESEQ" name="toJTSGeometry" visibility="public">
+                  <ownedParameter xmi:id="_wycSn-OSEdyLpcXsYAESEQ" name="return" type="_wycTpeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSoOOSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wycSoeOSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSouOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSo-OSEdyLpcXsYAESEQ" name="getBounds2D" visibility="public">
+                  <ownedParameter xmi:id="_wycSpOOSEdyLpcXsYAESEQ" name="return" type="_wycTpOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSpeOSEdyLpcXsYAESEQ" name="getGeometryType" visibility="public">
+                  <ownedParameter xmi:id="_wycSpuOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSp-OSEdyLpcXsYAESEQ" name="cloneGeometry" visibility="public">
+                  <ownedParameter xmi:id="_wycSqOOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSqeOSEdyLpcXsYAESEQ" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_wycSquOSEdyLpcXsYAESEQ" name="ct" type="_wycTpuOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSq-OSEdyLpcXsYAESEQ" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_wycSrOOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSreOSEdyLpcXsYAESEQ" name="return" type="_wycTp-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSruOSEdyLpcXsYAESEQ" name="fastIntersects" visibility="public">
+                  <ownedParameter xmi:id="_wycSr-OSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSsOOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSseOSEdyLpcXsYAESEQ" name="w" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSsuOSEdyLpcXsYAESEQ" name="h" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSs-OSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycStOOSEdyLpcXsYAESEQ" name="toWKB" visibility="public">
+                  <ownedParameter xmi:id="_wycSteOSEdyLpcXsYAESEQ" name="return" type="_wySgAuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycStuOSEdyLpcXsYAESEQ" name="getHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wycSt-OSEdyLpcXsYAESEQ" name="type" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSuOOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSueOSEdyLpcXsYAESEQ" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_wycSuuOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSu-OSEdyLpcXsYAESEQ" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_wycSvOOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSveOSEdyLpcXsYAESEQ" name="flatness" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSvuOSEdyLpcXsYAESEQ" name="return" type="_wycTp-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSv-OSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wycSwOOSEdyLpcXsYAESEQ" name="arg0" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSweOSEdyLpcXsYAESEQ" name="arg1" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSwuOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSw-OSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wycSxOOSEdyLpcXsYAESEQ" name="arg0" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSxeOSEdyLpcXsYAESEQ" name="arg1" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSxuOSEdyLpcXsYAESEQ" name="arg2" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSx-OSEdyLpcXsYAESEQ" name="arg3" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSyOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSyeOSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wycSyuOSEdyLpcXsYAESEQ" name="arg0" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSy-OSEdyLpcXsYAESEQ" name="arg1" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSzOOSEdyLpcXsYAESEQ" name="arg2" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSzeOSEdyLpcXsYAESEQ" name="arg3" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycSzuOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycSz-OSEdyLpcXsYAESEQ" name="getBounds" visibility="public">
+                  <ownedParameter xmi:id="_wycS0OOSEdyLpcXsYAESEQ" name="return" type="_wycTqOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycS0eOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wycS0uOSEdyLpcXsYAESEQ" name="arg0" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycS0-OSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycS1OOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wycS1eOSEdyLpcXsYAESEQ" name="arg0" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycS1uOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycS1-OSEdyLpcXsYAESEQ" name="isSimple" visibility="public">
+                  <ownedParameter xmi:id="_wycS2OOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_wycS2eOSEdyLpcXsYAESEQ" name="FShape">
+                <generalization xmi:id="_wycS2uOSEdyLpcXsYAESEQ" general="_wycTquOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycS2-OSEdyLpcXsYAESEQ" name="NULL" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycS3OOSEdyLpcXsYAESEQ" name="POINT" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycS3eOSEdyLpcXsYAESEQ" name="LINE" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycS3uOSEdyLpcXsYAESEQ" name="POLYGON" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycS3-OSEdyLpcXsYAESEQ" name="TEXT" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycS4OOSEdyLpcXsYAESEQ" name="MULTI" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycS4eOSEdyLpcXsYAESEQ" name="MULTIPOINT" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycS4uOSEdyLpcXsYAESEQ" name="CIRCLE" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycS4-OSEdyLpcXsYAESEQ" name="ARC" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycS5OOSEdyLpcXsYAESEQ" name="ELLIPSE" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycS5eOSEdyLpcXsYAESEQ" name="Z" visibility="public" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycS5uOSEdyLpcXsYAESEQ" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_wycS5-OSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycS6OOSEdyLpcXsYAESEQ" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_wycS6eOSEdyLpcXsYAESEQ" name="return" type="_wycS2eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycS6uOSEdyLpcXsYAESEQ" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_wycS6-OSEdyLpcXsYAESEQ" name="ct" type="_wycTpuOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycS7OOSEdyLpcXsYAESEQ" name="getStretchingHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wycS7eOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycS7uOSEdyLpcXsYAESEQ" name="getSelectHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wycS7-OSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycS8OOSEdyLpcXsYAESEQ" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_wycS8eOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_wycS8uOSEdyLpcXsYAESEQ" name="FShape3D"/>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_wycS8-OSEdyLpcXsYAESEQ" name="IGeometry3D">
+                <ownedOperation xmi:id="_wycS9OOSEdyLpcXsYAESEQ" name="getZs">
+                  <ownedParameter xmi:id="_wycS9eOSEdyLpcXsYAESEQ" name="return" type="_wySgBOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycS9uOSEdyLpcXsYAESEQ" name="FPolyline2D">
+                <generalization xmi:id="_wycS9-OSEdyLpcXsYAESEQ" general="_wycTIOOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycS-OOSEdyLpcXsYAESEQ" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_wycS-eOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycS-uOSEdyLpcXsYAESEQ" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_wycS--OSEdyLpcXsYAESEQ" name="return" type="_wycS2eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycS_OOSEdyLpcXsYAESEQ" name="FGeometry" clientDependency="_wycS_eOSEdyLpcXsYAESEQ _wycS_uOSEdyLpcXsYAESEQ">
+                <interfaceRealization xmi:id="_wycS_eOSEdyLpcXsYAESEQ" name="IGeometry" supplier="_wycRC-OSEdyLpcXsYAESEQ" client="_wycS_OOSEdyLpcXsYAESEQ" contract="_wycRC-OSEdyLpcXsYAESEQ"/>
+                <interfaceRealization xmi:id="_wycS_uOSEdyLpcXsYAESEQ" name="IGeometry3D" supplier="_wycS8-OSEdyLpcXsYAESEQ" client="_wycS_OOSEdyLpcXsYAESEQ" contract="_wycS8-OSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycS_-OSEdyLpcXsYAESEQ" name="toWKB" visibility="public">
+                  <ownedParameter xmi:id="_wycTAOOSEdyLpcXsYAESEQ" name="return" type="_wySgAuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTAeOSEdyLpcXsYAESEQ" name="getInternalShape" visibility="public">
+                  <ownedParameter xmi:id="_wycTAuOSEdyLpcXsYAESEQ" name="return" type="_wycTquOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTA-OSEdyLpcXsYAESEQ" name="fastIntersects" visibility="public">
+                  <ownedParameter xmi:id="_wycTBOOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTBeOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTBuOSEdyLpcXsYAESEQ" name="w" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTB-OSEdyLpcXsYAESEQ" name="h" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTCOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTCeOSEdyLpcXsYAESEQ" name="getZs" visibility="public">
+                  <ownedParameter xmi:id="_wycTCuOSEdyLpcXsYAESEQ" name="return" type="_wySgBOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTC-OSEdyLpcXsYAESEQ" name="accept" visibility="public">
+                  <ownedParameter xmi:id="_wycTDOOSEdyLpcXsYAESEQ" name="visitor" type="_wySg8OOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycTDeOSEdyLpcXsYAESEQ" name="FMultiPolygon2D">
+                <generalization xmi:id="_wycTDuOSEdyLpcXsYAESEQ" general="_wycR4-OSEdyLpcXsYAESEQ"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycTD-OSEdyLpcXsYAESEQ" name="GeneralPathXIterator">
+                <ownedAttribute xmi:id="_wycTEOOSEdyLpcXsYAESEQ" name="typeIdx" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycTEeOSEdyLpcXsYAESEQ" name="pointIdx" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycTEuOSEdyLpcXsYAESEQ" name="path" type="_wyShPOOSEdyLpcXsYAESEQ" association="_wycTruOSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycTE-OSEdyLpcXsYAESEQ" name="affine" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycTFOOSEdyLpcXsYAESEQ" name="curvesize" visibility="private" type="_wySgBuOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycTFeOSEdyLpcXsYAESEQ" name="getWindingRule" visibility="public">
+                  <ownedParameter xmi:id="_wycTFuOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTF-OSEdyLpcXsYAESEQ" name="isDone" visibility="public">
+                  <ownedParameter xmi:id="_wycTGOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTGeOSEdyLpcXsYAESEQ" name="next" visibility="public"/>
+                <ownedOperation xmi:id="_wycTGuOSEdyLpcXsYAESEQ" name="currentSegment" visibility="public">
+                  <ownedParameter xmi:id="_wycTG-OSEdyLpcXsYAESEQ" name="coords" type="_wySgBeOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTHOOSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTHeOSEdyLpcXsYAESEQ" name="currentSegment" visibility="public">
+                  <ownedParameter xmi:id="_wycTHuOSEdyLpcXsYAESEQ" name="coords" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTH-OSEdyLpcXsYAESEQ" name="return" type="_wySgBuOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycTIOOSEdyLpcXsYAESEQ" name="FOrientablePrimitive">
+                <generalization xmi:id="_wycTIeOSEdyLpcXsYAESEQ" general="_wycRx-OSEdyLpcXsYAESEQ"/>
+                <ownedAttribute xmi:id="_wycTIuOSEdyLpcXsYAESEQ" name="gp" visibility="protected" type="_wyShPOOSEdyLpcXsYAESEQ" association="_wycTsOOSEdyLpcXsYAESEQ"/>
+                <ownedOperation xmi:id="_wycTI-OSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wycTJOOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTJeOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTJuOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTJ-OSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wycTKOOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTKeOSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTKuOSEdyLpcXsYAESEQ" name="w" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTK-OSEdyLpcXsYAESEQ" name="h" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTLOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTLeOSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wycTLuOSEdyLpcXsYAESEQ" name="x" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTL-OSEdyLpcXsYAESEQ" name="y" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTMOOSEdyLpcXsYAESEQ" name="w" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTMeOSEdyLpcXsYAESEQ" name="h" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTMuOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTM-OSEdyLpcXsYAESEQ" name="getBounds" visibility="public">
+                  <ownedParameter xmi:id="_wycTNOOSEdyLpcXsYAESEQ" name="return" type="_wycTqOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTNeOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wycTNuOSEdyLpcXsYAESEQ" name="p" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTN-OSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTOOOSEdyLpcXsYAESEQ" name="getBounds2D" visibility="public">
+                  <ownedParameter xmi:id="_wycTOeOSEdyLpcXsYAESEQ" name="return" type="_wycTpOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTOuOSEdyLpcXsYAESEQ" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_wycTO-OSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTPOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTPeOSEdyLpcXsYAESEQ" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_wycTPuOSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTP-OSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTQOOSEdyLpcXsYAESEQ" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_wycTQeOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTQuOSEdyLpcXsYAESEQ" name="return" type="_wycTp-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTQ-OSEdyLpcXsYAESEQ" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_wycTROOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTReOSEdyLpcXsYAESEQ" name="flatness" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTRuOSEdyLpcXsYAESEQ" name="return" type="_wycTp-OSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTR-OSEdyLpcXsYAESEQ" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_wycTSOOSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTSeOSEdyLpcXsYAESEQ" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_wycTSuOSEdyLpcXsYAESEQ" name="ct" type="_wycTpuOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTS-OSEdyLpcXsYAESEQ" name="getStretchingHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wycTTOOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTTeOSEdyLpcXsYAESEQ" name="getSelectHandlers" visibility="public">
+                  <ownedParameter xmi:id="_wycTTuOSEdyLpcXsYAESEQ" name="return" type="_wycR1eOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycTT-OSEdyLpcXsYAESEQ" name="PointHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycTUOOSEdyLpcXsYAESEQ" name="PointSelHandler"/>
+              <packagedElement xmi:type="uml:Package" xmi:id="_wycTUeOSEdyLpcXsYAESEQ" name="v02">
+                <packagedElement xmi:type="uml:Class" xmi:id="_wycTUuOSEdyLpcXsYAESEQ" name="FConverter">
+                  <ownedAttribute xmi:id="_wycTU-OSEdyLpcXsYAESEQ" name="geomFactory" visibility="public" type="_wycTmeOSEdyLpcXsYAESEQ"/>
+                  <ownedAttribute xmi:id="_wycTVOOSEdyLpcXsYAESEQ" name="cga" visibility="public" type="_wycTmuOSEdyLpcXsYAESEQ"/>
+                  <ownedAttribute xmi:id="_wycTVeOSEdyLpcXsYAESEQ" name="POINT_MARKER_SIZE" visibility="private" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedAttribute xmi:id="_wycTVuOSEdyLpcXsYAESEQ" name="FLATNESS" visibility="public" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedOperation xmi:id="_wycTV-OSEdyLpcXsYAESEQ" name="pointInList" isStatic="true">
+                    <ownedParameter xmi:id="_wycTWOOSEdyLpcXsYAESEQ" name="testPoint" type="_wycTm-OSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTWeOSEdyLpcXsYAESEQ" name="pointList" type="_wycTm-OSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTWuOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTW-OSEdyLpcXsYAESEQ" name="jts_to_igeometry" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_wycTXOOSEdyLpcXsYAESEQ" name="jtsGeometry" type="_wycTpeOSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTXeOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTXuOSEdyLpcXsYAESEQ" name="java2d_to_jts" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_wycTX-OSEdyLpcXsYAESEQ" name="shp" type="_wycS2eOSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTYOOSEdyLpcXsYAESEQ" name="return" type="_wycTpeOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTYeOSEdyLpcXsYAESEQ" name="jts_to_java2d" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_wycTYuOSEdyLpcXsYAESEQ" name="geo" type="_wycTpeOSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTY-OSEdyLpcXsYAESEQ" name="return" type="_wycS2eOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTZOOSEdyLpcXsYAESEQ" name="toShape" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_wycTZeOSEdyLpcXsYAESEQ" name="p" type="_wycTnOOSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTZuOSEdyLpcXsYAESEQ" name="return" type="_wyShPOOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTZ-OSEdyLpcXsYAESEQ" name="toShape" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_wycTaOOSEdyLpcXsYAESEQ" name="mls" type="_wycTneOSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTaeOSEdyLpcXsYAESEQ" name="return" type="_wyShPOOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTauOSEdyLpcXsYAESEQ" name="toShape" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_wycTa-OSEdyLpcXsYAESEQ" name="lineString" type="_wycTnuOSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTbOOSEdyLpcXsYAESEQ" name="return" type="_wyShPOOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTbeOSEdyLpcXsYAESEQ" name="toShape" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_wycTbuOSEdyLpcXsYAESEQ" name="point" type="_wycTn-OSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTb-OSEdyLpcXsYAESEQ" name="return" type="_wyShAeOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTcOOSEdyLpcXsYAESEQ" name="toShape" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_wycTceOSEdyLpcXsYAESEQ" name="mp" type="_wycToOOSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTcuOSEdyLpcXsYAESEQ" name="return" type="_wyShPOOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTc-OSEdyLpcXsYAESEQ" name="coordinate2FPoint2D" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_wycTdOOSEdyLpcXsYAESEQ" name="coord" type="_wycTm-OSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTdeOSEdyLpcXsYAESEQ" name="return" type="_wyShAeOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTduOSEdyLpcXsYAESEQ" name="toShape" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_wycTd-OSEdyLpcXsYAESEQ" name="geometry" type="_wycTpeOSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTeOOSEdyLpcXsYAESEQ" name="return" type="_wyShPOOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTeeOSEdyLpcXsYAESEQ" name="transformToInts" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_wycTeuOSEdyLpcXsYAESEQ" name="gp" type="_wyShPOOSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTe-OSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTfOOSEdyLpcXsYAESEQ" name="return" type="_wyShPOOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTfeOSEdyLpcXsYAESEQ" name="transformToInts" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_wycTfuOSEdyLpcXsYAESEQ" name="gp" type="_wycRC-OSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTf-OSEdyLpcXsYAESEQ" name="at" type="_wycTo-OSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTgOOSEdyLpcXsYAESEQ" name="return" type="_wycS2eOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTgeOSEdyLpcXsYAESEQ" name="convertEnvelopeToRectangle2D" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_wycTguOSEdyLpcXsYAESEQ" name="jtsR" type="_wycToeOSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTg-OSEdyLpcXsYAESEQ" name="return" type="_wycTpOOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycThOOSEdyLpcXsYAESEQ" name="convertRectangle2DtoEnvelope" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_wycTheOSEdyLpcXsYAESEQ" name="r" type="_wycTpOOSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycThuOSEdyLpcXsYAESEQ" name="return" type="_wycToeOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTh-OSEdyLpcXsYAESEQ" name="getExteriorPolygon" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_wycTiOOSEdyLpcXsYAESEQ" name="coordinates" type="_wycTm-OSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTieOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTiuOSEdyLpcXsYAESEQ" name="isCCW" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_wycTi-OSEdyLpcXsYAESEQ" name="points" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTjOOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTjeOSEdyLpcXsYAESEQ" name="isCCW" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_wycTjuOSEdyLpcXsYAESEQ" name="pol" type="_wycSH-OSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTj-OSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTkOOSEdyLpcXsYAESEQ" name="getHole" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_wycTkeOSEdyLpcXsYAESEQ" name="coordinates" type="_wycTm-OSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTkuOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTk-OSEdyLpcXsYAESEQ" name="getExteriorPolygon" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_wycTlOOSEdyLpcXsYAESEQ" name="gp" type="_wyShPOOSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTleOSEdyLpcXsYAESEQ" name="return" type="_wycTquOSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_wycTluOSEdyLpcXsYAESEQ" name="getNotHolePolygon" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_wycTl-OSEdyLpcXsYAESEQ" name="pol" type="_wycSH-OSEdyLpcXsYAESEQ"/>
+                    <ownedParameter xmi:id="_wycTmOOSEdyLpcXsYAESEQ" name="return" type="_wycRC-OSEdyLpcXsYAESEQ" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_wycTmeOSEdyLpcXsYAESEQ" name="GeometryFactory"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_wycTmuOSEdyLpcXsYAESEQ" name="CGAlgorithms"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_wycTm-OSEdyLpcXsYAESEQ" name="Coordinate"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_wycTnOOSEdyLpcXsYAESEQ" name="Polygon"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_wycTneOSEdyLpcXsYAESEQ" name="MultiLineString"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_wycTnuOSEdyLpcXsYAESEQ" name="LineString"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_wycTn-OSEdyLpcXsYAESEQ" name="Point"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_wycToOOSEdyLpcXsYAESEQ" name="MultiPolygon"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_wycToeOSEdyLpcXsYAESEQ" name="Envelope"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_wycTouOSEdyLpcXsYAESEQ" name="Point2D"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_wycTo-OSEdyLpcXsYAESEQ" name="AffineTransform"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_wycTpOOSEdyLpcXsYAESEQ" name="Rectangle2D"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_wycTpeOSEdyLpcXsYAESEQ" name="Geometry"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_wycTpuOSEdyLpcXsYAESEQ" name="ICoordTrans"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_wycTp-OSEdyLpcXsYAESEQ" name="PathIterator"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_wycTqOOSEdyLpcXsYAESEQ" name="Rectangle"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_wycTqeOSEdyLpcXsYAESEQ" name="Object"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_wycTquOSEdyLpcXsYAESEQ" name="Shape"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_wycTq-OSEdyLpcXsYAESEQ" name="java.awt.Rectangle"/>
+              <packagedElement xmi:type="uml:Association" xmi:id="_wycTrOOSEdyLpcXsYAESEQ" memberEnd="_wycR5eOSEdyLpcXsYAESEQ _wycTreOSEdyLpcXsYAESEQ">
+                <ownedEnd xmi:id="_wycTreOSEdyLpcXsYAESEQ" name="target" type="_wycR4-OSEdyLpcXsYAESEQ" association="_wycTrOOSEdyLpcXsYAESEQ"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_wycTruOSEdyLpcXsYAESEQ" memberEnd="_wycTEuOSEdyLpcXsYAESEQ _wycTr-OSEdyLpcXsYAESEQ">
+                <ownedEnd xmi:id="_wycTr-OSEdyLpcXsYAESEQ" name="target" type="_wycTD-OSEdyLpcXsYAESEQ" association="_wycTruOSEdyLpcXsYAESEQ"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_wycTsOOSEdyLpcXsYAESEQ" memberEnd="_wycTIuOSEdyLpcXsYAESEQ _wycTseOSEdyLpcXsYAESEQ">
+                <ownedEnd xmi:id="_wycTseOSEdyLpcXsYAESEQ" name="target" type="_wycTIOOSEdyLpcXsYAESEQ" association="_wycTsOOSEdyLpcXsYAESEQ"/>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_wycTsuOSEdyLpcXsYAESEQ" name="edition">
+              <packagedElement xmi:type="uml:Class" xmi:id="_wycTs-OSEdyLpcXsYAESEQ" name="UtilFunctions">
+                <ownedOperation xmi:id="_wycTtOOSEdyLpcXsYAESEQ" name="createCircle" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycTteOSEdyLpcXsYAESEQ" name="p1" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTtuOSEdyLpcXsYAESEQ" name="p2" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTt-OSEdyLpcXsYAESEQ" name="p3" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTuOOSEdyLpcXsYAESEQ" name="return" type="_wycUDOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTueOSEdyLpcXsYAESEQ" name="getPerpendicular" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycTuuOSEdyLpcXsYAESEQ" name="p1" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTu-OSEdyLpcXsYAESEQ" name="p2" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTvOOSEdyLpcXsYAESEQ" name="perp" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTveOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTvuOSEdyLpcXsYAESEQ" name="getParallel" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycTv-OSEdyLpcXsYAESEQ" name="p1" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTwOOSEdyLpcXsYAESEQ" name="p2" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTweOSEdyLpcXsYAESEQ" name="distance" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTwuOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTw-OSEdyLpcXsYAESEQ" name="getPerpendicularPoint" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycTxOOSEdyLpcXsYAESEQ" name="p1" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTxeOSEdyLpcXsYAESEQ" name="p2" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTxuOSEdyLpcXsYAESEQ" name="perpPoint" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTx-OSEdyLpcXsYAESEQ" name="dist" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTyOOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTyeOSEdyLpcXsYAESEQ" name="getUnitVector" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycTyuOSEdyLpcXsYAESEQ" name="p1" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTy-OSEdyLpcXsYAESEQ" name="p2" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTzOOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycTzeOSEdyLpcXsYAESEQ" name="getCenter" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycTzuOSEdyLpcXsYAESEQ" name="p1" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycTz-OSEdyLpcXsYAESEQ" name="p2" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT0OOSEdyLpcXsYAESEQ" name="p3" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT0eOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycT0uOSEdyLpcXsYAESEQ" name="getIntersection" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycT0-OSEdyLpcXsYAESEQ" name="p1" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT1OOSEdyLpcXsYAESEQ" name="p2" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT1eOSEdyLpcXsYAESEQ" name="p3" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT1uOSEdyLpcXsYAESEQ" name="p4" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT1-OSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycT2OOSEdyLpcXsYAESEQ" name="getAngle" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycT2eOSEdyLpcXsYAESEQ" name="start" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT2uOSEdyLpcXsYAESEQ" name="end" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT2-OSEdyLpcXsYAESEQ" name="return" type="_wySgBOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycT3OOSEdyLpcXsYAESEQ" name="angleDistance" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycT3eOSEdyLpcXsYAESEQ" name="angle1" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT3uOSEdyLpcXsYAESEQ" name="angle2" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT3-OSEdyLpcXsYAESEQ" name="return" type="_wySgBOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycT4OOSEdyLpcXsYAESEQ" name="getPoint" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycT4eOSEdyLpcXsYAESEQ" name="p1" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT4uOSEdyLpcXsYAESEQ" name="p2" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT4-OSEdyLpcXsYAESEQ" name="radio" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT5OOSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycT5eOSEdyLpcXsYAESEQ" name="absoluteAngleDistance" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycT5uOSEdyLpcXsYAESEQ" name="angle1" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT5-OSEdyLpcXsYAESEQ" name="angle2" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT6OOSEdyLpcXsYAESEQ" name="return" type="_wySgBOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycT6eOSEdyLpcXsYAESEQ" name="createArc" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycT6uOSEdyLpcXsYAESEQ" name="p1" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT6-OSEdyLpcXsYAESEQ" name="p2" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT7OOSEdyLpcXsYAESEQ" name="p3" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT7eOSEdyLpcXsYAESEQ" name="return" type="_wycUDOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycT7uOSEdyLpcXsYAESEQ" name="createArc2points" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycT7-OSEdyLpcXsYAESEQ" name="center" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT8OOSEdyLpcXsYAESEQ" name="init" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT8eOSEdyLpcXsYAESEQ" name="end" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT8uOSEdyLpcXsYAESEQ" name="return" type="_wycUDOOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycT8-OSEdyLpcXsYAESEQ" name="getPoint" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycT9OOSEdyLpcXsYAESEQ" name="p1" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT9eOSEdyLpcXsYAESEQ" name="an" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT9uOSEdyLpcXsYAESEQ" name="radio" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT9-OSEdyLpcXsYAESEQ" name="return" type="_wycTouOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycT-OOSEdyLpcXsYAESEQ" name="isLowAngle" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycT-eOSEdyLpcXsYAESEQ" name="antp" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT-uOSEdyLpcXsYAESEQ" name="lastp" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT--OSEdyLpcXsYAESEQ" name="interp" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT_OOSEdyLpcXsYAESEQ" name="point" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycT_eOSEdyLpcXsYAESEQ" name="return" type="_wySgAeOSEdyLpcXsYAESEQ" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycT_uOSEdyLpcXsYAESEQ" name="rotateGeom" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycT_-OSEdyLpcXsYAESEQ" name="geometry" type="_wycRC-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycUAOOSEdyLpcXsYAESEQ" name="radAngle" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycUAeOSEdyLpcXsYAESEQ" name="basex" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycUAuOSEdyLpcXsYAESEQ" name="basey" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycUA-OSEdyLpcXsYAESEQ" name="moveGeom" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycUBOOSEdyLpcXsYAESEQ" name="geometry" type="_wycRC-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycUBeOSEdyLpcXsYAESEQ" name="dx" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycUBuOSEdyLpcXsYAESEQ" name="dy" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_wycUB-OSEdyLpcXsYAESEQ" name="scaleGeom" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_wycUCOOSEdyLpcXsYAESEQ" name="geometry" type="_wycRC-OSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycUCeOSEdyLpcXsYAESEQ" name="basePoint" type="_wycTouOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycUCuOSEdyLpcXsYAESEQ" name="sx" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                  <ownedParameter xmi:id="_wycUC-OSEdyLpcXsYAESEQ" name="sy" type="_wySgBOOSEdyLpcXsYAESEQ"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_wycUDOOSEdyLpcXsYAESEQ" name="Arc2D"/>
+            </packagedElement>
+          </packagedElement>
+        </packagedElement>
+      </packagedElement>
+    </packagedElement>
+  </packagedElement>
+</uml:Model>

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model.uml
___________________________________________________________________
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model2.uml
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model2.uml	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model2.uml	(revision 38288)
@@ -0,0 +1,1682 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xmi:id="_NfXrAOnfEdyqwYAyxR2bxw">
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_NfXrAenfEdyqwYAyxR2bxw" name="boolean"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_NfXrAunfEdyqwYAyxR2bxw" name="byte"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_NfXrA-nfEdyqwYAyxR2bxw" name="char"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_NfXrBOnfEdyqwYAyxR2bxw" name="double"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_NfXrBenfEdyqwYAyxR2bxw" name="float"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_NfXrBunfEdyqwYAyxR2bxw" name="int"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_NfXrB-nfEdyqwYAyxR2bxw" name="long"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_NfXrCOnfEdyqwYAyxR2bxw" name="short"/>
+  <packagedElement xmi:type="uml:Package" xmi:id="_NfXrCenfEdyqwYAyxR2bxw" name="com">
+    <packagedElement xmi:type="uml:Package" xmi:id="_NfXrCunfEdyqwYAyxR2bxw" name="iver">
+      <packagedElement xmi:type="uml:Package" xmi:id="_NfXrC-nfEdyqwYAyxR2bxw" name="cit">
+        <packagedElement xmi:type="uml:Package" xmi:id="_NfXrDOnfEdyqwYAyxR2bxw" name="gvsig">
+          <packagedElement xmi:type="uml:Package" xmi:id="_NfXrDenfEdyqwYAyxR2bxw" name="fmap">
+            <packagedElement xmi:type="uml:Package" xmi:id="_NfXrDunfEdyqwYAyxR2bxw" name="core">
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXrD-nfEdyqwYAyxR2bxw" name="FArc2D">
+                <generalization xmi:id="_NfXrEOnfEdyqwYAyxR2bxw" general="_NfXumOnfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXrEenfEdyqwYAyxR2bxw" name="init" visibility="private" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXrEunfEdyqwYAyxR2bxw" name="center" visibility="private" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXrE-nfEdyqwYAyxR2bxw" name="end" visibility="private" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXrFOnfEdyqwYAyxR2bxw" name="getInit" visibility="public">
+                  <ownedParameter xmi:id="_NfXrFenfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrFunfEdyqwYAyxR2bxw" name="getEnd" visibility="public">
+                  <ownedParameter xmi:id="_NfXrF-nfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrGOnfEdyqwYAyxR2bxw" name="getCenter" visibility="public">
+                  <ownedParameter xmi:id="_NfXrGenfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrGunfEdyqwYAyxR2bxw" name="getMid" visibility="public">
+                  <ownedParameter xmi:id="_NfXrG-nfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrHOnfEdyqwYAyxR2bxw" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXrHenfEdyqwYAyxR2bxw" name="return" type="_NfXue-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrHunfEdyqwYAyxR2bxw" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_NfXrH-nfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrIOnfEdyqwYAyxR2bxw" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_NfXrIenfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrIunfEdyqwYAyxR2bxw" name="getStretchingHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXrI-nfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrJOnfEdyqwYAyxR2bxw" name="getSelectHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXrJenfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrJunfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXrJ-nfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrKOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXrKenfEdyqwYAyxR2bxw" name="CenterSelHandler" clientDependency="_NfXrLenfEdyqwYAyxR2bxw _NfXrLunfEdyqwYAyxR2bxw _NfXrL-nfEdyqwYAyxR2bxw">
+                <generalization xmi:id="_NfXrKunfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <generalization xmi:id="_NfXrK-nfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <generalization xmi:id="_NfXrLOnfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXrLenfEdyqwYAyxR2bxw" name="ICenterHandler" supplier="_NfXt_-nfEdyqwYAyxR2bxw" client="_NfXrKenfEdyqwYAyxR2bxw" contract="_NfXt_-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXrLunfEdyqwYAyxR2bxw" name="ICenterHandler" supplier="_NfXt_-nfEdyqwYAyxR2bxw" client="_NfXrKenfEdyqwYAyxR2bxw" contract="_NfXt_-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXrL-nfEdyqwYAyxR2bxw" name="ICenterHandler" supplier="_NfXt_-nfEdyqwYAyxR2bxw" client="_NfXrKenfEdyqwYAyxR2bxw" contract="_NfXt_-nfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXrMOnfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXrMenfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrMunfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrM-nfEdyqwYAyxR2bxw" name="setPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXrNOnfEdyqwYAyxR2bxw" name="p" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrNenfEdyqwYAyxR2bxw" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXrNunfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrN-nfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXrOOnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrOenfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrOunfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXrO-nfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrPOnfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrPenfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXrPunfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrP-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrQOnfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXrQenfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrQunfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrQ-nfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXrROnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrRenfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXrRunfEdyqwYAyxR2bxw" name="InitHandler" clientDependency="_NfXrSOnfEdyqwYAyxR2bxw">
+                <generalization xmi:id="_NfXrR-nfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXrSOnfEdyqwYAyxR2bxw" name="IFinalHandler" supplier="_NfXtb-nfEdyqwYAyxR2bxw" client="_NfXrRunfEdyqwYAyxR2bxw" contract="_NfXtb-nfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXrSenfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXrSunfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrS-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrTOnfEdyqwYAyxR2bxw" name="setPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXrTenfEdyqwYAyxR2bxw" name="p" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrTunfEdyqwYAyxR2bxw" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXrT-nfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrUOnfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXrUenfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrUunfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXrU-nfEdyqwYAyxR2bxw" name="EndHandler" clientDependency="_NfXrVenfEdyqwYAyxR2bxw">
+                <generalization xmi:id="_NfXrVOnfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXrVenfEdyqwYAyxR2bxw" name="IFinalHandler" supplier="_NfXtb-nfEdyqwYAyxR2bxw" client="_NfXrU-nfEdyqwYAyxR2bxw" contract="_NfXtb-nfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXrVunfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXrV-nfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrWOnfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrWenfEdyqwYAyxR2bxw" name="setPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXrWunfEdyqwYAyxR2bxw" name="p" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrW-nfEdyqwYAyxR2bxw" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXrXOnfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrXenfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXrXunfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrX-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXrYOnfEdyqwYAyxR2bxw" name="InitSelHandler" clientDependency="_NfXrY-nfEdyqwYAyxR2bxw _NfXrZOnfEdyqwYAyxR2bxw">
+                <generalization xmi:id="_NfXrYenfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <generalization xmi:id="_NfXrYunfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXrY-nfEdyqwYAyxR2bxw" name="IFinalHandler" supplier="_NfXtb-nfEdyqwYAyxR2bxw" client="_NfXrYOnfEdyqwYAyxR2bxw" contract="_NfXtb-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXrZOnfEdyqwYAyxR2bxw" name="ICuadrantHandler" supplier="_NfXt0OnfEdyqwYAyxR2bxw" client="_NfXrYOnfEdyqwYAyxR2bxw" contract="_NfXt0OnfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXrZenfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXrZunfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrZ-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXraOnfEdyqwYAyxR2bxw" name="setPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXraenfEdyqwYAyxR2bxw" name="p" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXraunfEdyqwYAyxR2bxw" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXra-nfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrbOnfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXrbenfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrbunfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrb-nfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXrcOnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrcenfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrcunfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXrc-nfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrdOnfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXrdenfEdyqwYAyxR2bxw" name="EndSelHandler" clientDependency="_NfXreOnfEdyqwYAyxR2bxw _NfXreenfEdyqwYAyxR2bxw">
+                <generalization xmi:id="_NfXrdunfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <generalization xmi:id="_NfXrd-nfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXreOnfEdyqwYAyxR2bxw" name="IFinalHandler" supplier="_NfXtb-nfEdyqwYAyxR2bxw" client="_NfXrdenfEdyqwYAyxR2bxw" contract="_NfXtb-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXreenfEdyqwYAyxR2bxw" name="ICuadrantHandler" supplier="_NfXt0OnfEdyqwYAyxR2bxw" client="_NfXrdenfEdyqwYAyxR2bxw" contract="_NfXt0OnfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXreunfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXre-nfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrfOnfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrfenfEdyqwYAyxR2bxw" name="setPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXrfunfEdyqwYAyxR2bxw" name="p" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrf-nfEdyqwYAyxR2bxw" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXrgOnfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrgenfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXrgunfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrg-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrhOnfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXrhenfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrhunfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrh-nfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXriOnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrienfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXriunfEdyqwYAyxR2bxw" name="FMultiPoint">
+                <generalization xmi:id="_NfXri-nfEdyqwYAyxR2bxw" general="_NfXtcenfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXrjOnfEdyqwYAyxR2bxw" name="toJTSGeometry" visibility="public">
+                  <ownedParameter xmi:id="_NfXrjenfEdyqwYAyxR2bxw" name="return" type="_NfXvUunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrjunfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXrj-nfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrkOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrkenfEdyqwYAyxR2bxw" name="getBounds2D" visibility="public">
+                  <ownedParameter xmi:id="_NfXrkunfEdyqwYAyxR2bxw" name="return" type="_NfXvUenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrk-nfEdyqwYAyxR2bxw" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_NfXrlOnfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrlenfEdyqwYAyxR2bxw" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXrlunfEdyqwYAyxR2bxw" name="return" type="_NfXue-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrl-nfEdyqwYAyxR2bxw" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_NfXrmOnfEdyqwYAyxR2bxw" name="ct" type="_NfXvU-nfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrmenfEdyqwYAyxR2bxw" name="getNumgeometries" visibility="public">
+                  <ownedParameter xmi:id="_NfXrmunfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrm-nfEdyqwYAyxR2bxw" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXrnOnfEdyqwYAyxR2bxw" name="i" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrnenfEdyqwYAyxR2bxw" name="return" type="_NfXsAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrnunfEdyqwYAyxR2bxw" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_NfXrn-nfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXroOnfEdyqwYAyxR2bxw" name="return" type="_NfXvVOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXroenfEdyqwYAyxR2bxw" name="fastIntersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXrounfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXro-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrpOnfEdyqwYAyxR2bxw" name="w" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrpenfEdyqwYAyxR2bxw" name="h" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrpunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrp-nfEdyqwYAyxR2bxw" name="getHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXrqOnfEdyqwYAyxR2bxw" name="type" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrqenfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrqunfEdyqwYAyxR2bxw" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_NfXrq-nfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrrOnfEdyqwYAyxR2bxw" name="toWKB" visibility="public">
+                  <ownedParameter xmi:id="_NfXrrenfEdyqwYAyxR2bxw" name="return" type="_NfXrAunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrrunfEdyqwYAyxR2bxw" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_NfXrr-nfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrsOnfEdyqwYAyxR2bxw" name="flatness" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrsenfEdyqwYAyxR2bxw" name="return" type="_NfXvVOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrsunfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXrs-nfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrtOnfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrtenfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrtunfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXrt-nfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXruOnfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXruenfEdyqwYAyxR2bxw" name="w" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXruunfEdyqwYAyxR2bxw" name="h" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXru-nfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrvOnfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXrvenfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrvunfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrv-nfEdyqwYAyxR2bxw" name="w" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrwOnfEdyqwYAyxR2bxw" name="h" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrwenfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrwunfEdyqwYAyxR2bxw" name="getBounds" visibility="public">
+                  <ownedParameter xmi:id="_NfXrw-nfEdyqwYAyxR2bxw" name="return" type="_NfXvVenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrxOnfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXrxenfEdyqwYAyxR2bxw" name="p" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXrxunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrx-nfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXryOnfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXryenfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXryunfEdyqwYAyxR2bxw" name="getGeometryType" visibility="public">
+                  <ownedParameter xmi:id="_NfXry-nfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXrzOnfEdyqwYAyxR2bxw" name="cloneGeometry" visibility="public">
+                  <ownedParameter xmi:id="_NfXrzenfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXrzunfEdyqwYAyxR2bxw" name="PointHandler" clientDependency="_NfXr0-nfEdyqwYAyxR2bxw _NfXr1OnfEdyqwYAyxR2bxw _NfXr1enfEdyqwYAyxR2bxw">
+                <generalization xmi:id="_NfXrz-nfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <generalization xmi:id="_NfXr0OnfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <generalization xmi:id="_NfXr0enfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <generalization xmi:id="_NfXr0unfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXr0-nfEdyqwYAyxR2bxw" name="IFinalHandler" supplier="_NfXtb-nfEdyqwYAyxR2bxw" client="_NfXrzunfEdyqwYAyxR2bxw" contract="_NfXtb-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXr1OnfEdyqwYAyxR2bxw" name="IFinalHandler" supplier="_NfXtb-nfEdyqwYAyxR2bxw" client="_NfXrzunfEdyqwYAyxR2bxw" contract="_NfXtb-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXr1enfEdyqwYAyxR2bxw" name="IFinalHandler" supplier="_NfXtb-nfEdyqwYAyxR2bxw" client="_NfXrzunfEdyqwYAyxR2bxw" contract="_NfXtb-nfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXr1unfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXr1-nfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXr2OnfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXr2enfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXr2unfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXr2-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXr3OnfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXr3enfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXr3unfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXr3-nfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXr4OnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXr4enfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXr4unfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXr4-nfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXr5OnfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXr5enfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXr5unfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXr5-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXr6OnfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXr6enfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXr6unfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXr6-nfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXr7OnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXr7enfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXr7unfEdyqwYAyxR2bxw" name="FMultiPolyline">
+                <generalization xmi:id="_NfXr7-nfEdyqwYAyxR2bxw" general="_NfXtcenfEdyqwYAyxR2bxw"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_NfXr8OnfEdyqwYAyxR2bxw" name="IGeometryVisitor">
+                <ownedOperation xmi:id="_NfXr8enfEdyqwYAyxR2bxw" name="visit" visibility="public">
+                  <ownedParameter xmi:id="_NfXr8unfEdyqwYAyxR2bxw" name="geometry" type="_NfXspenfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXr8-nfEdyqwYAyxR2bxw" name="AbstractHandler" clientDependency="_NfXr9-nfEdyqwYAyxR2bxw">
+                <ownedAttribute xmi:id="_NfXr9OnfEdyqwYAyxR2bxw" name="index" visibility="protected" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXr9enfEdyqwYAyxR2bxw" name="point" visibility="protected" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXr9unfEdyqwYAyxR2bxw" name="select" visibility="private" type="_NfXrAenfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXr9-nfEdyqwYAyxR2bxw" name="Handler" supplier="_NfXtY-nfEdyqwYAyxR2bxw" client="_NfXr8-nfEdyqwYAyxR2bxw" contract="_NfXtY-nfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXr-OnfEdyqwYAyxR2bxw" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXr-enfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXr-unfEdyqwYAyxR2bxw" name="select" visibility="public">
+                  <ownedParameter xmi:id="_NfXr--nfEdyqwYAyxR2bxw" name="b" type="_NfXrAenfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXr_OnfEdyqwYAyxR2bxw" name="isSelected" visibility="public">
+                  <ownedParameter xmi:id="_NfXr_enfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXr_unfEdyqwYAyxR2bxw" name="equalsPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXr_-nfEdyqwYAyxR2bxw" name="obj" type="_NfXvVunfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsAOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXsAenfEdyqwYAyxR2bxw" name="FPoint2D" clientDependency="_SDdPgOoGEdyWhupJHd1xRA">
+                <generalization xmi:id="_NfXsAunfEdyqwYAyxR2bxw" general="_NfXununfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsA-nfEdyqwYAyxR2bxw" name="p" visibility="protected" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_SDdPgOoGEdyWhupJHd1xRA" name="InterfaceRealization1" supplier="_NfXv3OnfEdyqwYAyxR2bxw" client="_NfXsAenfEdyqwYAyxR2bxw" contract="_NfXv3OnfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXsBOnfEdyqwYAyxR2bxw" name="setPoint" visibility="private">
+                  <ownedParameter xmi:id="_NfXsBenfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsBunfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsB-nfEdyqwYAyxR2bxw" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_NfXsCOnfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsCenfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXsCunfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsC-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsDOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsDenfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXsDunfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsD-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsEOnfEdyqwYAyxR2bxw" name="w" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsEenfEdyqwYAyxR2bxw" name="h" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsEunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsE-nfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXsFOnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsFenfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsFunfEdyqwYAyxR2bxw" name="w" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsF-nfEdyqwYAyxR2bxw" name="h" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsGOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsGenfEdyqwYAyxR2bxw" name="getBounds" visibility="public">
+                  <ownedParameter xmi:id="_NfXsGunfEdyqwYAyxR2bxw" name="return" type="_NfXvVenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsG-nfEdyqwYAyxR2bxw" name="getX" visibility="public">
+                  <ownedParameter xmi:id="_NfXsHOnfEdyqwYAyxR2bxw" name="return" type="_NfXrBOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsHenfEdyqwYAyxR2bxw" name="getY" visibility="public">
+                  <ownedParameter xmi:id="_NfXsHunfEdyqwYAyxR2bxw" name="return" type="_NfXrBOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsH-nfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXsIOnfEdyqwYAyxR2bxw" name="p" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsIenfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsIunfEdyqwYAyxR2bxw" name="getBounds2D" visibility="public">
+                  <ownedParameter xmi:id="_NfXsI-nfEdyqwYAyxR2bxw" name="return" type="_NfXvUenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsJOnfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXsJenfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsJunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsJ-nfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXsKOnfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsKenfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsKunfEdyqwYAyxR2bxw" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_NfXsK-nfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsLOnfEdyqwYAyxR2bxw" name="return" type="_NfXvVOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsLenfEdyqwYAyxR2bxw" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_NfXsLunfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsL-nfEdyqwYAyxR2bxw" name="flatness" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsMOnfEdyqwYAyxR2bxw" name="return" type="_NfXvVOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsMenfEdyqwYAyxR2bxw" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_NfXsMunfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsM-nfEdyqwYAyxR2bxw" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXsNOnfEdyqwYAyxR2bxw" name="return" type="_NfXue-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsNenfEdyqwYAyxR2bxw" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_NfXsNunfEdyqwYAyxR2bxw" name="ct" type="_NfXvU-nfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsN-nfEdyqwYAyxR2bxw" name="getStretchingHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXsOOnfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsOenfEdyqwYAyxR2bxw" name="getSelectHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXsOunfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXsO-nfEdyqwYAyxR2bxw" name="PointHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXsPOnfEdyqwYAyxR2bxw" name="GeneralPathX">
+                <ownedAttribute xmi:id="_NfXsPenfEdyqwYAyxR2bxw" name="WIND_EVEN_ODD" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsPunfEdyqwYAyxR2bxw" name="WIND_NON_ZERO" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsP-nfEdyqwYAyxR2bxw" name="SEG_MOVETO" visibility="private" type="_NfXrAunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsQOnfEdyqwYAyxR2bxw" name="SEG_LINETO" visibility="private" type="_NfXrAunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsQenfEdyqwYAyxR2bxw" name="SEG_QUADTO" visibility="private" type="_NfXrAunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsQunfEdyqwYAyxR2bxw" name="SEG_CUBICTO" visibility="private" type="_NfXrAunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsQ-nfEdyqwYAyxR2bxw" name="SEG_CLOSE" visibility="private" type="_NfXrAunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsROnfEdyqwYAyxR2bxw" name="pointTypes" type="_NfXrAunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsRenfEdyqwYAyxR2bxw" name="pointCoords" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsRunfEdyqwYAyxR2bxw" name="numTypes" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsR-nfEdyqwYAyxR2bxw" name="numCoords" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsSOnfEdyqwYAyxR2bxw" name="windingRule" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsSenfEdyqwYAyxR2bxw" name="INIT_SIZE" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsSunfEdyqwYAyxR2bxw" name="EXPAND_MAX" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsS-nfEdyqwYAyxR2bxw" name="curvesize" visibility="private" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXsTOnfEdyqwYAyxR2bxw" name="needRoom" visibility="private">
+                  <ownedParameter xmi:id="_NfXsTenfEdyqwYAyxR2bxw" name="newTypes" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsTunfEdyqwYAyxR2bxw" name="newCoords" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsT-nfEdyqwYAyxR2bxw" name="needMove" type="_NfXrAenfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsUOnfEdyqwYAyxR2bxw" name="moveTo" visibility="public">
+                  <ownedParameter xmi:id="_NfXsUenfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsUunfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsU-nfEdyqwYAyxR2bxw" name="lineTo" visibility="public">
+                  <ownedParameter xmi:id="_NfXsVOnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsVenfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsVunfEdyqwYAyxR2bxw" name="quadTo" visibility="public">
+                  <ownedParameter xmi:id="_NfXsV-nfEdyqwYAyxR2bxw" name="x1" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsWOnfEdyqwYAyxR2bxw" name="y1" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsWenfEdyqwYAyxR2bxw" name="x2" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsWunfEdyqwYAyxR2bxw" name="y2" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsW-nfEdyqwYAyxR2bxw" name="curveTo" visibility="public">
+                  <ownedParameter xmi:id="_NfXsXOnfEdyqwYAyxR2bxw" name="x1" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsXenfEdyqwYAyxR2bxw" name="y1" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsXunfEdyqwYAyxR2bxw" name="x2" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsX-nfEdyqwYAyxR2bxw" name="y2" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsYOnfEdyqwYAyxR2bxw" name="x3" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsYenfEdyqwYAyxR2bxw" name="y3" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsYunfEdyqwYAyxR2bxw" name="closePath" visibility="public"/>
+                <ownedOperation xmi:id="_NfXsY-nfEdyqwYAyxR2bxw" name="isClosed" visibility="public">
+                  <ownedParameter xmi:id="_NfXsZOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsZenfEdyqwYAyxR2bxw" name="append" visibility="public">
+                  <ownedParameter xmi:id="_NfXsZunfEdyqwYAyxR2bxw" name="s" type="_NfXvV-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsZ-nfEdyqwYAyxR2bxw" name="connect" type="_NfXrAenfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsaOnfEdyqwYAyxR2bxw" name="append" visibility="public">
+                  <ownedParameter xmi:id="_NfXsaenfEdyqwYAyxR2bxw" name="pi" type="_NfXvVOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsaunfEdyqwYAyxR2bxw" name="connect" type="_NfXrAenfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsa-nfEdyqwYAyxR2bxw" name="getWindingRule" visibility="public">
+                  <ownedParameter xmi:id="_NfXsbOnfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsbenfEdyqwYAyxR2bxw" name="setWindingRule" visibility="public">
+                  <ownedParameter xmi:id="_NfXsbunfEdyqwYAyxR2bxw" name="rule" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsb-nfEdyqwYAyxR2bxw" name="getCurrentPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXscOnfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXscenfEdyqwYAyxR2bxw" name="reset" visibility="public"/>
+                <ownedOperation xmi:id="_NfXscunfEdyqwYAyxR2bxw" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_NfXsc-nfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsdOnfEdyqwYAyxR2bxw" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_NfXsdenfEdyqwYAyxR2bxw" name="ct" type="_NfXvU-nfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsdunfEdyqwYAyxR2bxw" name="createTransformedShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXsd-nfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXseOnfEdyqwYAyxR2bxw" name="return" type="_NfXvV-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXseenfEdyqwYAyxR2bxw" name="getBounds" visibility="public">
+                  <ownedParameter xmi:id="_NfXseunfEdyqwYAyxR2bxw" name="return" type="_NfXvWOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXse-nfEdyqwYAyxR2bxw" name="getBounds2D" visibility="public">
+                  <ownedParameter xmi:id="_NfXsfOnfEdyqwYAyxR2bxw" name="return" type="_NfXvUenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsfenfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXsfunfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsf-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsgOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsgenfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXsgunfEdyqwYAyxR2bxw" name="p" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsg-nfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXshOnfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXshenfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXshunfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsh-nfEdyqwYAyxR2bxw" name="w" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsiOnfEdyqwYAyxR2bxw" name="h" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsienfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsiunfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXsi-nfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsjOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsjenfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXsjunfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsj-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXskOnfEdyqwYAyxR2bxw" name="w" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXskenfEdyqwYAyxR2bxw" name="h" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXskunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsk-nfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXslOnfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXslenfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXslunfEdyqwYAyxR2bxw" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_NfXsl-nfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsmOnfEdyqwYAyxR2bxw" name="return" type="_NfXvVOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsmenfEdyqwYAyxR2bxw" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_NfXsmunfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsm-nfEdyqwYAyxR2bxw" name="flatness" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsnOnfEdyqwYAyxR2bxw" name="return" type="_NfXvVOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsnenfEdyqwYAyxR2bxw" name="clone" visibility="public">
+                  <ownedParameter xmi:id="_NfXsnunfEdyqwYAyxR2bxw" name="return" type="_NfXvVunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsn-nfEdyqwYAyxR2bxw" name="flip" visibility="public"/>
+                <ownedOperation xmi:id="_NfXsoOnfEdyqwYAyxR2bxw" name="ensureOrientation" visibility="public">
+                  <ownedParameter xmi:id="_NfXsoenfEdyqwYAyxR2bxw" name="bCCW" type="_NfXrAenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsounfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXso-nfEdyqwYAyxR2bxw" name="isCCW" visibility="public">
+                  <ownedParameter xmi:id="_NfXspOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_NfXspenfEdyqwYAyxR2bxw" name="IGeometry">
+                <generalization xmi:id="_NfXspunfEdyqwYAyxR2bxw" general="_NfXvV-nfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsp-nfEdyqwYAyxR2bxw" name="BEST" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsqOnfEdyqwYAyxR2bxw" name="N" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsqenfEdyqwYAyxR2bxw" name="NE" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsqunfEdyqwYAyxR2bxw" name="E" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsq-nfEdyqwYAyxR2bxw" name="SE" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsrOnfEdyqwYAyxR2bxw" name="S" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsrenfEdyqwYAyxR2bxw" name="SW" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsrunfEdyqwYAyxR2bxw" name="W" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXsr-nfEdyqwYAyxR2bxw" name="NW" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXssOnfEdyqwYAyxR2bxw" name="SELECTHANDLER" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXssenfEdyqwYAyxR2bxw" name="STRETCHINGHANDLER" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXssunfEdyqwYAyxR2bxw" name="toJTSGeometry">
+                  <ownedParameter xmi:id="_NfXss-nfEdyqwYAyxR2bxw" name="return" type="_NfXvUunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXstOnfEdyqwYAyxR2bxw" name="getGeometryType">
+                  <ownedParameter xmi:id="_NfXstenfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXstunfEdyqwYAyxR2bxw" name="cloneGeometry">
+                  <ownedParameter xmi:id="_NfXst-nfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsuOnfEdyqwYAyxR2bxw" name="intersects">
+                  <ownedParameter xmi:id="_NfXsuenfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsuunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsu-nfEdyqwYAyxR2bxw" name="fastIntersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXsvOnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsvenfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsvunfEdyqwYAyxR2bxw" name="w" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsv-nfEdyqwYAyxR2bxw" name="h" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXswOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXswenfEdyqwYAyxR2bxw" name="getBounds2D">
+                  <ownedParameter xmi:id="_NfXswunfEdyqwYAyxR2bxw" name="return" type="_NfXvUenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsw-nfEdyqwYAyxR2bxw" name="reProject">
+                  <ownedParameter xmi:id="_NfXsxOnfEdyqwYAyxR2bxw" name="ct" type="_NfXvU-nfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsxenfEdyqwYAyxR2bxw" name="getPathIterator">
+                  <ownedParameter xmi:id="_NfXsxunfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXsx-nfEdyqwYAyxR2bxw" name="return" type="_NfXvVOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsyOnfEdyqwYAyxR2bxw" name="toWKB" visibility="public">
+                  <ownedParameter xmi:id="_NfXsyenfEdyqwYAyxR2bxw" name="return" type="_NfXrAunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsyunfEdyqwYAyxR2bxw" name="getHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXsy-nfEdyqwYAyxR2bxw" name="type" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXszOnfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXszenfEdyqwYAyxR2bxw" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_NfXszunfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXsz-nfEdyqwYAyxR2bxw" name="getPathIterator">
+                  <ownedParameter xmi:id="_NfXs0OnfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXs0enfEdyqwYAyxR2bxw" name="flatness" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXs0unfEdyqwYAyxR2bxw" name="return" type="_NfXvVOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXs0-nfEdyqwYAyxR2bxw" name="getInternalShape">
+                  <ownedParameter xmi:id="_NfXs1OnfEdyqwYAyxR2bxw" name="return" type="_NfXvV-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXs1enfEdyqwYAyxR2bxw" name="isSimple" visibility="public">
+                  <ownedParameter xmi:id="_NfXs1unfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXs1-nfEdyqwYAyxR2bxw" name="accept" visibility="public">
+                  <ownedParameter xmi:id="_NfXs2OnfEdyqwYAyxR2bxw" name="visitor" type="_NfXr8OnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXs2enfEdyqwYAyxR2bxw" name="FOrientablePolygon2D">
+                <generalization xmi:id="_NfXs2unfEdyqwYAyxR2bxw" general="_NfXuzenfEdyqwYAyxR2bxw"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXs2-nfEdyqwYAyxR2bxw" name="FPolyline3D" clientDependency="_NfXs3unfEdyqwYAyxR2bxw">
+                <generalization xmi:id="_NfXs3OnfEdyqwYAyxR2bxw" general="_NfXumOnfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXs3enfEdyqwYAyxR2bxw" name="pZ" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXs3unfEdyqwYAyxR2bxw" name="FShape3D" supplier="_NfXulOnfEdyqwYAyxR2bxw" client="_NfXs2-nfEdyqwYAyxR2bxw" contract="_NfXulOnfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXs3-nfEdyqwYAyxR2bxw" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_NfXs4OnfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXs4enfEdyqwYAyxR2bxw" name="getZs" visibility="public">
+                  <ownedParameter xmi:id="_NfXs4unfEdyqwYAyxR2bxw" name="return" type="_NfXrBOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXs4-nfEdyqwYAyxR2bxw" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXs5OnfEdyqwYAyxR2bxw" name="return" type="_NfXue-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXs5enfEdyqwYAyxR2bxw" name="FCircle2D">
+                <generalization xmi:id="_NfXs5unfEdyqwYAyxR2bxw" general="_NfXtt-nfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXs5-nfEdyqwYAyxR2bxw" name="center" visibility="private" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXs6OnfEdyqwYAyxR2bxw" name="radio" visibility="private" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXs6enfEdyqwYAyxR2bxw" name="getCenter" visibility="public">
+                  <ownedParameter xmi:id="_NfXs6unfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXs6-nfEdyqwYAyxR2bxw" name="getRadio" visibility="public">
+                  <ownedParameter xmi:id="_NfXs7OnfEdyqwYAyxR2bxw" name="return" type="_NfXrBOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXs7enfEdyqwYAyxR2bxw" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXs7unfEdyqwYAyxR2bxw" name="return" type="_NfXue-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXs7-nfEdyqwYAyxR2bxw" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_NfXs8OnfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXs8enfEdyqwYAyxR2bxw" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_NfXs8unfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXs8-nfEdyqwYAyxR2bxw" name="getStretchingHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXs9OnfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXs9enfEdyqwYAyxR2bxw" name="getSelectHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXs9unfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXs9-nfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXs-OnfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXs-enfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXs-unfEdyqwYAyxR2bxw" name="CenterHandler" clientDependency="_NfXs_enfEdyqwYAyxR2bxw _NfXs_unfEdyqwYAyxR2bxw">
+                <generalization xmi:id="_NfXs--nfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <generalization xmi:id="_NfXs_OnfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXs_enfEdyqwYAyxR2bxw" name="ICenterHandler" supplier="_NfXt_-nfEdyqwYAyxR2bxw" client="_NfXs-unfEdyqwYAyxR2bxw" contract="_NfXt_-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXs_unfEdyqwYAyxR2bxw" name="ICenterHandler" supplier="_NfXt_-nfEdyqwYAyxR2bxw" client="_NfXs-unfEdyqwYAyxR2bxw" contract="_NfXt_-nfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXs_-nfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXtAOnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtAenfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtAunfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXtA-nfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtBOnfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtBenfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXtBunfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtB-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtCOnfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXtCenfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtCunfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXtC-nfEdyqwYAyxR2bxw" name="CenterSelHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXtDOnfEdyqwYAyxR2bxw" name="RadioSelHandler" clientDependency="_NfXtDunfEdyqwYAyxR2bxw">
+                <generalization xmi:id="_NfXtDenfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXtDunfEdyqwYAyxR2bxw" name="ICuadrantHandler" supplier="_NfXt0OnfEdyqwYAyxR2bxw" client="_NfXtDOnfEdyqwYAyxR2bxw" contract="_NfXt0OnfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXtD-nfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXtEOnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtEenfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtEunfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXtE-nfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtFOnfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXtFenfEdyqwYAyxR2bxw" name="ShapeFactory">
+                <ownedOperation xmi:id="_NfXtFunfEdyqwYAyxR2bxw" name="createPoint2D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtF-nfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtGOnfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtGenfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtGunfEdyqwYAyxR2bxw" name="createPoint2D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtG-nfEdyqwYAyxR2bxw" name="p" type="_NfXsAenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtHOnfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtHenfEdyqwYAyxR2bxw" name="createMultipoint2D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtHunfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtH-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtIOnfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtIenfEdyqwYAyxR2bxw" name="createPoint3D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtIunfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtI-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtJOnfEdyqwYAyxR2bxw" name="z" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtJenfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtJunfEdyqwYAyxR2bxw" name="createMultipoint3D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtJ-nfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtKOnfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtKenfEdyqwYAyxR2bxw" name="z" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtKunfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtK-nfEdyqwYAyxR2bxw" name="createPolyline2D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtLOnfEdyqwYAyxR2bxw" name="shape" type="_NfXsPOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtLenfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtLunfEdyqwYAyxR2bxw" name="createPolyline3D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtL-nfEdyqwYAyxR2bxw" name="shape" type="_NfXsPOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtMOnfEdyqwYAyxR2bxw" name="pZ" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtMenfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtMunfEdyqwYAyxR2bxw" name="createPolygon3D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtM-nfEdyqwYAyxR2bxw" name="shape" type="_NfXsPOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtNOnfEdyqwYAyxR2bxw" name="pZ" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtNenfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtNunfEdyqwYAyxR2bxw" name="createPolygon2D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtN-nfEdyqwYAyxR2bxw" name="shape" type="_NfXsPOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtOOnfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtOenfEdyqwYAyxR2bxw" name="createPolygon2D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtOunfEdyqwYAyxR2bxw" name="shape" type="_NfXumOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtO-nfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtPOnfEdyqwYAyxR2bxw" name="createGeometry" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtPenfEdyqwYAyxR2bxw" name="shp" type="_NfXue-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtPunfEdyqwYAyxR2bxw" name="return" type="_NfXununfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtP-nfEdyqwYAyxR2bxw" name="createCircle" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtQOnfEdyqwYAyxR2bxw" name="center" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtQenfEdyqwYAyxR2bxw" name="r" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtQunfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtQ-nfEdyqwYAyxR2bxw" name="createCircle" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtROnfEdyqwYAyxR2bxw" name="center" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtRenfEdyqwYAyxR2bxw" name="radio" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtRunfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtR-nfEdyqwYAyxR2bxw" name="createCircle" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtSOnfEdyqwYAyxR2bxw" name="p1" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtSenfEdyqwYAyxR2bxw" name="p2" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtSunfEdyqwYAyxR2bxw" name="p3" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtS-nfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtTOnfEdyqwYAyxR2bxw" name="createArc" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtTenfEdyqwYAyxR2bxw" name="p1" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtTunfEdyqwYAyxR2bxw" name="p2" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtT-nfEdyqwYAyxR2bxw" name="p3" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtUOnfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtUenfEdyqwYAyxR2bxw" name="createEllipse" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtUunfEdyqwYAyxR2bxw" name="axis1Start" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtU-nfEdyqwYAyxR2bxw" name="axis1End" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtVOnfEdyqwYAyxR2bxw" name="axis2Length" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtVenfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtVunfEdyqwYAyxR2bxw" name="createSpline2D" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXtV-nfEdyqwYAyxR2bxw" name="points" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtWOnfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXtWenfEdyqwYAyxR2bxw" name="FMultipoint3D" clientDependency="_NfXtXOnfEdyqwYAyxR2bxw">
+                <generalization xmi:id="_NfXtWunfEdyqwYAyxR2bxw" general="_NfXriunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXtW-nfEdyqwYAyxR2bxw" name="z" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXtXOnfEdyqwYAyxR2bxw" name="IGeometry3D" supplier="_NfXulenfEdyqwYAyxR2bxw" client="_NfXtWenfEdyqwYAyxR2bxw" contract="_NfXulenfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXtXenfEdyqwYAyxR2bxw" name="cloneGeometry" visibility="public">
+                  <ownedParameter xmi:id="_NfXtXunfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtX-nfEdyqwYAyxR2bxw" name="getZs" visibility="public">
+                  <ownedParameter xmi:id="_NfXtYOnfEdyqwYAyxR2bxw" name="return" type="_NfXrBOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtYenfEdyqwYAyxR2bxw" name="getGeometryType" visibility="public">
+                  <ownedParameter xmi:id="_NfXtYunfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_NfXtY-nfEdyqwYAyxR2bxw" name="Handler">
+                <ownedOperation xmi:id="_NfXtZOnfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXtZenfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtZunfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtZ-nfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXtaOnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtaenfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtaunfEdyqwYAyxR2bxw" name="getPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXta-nfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtbOnfEdyqwYAyxR2bxw" name="equalsPoint" visibility="public">
+                  <ownedParameter xmi:id="_NfXtbenfEdyqwYAyxR2bxw" name="obj" type="_NfXvVunfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtbunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_NfXtb-nfEdyqwYAyxR2bxw" name="IFinalHandler">
+                <generalization xmi:id="_NfXtcOnfEdyqwYAyxR2bxw" general="_NfXtY-nfEdyqwYAyxR2bxw"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXtcenfEdyqwYAyxR2bxw" name="FGeometryCollection">
+                <generalization xmi:id="_NfXtcunfEdyqwYAyxR2bxw" general="_NfXt1OnfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXtc-nfEdyqwYAyxR2bxw" name="geometries" type="_NfXspenfEdyqwYAyxR2bxw" association="_NfXvWenfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXtdOnfEdyqwYAyxR2bxw" name="getGeometriesNumber" visibility="public">
+                  <ownedParameter xmi:id="_NfXtdenfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtdunfEdyqwYAyxR2bxw" name="cloneGeometry" visibility="public">
+                  <ownedParameter xmi:id="_NfXtd-nfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXteOnfEdyqwYAyxR2bxw" name="getBounds2D" visibility="public">
+                  <ownedParameter xmi:id="_NfXteenfEdyqwYAyxR2bxw" name="return" type="_NfXvUenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXteunfEdyqwYAyxR2bxw" name="getGeometryType" visibility="public">
+                  <ownedParameter xmi:id="_NfXte-nfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtfOnfEdyqwYAyxR2bxw" name="getHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXtfenfEdyqwYAyxR2bxw" name="type" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtfunfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtf-nfEdyqwYAyxR2bxw" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_NfXtgOnfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtgenfEdyqwYAyxR2bxw" name="return" type="_NfXvVOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtgunfEdyqwYAyxR2bxw" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_NfXtg-nfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXthOnfEdyqwYAyxR2bxw" name="flatness" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXthenfEdyqwYAyxR2bxw" name="return" type="_NfXvVOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXthunfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXth-nfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtiOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtienfEdyqwYAyxR2bxw" name="isSimple" visibility="public">
+                  <ownedParameter xmi:id="_NfXtiunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXti-nfEdyqwYAyxR2bxw" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_NfXtjOnfEdyqwYAyxR2bxw" name="ct" type="_NfXvU-nfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtjenfEdyqwYAyxR2bxw" name="toJTSGeometry" visibility="public">
+                  <ownedParameter xmi:id="_NfXtjunfEdyqwYAyxR2bxw" name="return" type="_NfXvUunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtj-nfEdyqwYAyxR2bxw" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_NfXtkOnfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtkenfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXtkunfEdyqwYAyxR2bxw" name="p" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtk-nfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtlOnfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXtlenfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtlunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtl-nfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXtmOnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtmenfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtmunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtm-nfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXtnOnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtnenfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtnunfEdyqwYAyxR2bxw" name="w" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtn-nfEdyqwYAyxR2bxw" name="h" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtoOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtoenfEdyqwYAyxR2bxw" name="getBounds" visibility="public">
+                  <ownedParameter xmi:id="_NfXtounfEdyqwYAyxR2bxw" name="return" type="_NfXvVenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXto-nfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXtpOnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtpenfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtpunfEdyqwYAyxR2bxw" name="w" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtp-nfEdyqwYAyxR2bxw" name="h" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtqOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtqenfEdyqwYAyxR2bxw" name="accept" visibility="public">
+                  <ownedParameter xmi:id="_NfXtqunfEdyqwYAyxR2bxw" name="visitor" type="_NfXr8OnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtq-nfEdyqwYAyxR2bxw" name="getGeometries" visibility="public">
+                  <ownedParameter xmi:id="_NfXtrOnfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtrenfEdyqwYAyxR2bxw" name="fastIntersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXtrunfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtr-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtsOnfEdyqwYAyxR2bxw" name="w" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtsenfEdyqwYAyxR2bxw" name="h" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtsunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXts-nfEdyqwYAyxR2bxw" name="getInternalShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXttOnfEdyqwYAyxR2bxw" name="return" type="_NfXvV-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXttenfEdyqwYAyxR2bxw" name="toWKB" visibility="public">
+                  <ownedParameter xmi:id="_NfXttunfEdyqwYAyxR2bxw" name="return" type="_NfXrAunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXtt-nfEdyqwYAyxR2bxw" name="FPolygon2D">
+                <generalization xmi:id="_NfXtuOnfEdyqwYAyxR2bxw" general="_NfXs2enfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXtuenfEdyqwYAyxR2bxw" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_NfXtuunfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtu-nfEdyqwYAyxR2bxw" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXtvOnfEdyqwYAyxR2bxw" name="return" type="_NfXue-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtvenfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXtvunfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtv-nfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXtwOnfEdyqwYAyxR2bxw" name="FPointIterator">
+                <generalization xmi:id="_NfXtwenfEdyqwYAyxR2bxw" general="_NfXuvOnfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXtwunfEdyqwYAyxR2bxw" name="at" visibility="private" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXtw-nfEdyqwYAyxR2bxw" name="p" visibility="private" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXtxOnfEdyqwYAyxR2bxw" name="done" visibility="private" type="_NfXrAenfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXtxenfEdyqwYAyxR2bxw" name="getWindingRule" visibility="public">
+                  <ownedParameter xmi:id="_NfXtxunfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtx-nfEdyqwYAyxR2bxw" name="next" visibility="public"/>
+                <ownedOperation xmi:id="_NfXtyOnfEdyqwYAyxR2bxw" name="isDone" visibility="public">
+                  <ownedParameter xmi:id="_NfXtyenfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtyunfEdyqwYAyxR2bxw" name="currentSegment" visibility="public">
+                  <ownedParameter xmi:id="_NfXty-nfEdyqwYAyxR2bxw" name="coords" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtzOnfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXtzenfEdyqwYAyxR2bxw" name="currentSegment" visibility="public">
+                  <ownedParameter xmi:id="_NfXtzunfEdyqwYAyxR2bxw" name="coords" type="_NfXrBenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXtz-nfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_NfXt0OnfEdyqwYAyxR2bxw" name="ICuadrantHandler">
+                <generalization xmi:id="_NfXt0enfEdyqwYAyxR2bxw" general="_NfXtY-nfEdyqwYAyxR2bxw"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXt0unfEdyqwYAyxR2bxw" name="FOrientablePolyline2D">
+                <generalization xmi:id="_NfXt0-nfEdyqwYAyxR2bxw" general="_NfXuzenfEdyqwYAyxR2bxw"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXt1OnfEdyqwYAyxR2bxw" name="AbstractGeometry" clientDependency="_NfXt1enfEdyqwYAyxR2bxw _j8htNOniEdycSvxH-nDZNg _v0yUpOniEdycSvxH-nDZNg _xWFvVOniEdycSvxH-nDZNg _E9Q1VOoGEdyWhupJHd1xRA">
+                <interfaceRealization xmi:id="_NfXt1enfEdyqwYAyxR2bxw" name="IGeometry" supplier="_NfXspenfEdyqwYAyxR2bxw" client="_NfXt1OnfEdyqwYAyxR2bxw" contract="_NfXspenfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_v0yUpOniEdycSvxH-nDZNg" name="InterfaceRealization1" supplier="_NfXulenfEdyqwYAyxR2bxw" client="_NfXt1OnfEdyqwYAyxR2bxw" contract="_NfXulenfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_xWFvVOniEdycSvxH-nDZNg" name="InterfaceRealization2" supplier="_wjktSOniEdycSvxH-nDZNg" client="_NfXt1OnfEdyqwYAyxR2bxw" contract="_wjktSOniEdycSvxH-nDZNg"/>
+                <interfaceRealization xmi:id="_E9Q1VOoGEdyWhupJHd1xRA" name="InterfaceRealization3" supplier="_NfXvvunfEdyqwYAyxR2bxw" client="_NfXt1OnfEdyqwYAyxR2bxw" contract="_NfXvvunfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXt1unfEdyqwYAyxR2bxw" name="getInternalShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXt1-nfEdyqwYAyxR2bxw" name="return" type="_NfXvV-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXt2OnfEdyqwYAyxR2bxw" name="accept" visibility="public">
+                  <ownedParameter xmi:id="_NfXt2enfEdyqwYAyxR2bxw" name="visitor" type="_NfXr8OnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXt2unfEdyqwYAyxR2bxw" name="FEllipse2D">
+                <generalization xmi:id="_NfXt2-nfEdyqwYAyxR2bxw" general="_NfXtt-nfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXt3OnfEdyqwYAyxR2bxw" name="init" visibility="private" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXt3enfEdyqwYAyxR2bxw" name="end" visibility="private" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXt3unfEdyqwYAyxR2bxw" name="ydist" visibility="private" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXt3-nfEdyqwYAyxR2bxw" name="getInit" visibility="public">
+                  <ownedParameter xmi:id="_NfXt4OnfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXt4enfEdyqwYAyxR2bxw" name="getEnd" visibility="public">
+                  <ownedParameter xmi:id="_NfXt4unfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXt4-nfEdyqwYAyxR2bxw" name="getDist" visibility="public">
+                  <ownedParameter xmi:id="_NfXt5OnfEdyqwYAyxR2bxw" name="return" type="_NfXrBOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXt5enfEdyqwYAyxR2bxw" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXt5unfEdyqwYAyxR2bxw" name="return" type="_NfXue-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXt5-nfEdyqwYAyxR2bxw" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_NfXt6OnfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXt6enfEdyqwYAyxR2bxw" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_NfXt6unfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXt6-nfEdyqwYAyxR2bxw" name="getStretchingHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXt7OnfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXt7enfEdyqwYAyxR2bxw" name="getSelectHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXt7unfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXt7-nfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXt8OnfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXt8enfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXt8unfEdyqwYAyxR2bxw" name="CenterHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXt8-nfEdyqwYAyxR2bxw" name="CenterSelHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXt9OnfEdyqwYAyxR2bxw" name="InitSelHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXt9enfEdyqwYAyxR2bxw" name="EndSelHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXt9unfEdyqwYAyxR2bxw" name="RadioSelYHandler" clientDependency="_NfXt-OnfEdyqwYAyxR2bxw">
+                <generalization xmi:id="_NfXt9-nfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXt-OnfEdyqwYAyxR2bxw" name="ICuadrantHandler" supplier="_NfXt0OnfEdyqwYAyxR2bxw" client="_NfXt9unfEdyqwYAyxR2bxw" contract="_NfXt0OnfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXt-enfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXt-unfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXt--nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXt_OnfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXt_enfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXt_unfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_NfXt_-nfEdyqwYAyxR2bxw" name="ICenterHandler">
+                <generalization xmi:id="_NfXuAOnfEdyqwYAyxR2bxw" general="_NfXtY-nfEdyqwYAyxR2bxw"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXuAenfEdyqwYAyxR2bxw" name="FPoint3D" clientDependency="_NfXuBOnfEdyqwYAyxR2bxw _SWPBk-oGEdyWhupJHd1xRA">
+                <generalization xmi:id="_NfXuAunfEdyqwYAyxR2bxw" general="_NfXsAenfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXuA-nfEdyqwYAyxR2bxw" name="z" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXuBOnfEdyqwYAyxR2bxw" name="FShape3D" supplier="_NfXulOnfEdyqwYAyxR2bxw" client="_NfXuAenfEdyqwYAyxR2bxw" contract="_NfXulOnfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_SWPBk-oGEdyWhupJHd1xRA" name="InterfaceRealization1" supplier="_NfXv3OnfEdyqwYAyxR2bxw" client="_NfXuAenfEdyqwYAyxR2bxw" contract="_NfXv3OnfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXuBenfEdyqwYAyxR2bxw" name="getZs" visibility="public">
+                  <ownedParameter xmi:id="_NfXuBunfEdyqwYAyxR2bxw" name="return" type="_NfXrBOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuB-nfEdyqwYAyxR2bxw" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_NfXuCOnfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuCenfEdyqwYAyxR2bxw" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXuCunfEdyqwYAyxR2bxw" name="return" type="_NfXue-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXuC-nfEdyqwYAyxR2bxw" name="FSpline2D">
+                <generalization xmi:id="_NfXuDOnfEdyqwYAyxR2bxw" general="_NfXumOnfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXuDenfEdyqwYAyxR2bxw" name="points" visibility="private" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXuDunfEdyqwYAyxR2bxw" name="getGeneralPathX" visibility="private" isStatic="true">
+                  <ownedParameter xmi:id="_NfXuD-nfEdyqwYAyxR2bxw" name="ps" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuEOnfEdyqwYAyxR2bxw" name="return" type="_NfXsPOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuEenfEdyqwYAyxR2bxw" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_NfXuEunfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuE-nfEdyqwYAyxR2bxw" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXuFOnfEdyqwYAyxR2bxw" name="return" type="_NfXue-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuFenfEdyqwYAyxR2bxw" name="getStretchingHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXuFunfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuF-nfEdyqwYAyxR2bxw" name="getSelectHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXuGOnfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXuGenfEdyqwYAyxR2bxw" name="PointHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXuGunfEdyqwYAyxR2bxw" name="PointSelHandler" clientDependency="_NfXuHenfEdyqwYAyxR2bxw _NfXuHunfEdyqwYAyxR2bxw">
+                <generalization xmi:id="_NfXuG-nfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <generalization xmi:id="_NfXuHOnfEdyqwYAyxR2bxw" general="_NfXr8-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXuHenfEdyqwYAyxR2bxw" name="IFinalHandler" supplier="_NfXtb-nfEdyqwYAyxR2bxw" client="_NfXuGunfEdyqwYAyxR2bxw" contract="_NfXtb-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXuHunfEdyqwYAyxR2bxw" name="IFinalHandler" supplier="_NfXtb-nfEdyqwYAyxR2bxw" client="_NfXuGunfEdyqwYAyxR2bxw" contract="_NfXtb-nfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXuH-nfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXuIOnfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuIenfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuIunfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXuI-nfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuJOnfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuJenfEdyqwYAyxR2bxw" name="move" visibility="public">
+                  <ownedParameter xmi:id="_NfXuJunfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuJ-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuKOnfEdyqwYAyxR2bxw" name="set" visibility="public">
+                  <ownedParameter xmi:id="_NfXuKenfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuKunfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXuK-nfEdyqwYAyxR2bxw" name="Spline">
+                <ownedAttribute xmi:id="_NfXuLOnfEdyqwYAyxR2bxw" name="y" visibility="private" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXuLenfEdyqwYAyxR2bxw" name="y2" visibility="private" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXuLunfEdyqwYAyxR2bxw" name="fn" visibility="public">
+                  <ownedParameter xmi:id="_NfXuL-nfEdyqwYAyxR2bxw" name="n" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuMOnfEdyqwYAyxR2bxw" name="t" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuMenfEdyqwYAyxR2bxw" name="return" type="_NfXrBOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXuMunfEdyqwYAyxR2bxw" name="FPolygon3D" clientDependency="_NfXuNenfEdyqwYAyxR2bxw">
+                <generalization xmi:id="_NfXuM-nfEdyqwYAyxR2bxw" general="_NfXtt-nfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXuNOnfEdyqwYAyxR2bxw" name="pZ" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXuNenfEdyqwYAyxR2bxw" name="FShape3D" supplier="_NfXulOnfEdyqwYAyxR2bxw" client="_NfXuMunfEdyqwYAyxR2bxw" contract="_NfXulOnfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXuNunfEdyqwYAyxR2bxw" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXuN-nfEdyqwYAyxR2bxw" name="return" type="_NfXue-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuOOnfEdyqwYAyxR2bxw" name="getZs" visibility="public">
+                  <ownedParameter xmi:id="_NfXuOenfEdyqwYAyxR2bxw" name="return" type="_NfXrBOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuOunfEdyqwYAyxR2bxw" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_NfXuO-nfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXuPOnfEdyqwYAyxR2bxw" name="FNullGeometry">
+                <generalization xmi:id="_NfXuPenfEdyqwYAyxR2bxw" general="_NfXt1OnfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXuPunfEdyqwYAyxR2bxw" name="toJTSGeometry" visibility="public">
+                  <ownedParameter xmi:id="_NfXuP-nfEdyqwYAyxR2bxw" name="return" type="_NfXvUunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuQOnfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXuQenfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuQunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuQ-nfEdyqwYAyxR2bxw" name="getBounds2D" visibility="public">
+                  <ownedParameter xmi:id="_NfXuROnfEdyqwYAyxR2bxw" name="return" type="_NfXvUenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuRenfEdyqwYAyxR2bxw" name="getGeometryType" visibility="public">
+                  <ownedParameter xmi:id="_NfXuRunfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuR-nfEdyqwYAyxR2bxw" name="cloneGeometry" visibility="public">
+                  <ownedParameter xmi:id="_NfXuSOnfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuSenfEdyqwYAyxR2bxw" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_NfXuSunfEdyqwYAyxR2bxw" name="ct" type="_NfXvU-nfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuS-nfEdyqwYAyxR2bxw" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_NfXuTOnfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuTenfEdyqwYAyxR2bxw" name="return" type="_NfXvVOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuTunfEdyqwYAyxR2bxw" name="fastIntersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXuT-nfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuUOnfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuUenfEdyqwYAyxR2bxw" name="w" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuUunfEdyqwYAyxR2bxw" name="h" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuU-nfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuVOnfEdyqwYAyxR2bxw" name="toWKB" visibility="public">
+                  <ownedParameter xmi:id="_NfXuVenfEdyqwYAyxR2bxw" name="return" type="_NfXrAunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuVunfEdyqwYAyxR2bxw" name="getHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXuV-nfEdyqwYAyxR2bxw" name="type" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuWOnfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuWenfEdyqwYAyxR2bxw" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_NfXuWunfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuW-nfEdyqwYAyxR2bxw" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_NfXuXOnfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuXenfEdyqwYAyxR2bxw" name="flatness" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuXunfEdyqwYAyxR2bxw" name="return" type="_NfXvVOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuX-nfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXuYOnfEdyqwYAyxR2bxw" name="arg0" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuYenfEdyqwYAyxR2bxw" name="arg1" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuYunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuY-nfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXuZOnfEdyqwYAyxR2bxw" name="arg0" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuZenfEdyqwYAyxR2bxw" name="arg1" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuZunfEdyqwYAyxR2bxw" name="arg2" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuZ-nfEdyqwYAyxR2bxw" name="arg3" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuaOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuaenfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXuaunfEdyqwYAyxR2bxw" name="arg0" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXua-nfEdyqwYAyxR2bxw" name="arg1" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXubOnfEdyqwYAyxR2bxw" name="arg2" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXubenfEdyqwYAyxR2bxw" name="arg3" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXubunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXub-nfEdyqwYAyxR2bxw" name="getBounds" visibility="public">
+                  <ownedParameter xmi:id="_NfXucOnfEdyqwYAyxR2bxw" name="return" type="_NfXvVenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXucenfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXucunfEdyqwYAyxR2bxw" name="arg0" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuc-nfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXudOnfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXudenfEdyqwYAyxR2bxw" name="arg0" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXudunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXud-nfEdyqwYAyxR2bxw" name="isSimple" visibility="public">
+                  <ownedParameter xmi:id="_NfXueOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXueenfEdyqwYAyxR2bxw" name="accept" visibility="public">
+                  <ownedParameter xmi:id="_NfXueunfEdyqwYAyxR2bxw" name="visitor" type="_NfXr8OnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_NfXue-nfEdyqwYAyxR2bxw" name="FShape">
+                <generalization xmi:id="_NfXufOnfEdyqwYAyxR2bxw" general="_NfXvV-nfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXufenfEdyqwYAyxR2bxw" name="NULL" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXufunfEdyqwYAyxR2bxw" name="POINT" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXuf-nfEdyqwYAyxR2bxw" name="LINE" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXugOnfEdyqwYAyxR2bxw" name="POLYGON" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXugenfEdyqwYAyxR2bxw" name="TEXT" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXugunfEdyqwYAyxR2bxw" name="MULTI" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXug-nfEdyqwYAyxR2bxw" name="MULTIPOINT" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXuhOnfEdyqwYAyxR2bxw" name="CIRCLE" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXuhenfEdyqwYAyxR2bxw" name="ARC" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXuhunfEdyqwYAyxR2bxw" name="ELLIPSE" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXuh-nfEdyqwYAyxR2bxw" name="Z" visibility="public" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXuiOnfEdyqwYAyxR2bxw" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_NfXuienfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuiunfEdyqwYAyxR2bxw" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXui-nfEdyqwYAyxR2bxw" name="return" type="_NfXue-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXujOnfEdyqwYAyxR2bxw" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_NfXujenfEdyqwYAyxR2bxw" name="ct" type="_NfXvU-nfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXujunfEdyqwYAyxR2bxw" name="getStretchingHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXuj-nfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXukOnfEdyqwYAyxR2bxw" name="getSelectHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXukenfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXukunfEdyqwYAyxR2bxw" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_NfXuk-nfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_NfXulOnfEdyqwYAyxR2bxw" name="FShape3D"/>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_NfXulenfEdyqwYAyxR2bxw" name="IGeometry3D">
+                <ownedOperation xmi:id="_NfXulunfEdyqwYAyxR2bxw" name="getZs">
+                  <ownedParameter xmi:id="_NfXul-nfEdyqwYAyxR2bxw" name="return" type="_NfXrBOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXumOnfEdyqwYAyxR2bxw" name="FPolyline2D">
+                <generalization xmi:id="_NfXumenfEdyqwYAyxR2bxw" general="_NfXt0unfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXumunfEdyqwYAyxR2bxw" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_NfXum-nfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXunOnfEdyqwYAyxR2bxw" name="cloneFShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXunenfEdyqwYAyxR2bxw" name="return" type="_NfXue-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXununfEdyqwYAyxR2bxw" name="FGeometry" clientDependency="_NfXuoOnfEdyqwYAyxR2bxw _KvG4I-oGEdyWhupJHd1xRA">
+                <generalization xmi:id="_NfXun-nfEdyqwYAyxR2bxw" general="_NfXt1OnfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_NfXuoOnfEdyqwYAyxR2bxw" name="FShape" supplier="_NfXue-nfEdyqwYAyxR2bxw" client="_NfXununfEdyqwYAyxR2bxw" contract="_NfXue-nfEdyqwYAyxR2bxw"/>
+                <interfaceRealization xmi:id="_KvG4I-oGEdyWhupJHd1xRA" name="InterfaceRealization1" supplier="_NfXv4OnfEdyqwYAyxR2bxw" client="_NfXununfEdyqwYAyxR2bxw" contract="_NfXv4OnfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXuoenfEdyqwYAyxR2bxw" name="toWKB" visibility="public">
+                  <ownedParameter xmi:id="_NfXuounfEdyqwYAyxR2bxw" name="return" type="_NfXrAunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuo-nfEdyqwYAyxR2bxw" name="getInternalShape" visibility="public">
+                  <ownedParameter xmi:id="_NfXupOnfEdyqwYAyxR2bxw" name="return" type="_NfXvV-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXupenfEdyqwYAyxR2bxw" name="fastIntersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXupunfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXup-nfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuqOnfEdyqwYAyxR2bxw" name="w" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuqenfEdyqwYAyxR2bxw" name="h" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuqunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuq-nfEdyqwYAyxR2bxw" name="getZs" visibility="public">
+                  <ownedParameter xmi:id="_NfXurOnfEdyqwYAyxR2bxw" name="return" type="_NfXrBOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXurenfEdyqwYAyxR2bxw" name="accept" visibility="public">
+                  <ownedParameter xmi:id="_NfXurunfEdyqwYAyxR2bxw" name="visitor" type="_NfXr8OnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXur-nfEdyqwYAyxR2bxw" name="cloneGeometry" visibility="public">
+                  <ownedParameter xmi:id="_NfXusOnfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXusenfEdyqwYAyxR2bxw" name="getGeometryType" visibility="public">
+                  <ownedParameter xmi:id="_NfXusunfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXus-nfEdyqwYAyxR2bxw" name="getHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXutOnfEdyqwYAyxR2bxw" name="type" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXutenfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXutunfEdyqwYAyxR2bxw" name="isSimple" visibility="public">
+                  <ownedParameter xmi:id="_NfXut-nfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuuOnfEdyqwYAyxR2bxw" name="toJTSGeometry" visibility="public">
+                  <ownedParameter xmi:id="_NfXuuenfEdyqwYAyxR2bxw" name="return" type="_NfXvUunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXuuunfEdyqwYAyxR2bxw" name="FMultiPolygon">
+                <generalization xmi:id="_NfXuu-nfEdyqwYAyxR2bxw" general="_NfXtcenfEdyqwYAyxR2bxw"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXuvOnfEdyqwYAyxR2bxw" name="GeneralPathXIterator">
+                <ownedAttribute xmi:id="_NfXuvenfEdyqwYAyxR2bxw" name="typeIdx" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXuvunfEdyqwYAyxR2bxw" name="pointIdx" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXuv-nfEdyqwYAyxR2bxw" name="path" type="_NfXsPOnfEdyqwYAyxR2bxw" association="_NfXvW-nfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXuwOnfEdyqwYAyxR2bxw" name="affine" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXuwenfEdyqwYAyxR2bxw" name="curvesize" visibility="private" type="_NfXrBunfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXuwunfEdyqwYAyxR2bxw" name="getWindingRule" visibility="public">
+                  <ownedParameter xmi:id="_NfXuw-nfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuxOnfEdyqwYAyxR2bxw" name="isDone" visibility="public">
+                  <ownedParameter xmi:id="_NfXuxenfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuxunfEdyqwYAyxR2bxw" name="next" visibility="public"/>
+                <ownedOperation xmi:id="_NfXux-nfEdyqwYAyxR2bxw" name="currentSegment" visibility="public">
+                  <ownedParameter xmi:id="_NfXuyOnfEdyqwYAyxR2bxw" name="coords" type="_NfXrBenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuyenfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXuyunfEdyqwYAyxR2bxw" name="currentSegment" visibility="public">
+                  <ownedParameter xmi:id="_NfXuy-nfEdyqwYAyxR2bxw" name="coords" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXuzOnfEdyqwYAyxR2bxw" name="return" type="_NfXrBunfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXuzenfEdyqwYAyxR2bxw" name="FOrientablePrimitive2D">
+                <generalization xmi:id="_NfXuzunfEdyqwYAyxR2bxw" general="_NfXununfEdyqwYAyxR2bxw"/>
+                <ownedAttribute xmi:id="_NfXuz-nfEdyqwYAyxR2bxw" name="gp" visibility="protected" type="_NfXsPOnfEdyqwYAyxR2bxw" association="_NfXvXenfEdyqwYAyxR2bxw"/>
+                <ownedOperation xmi:id="_NfXu0OnfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXu0enfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu0unfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu0-nfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXu1OnfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXu1enfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu1unfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu1-nfEdyqwYAyxR2bxw" name="w" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu2OnfEdyqwYAyxR2bxw" name="h" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu2enfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXu2unfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXu2-nfEdyqwYAyxR2bxw" name="x" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu3OnfEdyqwYAyxR2bxw" name="y" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu3enfEdyqwYAyxR2bxw" name="w" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu3unfEdyqwYAyxR2bxw" name="h" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu3-nfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXu4OnfEdyqwYAyxR2bxw" name="getBounds" visibility="public">
+                  <ownedParameter xmi:id="_NfXu4enfEdyqwYAyxR2bxw" name="return" type="_NfXvVenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXu4unfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXu4-nfEdyqwYAyxR2bxw" name="p" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu5OnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXu5enfEdyqwYAyxR2bxw" name="getBounds2D" visibility="public">
+                  <ownedParameter xmi:id="_NfXu5unfEdyqwYAyxR2bxw" name="return" type="_NfXvUenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXu5-nfEdyqwYAyxR2bxw" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_NfXu6OnfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu6enfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXu6unfEdyqwYAyxR2bxw" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_NfXu6-nfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu7OnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXu7enfEdyqwYAyxR2bxw" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_NfXu7unfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu7-nfEdyqwYAyxR2bxw" name="return" type="_NfXvVOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXu8OnfEdyqwYAyxR2bxw" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_NfXu8enfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu8unfEdyqwYAyxR2bxw" name="flatness" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXu8-nfEdyqwYAyxR2bxw" name="return" type="_NfXvVOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXu9OnfEdyqwYAyxR2bxw" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_NfXu9enfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXu9unfEdyqwYAyxR2bxw" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_NfXu9-nfEdyqwYAyxR2bxw" name="ct" type="_NfXvU-nfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXu-OnfEdyqwYAyxR2bxw" name="getStretchingHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXu-enfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXu-unfEdyqwYAyxR2bxw" name="getSelectHandlers" visibility="public">
+                  <ownedParameter xmi:id="_NfXu--nfEdyqwYAyxR2bxw" name="return" type="_NfXtY-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXu_OnfEdyqwYAyxR2bxw" name="PointHandler"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXu_enfEdyqwYAyxR2bxw" name="PointSelHandler"/>
+              <packagedElement xmi:type="uml:Package" xmi:id="_NfXu_unfEdyqwYAyxR2bxw" name="v02">
+                <packagedElement xmi:type="uml:Class" xmi:id="_NfXu_-nfEdyqwYAyxR2bxw" name="FConverter">
+                  <ownedAttribute xmi:id="_NfXvAOnfEdyqwYAyxR2bxw" name="geomFactory" visibility="public" type="_NfXvRunfEdyqwYAyxR2bxw"/>
+                  <ownedAttribute xmi:id="_NfXvAenfEdyqwYAyxR2bxw" name="cga" visibility="public" type="_NfXvR-nfEdyqwYAyxR2bxw"/>
+                  <ownedAttribute xmi:id="_NfXvAunfEdyqwYAyxR2bxw" name="POINT_MARKER_SIZE" visibility="private" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedAttribute xmi:id="_NfXvA-nfEdyqwYAyxR2bxw" name="FLATNESS" visibility="public" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedOperation xmi:id="_NfXvBOnfEdyqwYAyxR2bxw" name="pointInList" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvBenfEdyqwYAyxR2bxw" name="testPoint" type="_NfXvSOnfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvBunfEdyqwYAyxR2bxw" name="pointList" type="_NfXvSOnfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvB-nfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvCOnfEdyqwYAyxR2bxw" name="jts_to_igeometry" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvCenfEdyqwYAyxR2bxw" name="jtsGeometry" type="_NfXvUunfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvCunfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvC-nfEdyqwYAyxR2bxw" name="java2d_to_jts" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvDOnfEdyqwYAyxR2bxw" name="shp" type="_NfXue-nfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvDenfEdyqwYAyxR2bxw" name="return" type="_NfXvUunfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvDunfEdyqwYAyxR2bxw" name="jts_to_java2d" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvD-nfEdyqwYAyxR2bxw" name="geo" type="_NfXvUunfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvEOnfEdyqwYAyxR2bxw" name="return" type="_NfXue-nfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvEenfEdyqwYAyxR2bxw" name="toShape" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvEunfEdyqwYAyxR2bxw" name="p" type="_NfXvSenfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvE-nfEdyqwYAyxR2bxw" name="return" type="_NfXsPOnfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvFOnfEdyqwYAyxR2bxw" name="toShape" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvFenfEdyqwYAyxR2bxw" name="mls" type="_NfXvSunfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvFunfEdyqwYAyxR2bxw" name="return" type="_NfXsPOnfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvF-nfEdyqwYAyxR2bxw" name="toShape" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvGOnfEdyqwYAyxR2bxw" name="lineString" type="_NfXvS-nfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvGenfEdyqwYAyxR2bxw" name="return" type="_NfXsPOnfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvGunfEdyqwYAyxR2bxw" name="toShape" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvG-nfEdyqwYAyxR2bxw" name="point" type="_NfXvTOnfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvHOnfEdyqwYAyxR2bxw" name="return" type="_NfXsAenfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvHenfEdyqwYAyxR2bxw" name="toShape" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvHunfEdyqwYAyxR2bxw" name="mp" type="_NfXvTenfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvH-nfEdyqwYAyxR2bxw" name="return" type="_NfXsPOnfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvIOnfEdyqwYAyxR2bxw" name="coordinate2FPoint2D" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvIenfEdyqwYAyxR2bxw" name="coord" type="_NfXvSOnfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvIunfEdyqwYAyxR2bxw" name="return" type="_NfXsAenfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvI-nfEdyqwYAyxR2bxw" name="toShape" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvJOnfEdyqwYAyxR2bxw" name="geometry" type="_NfXvUunfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvJenfEdyqwYAyxR2bxw" name="return" type="_NfXsPOnfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvJunfEdyqwYAyxR2bxw" name="transformToInts" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvJ-nfEdyqwYAyxR2bxw" name="gp" type="_NfXsPOnfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvKOnfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvKenfEdyqwYAyxR2bxw" name="return" type="_NfXsPOnfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvKunfEdyqwYAyxR2bxw" name="transformToInts" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvK-nfEdyqwYAyxR2bxw" name="gp" type="_NfXspenfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvLOnfEdyqwYAyxR2bxw" name="at" type="_NfXvUOnfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvLenfEdyqwYAyxR2bxw" name="return" type="_NfXue-nfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvLunfEdyqwYAyxR2bxw" name="convertEnvelopeToRectangle2D" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvL-nfEdyqwYAyxR2bxw" name="jtsR" type="_NfXvTunfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvMOnfEdyqwYAyxR2bxw" name="return" type="_NfXvUenfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvMenfEdyqwYAyxR2bxw" name="convertRectangle2DtoEnvelope" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvMunfEdyqwYAyxR2bxw" name="r" type="_NfXvUenfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvM-nfEdyqwYAyxR2bxw" name="return" type="_NfXvTunfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvNOnfEdyqwYAyxR2bxw" name="getExteriorPolygon" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvNenfEdyqwYAyxR2bxw" name="coordinates" type="_NfXvSOnfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvNunfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvN-nfEdyqwYAyxR2bxw" name="isCCW" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvOOnfEdyqwYAyxR2bxw" name="points" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvOenfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvOunfEdyqwYAyxR2bxw" name="isCCW" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvO-nfEdyqwYAyxR2bxw" name="pol" type="_NfXtt-nfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvPOnfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvPenfEdyqwYAyxR2bxw" name="getHole" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvPunfEdyqwYAyxR2bxw" name="coordinates" type="_NfXvSOnfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvP-nfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvQOnfEdyqwYAyxR2bxw" name="getExteriorPolygon" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvQenfEdyqwYAyxR2bxw" name="gp" type="_NfXsPOnfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvQunfEdyqwYAyxR2bxw" name="return" type="_NfXvV-nfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_NfXvQ-nfEdyqwYAyxR2bxw" name="getNotHolePolygon" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_NfXvROnfEdyqwYAyxR2bxw" name="pol" type="_NfXtt-nfEdyqwYAyxR2bxw"/>
+                    <ownedParameter xmi:id="_NfXvRenfEdyqwYAyxR2bxw" name="return" type="_NfXspenfEdyqwYAyxR2bxw" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvRunfEdyqwYAyxR2bxw" name="GeometryFactory"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvR-nfEdyqwYAyxR2bxw" name="CGAlgorithms"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvSOnfEdyqwYAyxR2bxw" name="Coordinate"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvSenfEdyqwYAyxR2bxw" name="Polygon"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvSunfEdyqwYAyxR2bxw" name="MultiLineString"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvS-nfEdyqwYAyxR2bxw" name="LineString"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvTOnfEdyqwYAyxR2bxw" name="Point"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvTenfEdyqwYAyxR2bxw" name="MultiPolygon"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvTunfEdyqwYAyxR2bxw" name="Envelope"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvT-nfEdyqwYAyxR2bxw" name="Point2D"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvUOnfEdyqwYAyxR2bxw" name="AffineTransform"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvUenfEdyqwYAyxR2bxw" name="Rectangle2D"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvUunfEdyqwYAyxR2bxw" name="Geometry"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvU-nfEdyqwYAyxR2bxw" name="ICoordTrans"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvVOnfEdyqwYAyxR2bxw" name="PathIterator"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvVenfEdyqwYAyxR2bxw" name="Rectangle"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvVunfEdyqwYAyxR2bxw" name="Object"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvV-nfEdyqwYAyxR2bxw" name="Shape"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvWOnfEdyqwYAyxR2bxw" name="java.awt.Rectangle"/>
+              <packagedElement xmi:type="uml:Association" xmi:id="_NfXvWenfEdyqwYAyxR2bxw" memberEnd="_NfXtc-nfEdyqwYAyxR2bxw _NfXvWunfEdyqwYAyxR2bxw">
+                <ownedEnd xmi:id="_NfXvWunfEdyqwYAyxR2bxw" name="target" type="_NfXtcenfEdyqwYAyxR2bxw" association="_NfXvWenfEdyqwYAyxR2bxw"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_NfXvW-nfEdyqwYAyxR2bxw" memberEnd="_NfXuv-nfEdyqwYAyxR2bxw _NfXvXOnfEdyqwYAyxR2bxw">
+                <ownedEnd xmi:id="_NfXvXOnfEdyqwYAyxR2bxw" name="target" type="_NfXuvOnfEdyqwYAyxR2bxw" association="_NfXvW-nfEdyqwYAyxR2bxw"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_NfXvXenfEdyqwYAyxR2bxw" memberEnd="_NfXuz-nfEdyqwYAyxR2bxw _NfXvXunfEdyqwYAyxR2bxw">
+                <ownedEnd xmi:id="_NfXvXunfEdyqwYAyxR2bxw" name="target" type="_NfXuzenfEdyqwYAyxR2bxw" association="_NfXvXenfEdyqwYAyxR2bxw"/>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_NfXvX-nfEdyqwYAyxR2bxw" name="edition">
+              <packagedElement xmi:type="uml:Class" xmi:id="_NfXvYOnfEdyqwYAyxR2bxw" name="UtilFunctions">
+                <ownedOperation xmi:id="_NfXvYenfEdyqwYAyxR2bxw" name="createCircle" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvYunfEdyqwYAyxR2bxw" name="p1" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvY-nfEdyqwYAyxR2bxw" name="p2" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvZOnfEdyqwYAyxR2bxw" name="p3" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvZenfEdyqwYAyxR2bxw" name="return" type="_NfXvuenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXvZunfEdyqwYAyxR2bxw" name="getPerpendicular" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvZ-nfEdyqwYAyxR2bxw" name="p1" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvaOnfEdyqwYAyxR2bxw" name="p2" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvaenfEdyqwYAyxR2bxw" name="perp" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvaunfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXva-nfEdyqwYAyxR2bxw" name="getParallel" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvbOnfEdyqwYAyxR2bxw" name="p1" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvbenfEdyqwYAyxR2bxw" name="p2" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvbunfEdyqwYAyxR2bxw" name="distance" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvb-nfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXvcOnfEdyqwYAyxR2bxw" name="getPerpendicularPoint" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvcenfEdyqwYAyxR2bxw" name="p1" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvcunfEdyqwYAyxR2bxw" name="p2" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvc-nfEdyqwYAyxR2bxw" name="perpPoint" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvdOnfEdyqwYAyxR2bxw" name="dist" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvdenfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXvdunfEdyqwYAyxR2bxw" name="getUnitVector" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvd-nfEdyqwYAyxR2bxw" name="p1" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXveOnfEdyqwYAyxR2bxw" name="p2" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXveenfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXveunfEdyqwYAyxR2bxw" name="getCenter" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXve-nfEdyqwYAyxR2bxw" name="p1" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvfOnfEdyqwYAyxR2bxw" name="p2" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvfenfEdyqwYAyxR2bxw" name="p3" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvfunfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXvf-nfEdyqwYAyxR2bxw" name="getIntersection" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvgOnfEdyqwYAyxR2bxw" name="p1" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvgenfEdyqwYAyxR2bxw" name="p2" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvgunfEdyqwYAyxR2bxw" name="p3" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvg-nfEdyqwYAyxR2bxw" name="p4" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvhOnfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXvhenfEdyqwYAyxR2bxw" name="getAngle" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvhunfEdyqwYAyxR2bxw" name="start" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvh-nfEdyqwYAyxR2bxw" name="end" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXviOnfEdyqwYAyxR2bxw" name="return" type="_NfXrBOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXvienfEdyqwYAyxR2bxw" name="angleDistance" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXviunfEdyqwYAyxR2bxw" name="angle1" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvi-nfEdyqwYAyxR2bxw" name="angle2" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvjOnfEdyqwYAyxR2bxw" name="return" type="_NfXrBOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXvjenfEdyqwYAyxR2bxw" name="getPoint" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvjunfEdyqwYAyxR2bxw" name="p1" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvj-nfEdyqwYAyxR2bxw" name="p2" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvkOnfEdyqwYAyxR2bxw" name="radio" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvkenfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXvkunfEdyqwYAyxR2bxw" name="absoluteAngleDistance" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvk-nfEdyqwYAyxR2bxw" name="angle1" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvlOnfEdyqwYAyxR2bxw" name="angle2" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvlenfEdyqwYAyxR2bxw" name="return" type="_NfXrBOnfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXvlunfEdyqwYAyxR2bxw" name="createArc" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvl-nfEdyqwYAyxR2bxw" name="p1" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvmOnfEdyqwYAyxR2bxw" name="p2" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvmenfEdyqwYAyxR2bxw" name="p3" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvmunfEdyqwYAyxR2bxw" name="return" type="_NfXvuenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXvm-nfEdyqwYAyxR2bxw" name="createArc2points" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvnOnfEdyqwYAyxR2bxw" name="center" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvnenfEdyqwYAyxR2bxw" name="init" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvnunfEdyqwYAyxR2bxw" name="end" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvn-nfEdyqwYAyxR2bxw" name="return" type="_NfXvuenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXvoOnfEdyqwYAyxR2bxw" name="getPoint" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvoenfEdyqwYAyxR2bxw" name="p1" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvounfEdyqwYAyxR2bxw" name="an" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvo-nfEdyqwYAyxR2bxw" name="radio" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvpOnfEdyqwYAyxR2bxw" name="return" type="_NfXvT-nfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXvpenfEdyqwYAyxR2bxw" name="isLowAngle" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvpunfEdyqwYAyxR2bxw" name="antp" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvp-nfEdyqwYAyxR2bxw" name="lastp" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvqOnfEdyqwYAyxR2bxw" name="interp" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvqenfEdyqwYAyxR2bxw" name="point" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvqunfEdyqwYAyxR2bxw" name="return" type="_NfXrAenfEdyqwYAyxR2bxw" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXvq-nfEdyqwYAyxR2bxw" name="rotateGeom" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvrOnfEdyqwYAyxR2bxw" name="geometry" type="_NfXspenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvrenfEdyqwYAyxR2bxw" name="radAngle" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvrunfEdyqwYAyxR2bxw" name="basex" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvr-nfEdyqwYAyxR2bxw" name="basey" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXvsOnfEdyqwYAyxR2bxw" name="moveGeom" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvsenfEdyqwYAyxR2bxw" name="geometry" type="_NfXspenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvsunfEdyqwYAyxR2bxw" name="dx" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvs-nfEdyqwYAyxR2bxw" name="dy" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_NfXvtOnfEdyqwYAyxR2bxw" name="scaleGeom" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_NfXvtenfEdyqwYAyxR2bxw" name="geometry" type="_NfXspenfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvtunfEdyqwYAyxR2bxw" name="basePoint" type="_NfXvT-nfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvt-nfEdyqwYAyxR2bxw" name="sx" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                  <ownedParameter xmi:id="_NfXvuOnfEdyqwYAyxR2bxw" name="sy" type="_NfXrBOnfEdyqwYAyxR2bxw"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_NfXvuenfEdyqwYAyxR2bxw" name="Arc2D"/>
+            </packagedElement>
+          </packagedElement>
+        </packagedElement>
+      </packagedElement>
+    </packagedElement>
+  </packagedElement>
+  <packagedElement xmi:type="uml:Package" xmi:id="_NfXvuunfEdyqwYAyxR2bxw" name="org">
+    <packagedElement xmi:type="uml:Package" xmi:id="_NfXvu-nfEdyqwYAyxR2bxw" name="gvsig">
+      <packagedElement xmi:type="uml:Package" xmi:id="_NfXvvOnfEdyqwYAyxR2bxw" name="geometries">
+        <packagedElement xmi:type="uml:Package" xmi:id="_NfXvvenfEdyqwYAyxR2bxw" name="iso">
+          <packagedElement xmi:type="uml:Interface" xmi:id="_NfXvvunfEdyqwYAyxR2bxw" name="GM_Object"/>
+          <packagedElement xmi:type="uml:Package" xmi:id="_NfXvv-nfEdyqwYAyxR2bxw" name="aggregate">
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXvwOnfEdyqwYAyxR2bxw" name="GM_MultiPoint">
+              <generalization xmi:id="_NfXvwenfEdyqwYAyxR2bxw" general="_NfXvx-nfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXvwunfEdyqwYAyxR2bxw" name="GM_MultiCurve">
+              <generalization xmi:id="_NfXvw-nfEdyqwYAyxR2bxw" general="_NfXvx-nfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXvxOnfEdyqwYAyxR2bxw" name="GM_MultiSolid">
+              <generalization xmi:id="_NfXvxenfEdyqwYAyxR2bxw" general="_NfXvx-nfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXvxunfEdyqwYAyxR2bxw" name="GM_MultiSurface"/>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXvx-nfEdyqwYAyxR2bxw" name="GM_MultiPrimitive">
+              <generalization xmi:id="_NfXvyOnfEdyqwYAyxR2bxw" general="_NfXvyenfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXvyenfEdyqwYAyxR2bxw" name="GM_Aggregate">
+              <generalization xmi:id="_NfXvyunfEdyqwYAyxR2bxw" general="_NfXvvunfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Package" xmi:id="_NfXvy-nfEdyqwYAyxR2bxw" name="complex">
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXvzOnfEdyqwYAyxR2bxw" name="GM_Composite">
+              <generalization xmi:id="_NfXvzenfEdyqwYAyxR2bxw" general="_NfXv0unfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXvzunfEdyqwYAyxR2bxw" name="GM_CompositeSolid">
+              <generalization xmi:id="_NfXvz-nfEdyqwYAyxR2bxw" general="_NfXvzOnfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXv0OnfEdyqwYAyxR2bxw" name="GM_CompositeCurve">
+              <generalization xmi:id="_NfXv0enfEdyqwYAyxR2bxw" general="_NfXvzOnfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXv0unfEdyqwYAyxR2bxw" name="GM_Complex">
+              <generalization xmi:id="_NfXv0-nfEdyqwYAyxR2bxw" general="_NfXvvunfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXv1OnfEdyqwYAyxR2bxw" name="GM_CompositeSurface">
+              <generalization xmi:id="_NfXv1enfEdyqwYAyxR2bxw" general="_NfXvzOnfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Package" xmi:id="_NfXv1unfEdyqwYAyxR2bxw" name="primitive">
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXv1-nfEdyqwYAyxR2bxw" name="GM_Surface"/>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXv2OnfEdyqwYAyxR2bxw" name="GM_Solid">
+              <generalization xmi:id="_NfXv2enfEdyqwYAyxR2bxw" general="_NfXv2unfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXv2unfEdyqwYAyxR2bxw" name="GM_OrientableSurface">
+              <generalization xmi:id="_NfXv2-nfEdyqwYAyxR2bxw" general="_NfXv5OnfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXv3OnfEdyqwYAyxR2bxw" name="GM_Point">
+              <generalization xmi:id="_NfXv3enfEdyqwYAyxR2bxw" general="_NfXv4OnfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXv3unfEdyqwYAyxR2bxw" name="GM_Curve">
+              <generalization xmi:id="_NfXv3-nfEdyqwYAyxR2bxw" general="_NfXv4unfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXv4OnfEdyqwYAyxR2bxw" name="GM_Primitive">
+              <generalization xmi:id="_NfXv4enfEdyqwYAyxR2bxw" general="_NfXvvunfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXv4unfEdyqwYAyxR2bxw" name="GM_OrientableCurve">
+              <generalization xmi:id="_NfXv4-nfEdyqwYAyxR2bxw" general="_NfXv5OnfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_NfXv5OnfEdyqwYAyxR2bxw" name="GM_OrientablePrimitive">
+              <generalization xmi:id="_NfXv5enfEdyqwYAyxR2bxw" general="_NfXv4OnfEdyqwYAyxR2bxw"/>
+            </packagedElement>
+          </packagedElement>
+        </packagedElement>
+      </packagedElement>
+    </packagedElement>
+  </packagedElement>
+  <packagedElement xmi:type="uml:Dependency" xmi:id="_j8htNOniEdycSvxH-nDZNg" name="Dependency1" supplier="_NfXulenfEdyqwYAyxR2bxw" client="_NfXt1OnfEdyqwYAyxR2bxw"/>
+  <packagedElement xmi:type="uml:Interface" xmi:id="_wjktSOniEdycSvxH-nDZNg" name="Shape"/>
+  <packagedElement xmi:type="uml:Class" xmi:id="_A7KKSOnkEdycSvxH-nDZNg" name="FSolid">
+    <generalization xmi:id="_C3latOnkEdycSvxH-nDZNg" general="_NfXununfEdyqwYAyxR2bxw"/>
+  </packagedElement>
+  <packagedElement xmi:type="uml:Class" xmi:id="_EjneuOnkEdycSvxH-nDZNg" name="FMultiSolid">
+    <generalization xmi:id="_GSL5UunkEdycSvxH-nDZNg" general="_NfXtcenfEdyqwYAyxR2bxw"/>
+  </packagedElement>
+</uml:Model>

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/model2.uml
___________________________________________________________________
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/modelFmap.uml
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/modelFmap.uml	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/modelFmap.uml	(revision 38288)
@@ -0,0 +1,20352 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xmi:id="_6UKs0OO8EdyGNPaNHSGn_w">
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_6UKs0eO8EdyGNPaNHSGn_w" name="boolean"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_6UKs0uO8EdyGNPaNHSGn_w" name="byte"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_6UKs0-O8EdyGNPaNHSGn_w" name="char"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_6UKs1OO8EdyGNPaNHSGn_w" name="double"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_6UKs1eO8EdyGNPaNHSGn_w" name="float"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_6UKs1uO8EdyGNPaNHSGn_w" name="int"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_6UKs1-O8EdyGNPaNHSGn_w" name="long"/>
+  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_6UKs2OO8EdyGNPaNHSGn_w" name="short"/>
+  <packagedElement xmi:type="uml:Package" xmi:id="_6UKs2eO8EdyGNPaNHSGn_w" name="com">
+    <packagedElement xmi:type="uml:Package" xmi:id="_6UKs2uO8EdyGNPaNHSGn_w" name="iver">
+      <packagedElement xmi:type="uml:Package" xmi:id="_6UKs2-O8EdyGNPaNHSGn_w" name="cit">
+        <packagedElement xmi:type="uml:Package" xmi:id="_6UKs3OO8EdyGNPaNHSGn_w" name="gvsig">
+          <packagedElement xmi:type="uml:Package" xmi:id="_6UKs3eO8EdyGNPaNHSGn_w" name="exceptions">
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UKs3uO8EdyGNPaNHSGn_w" name="commands">
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKs3-O8EdyGNPaNHSGn_w" name="EditionCommandException">
+                <generalization xmi:id="_6UKs4OO8EdyGNPaNHSGn_w" general="_6UKs5eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UKs4eO8EdyGNPaNHSGn_w" name="layer" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKs4uO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+                <ownedOperation xmi:id="_6UKs4-O8EdyGNPaNHSGn_w" name="values" visibility="protected">
+                  <ownedParameter xmi:id="_6UKs5OO8EdyGNPaNHSGn_w" name="return" type="_6UKs5-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UKs5eO8EdyGNPaNHSGn_w" name="BaseException"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UKs5uO8EdyGNPaNHSGn_w" name="String"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UKs5-O8EdyGNPaNHSGn_w" name="Map"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UKs6OO8EdyGNPaNHSGn_w" name="expansionfile">
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKs6eO8EdyGNPaNHSGn_w" name="CloseExpansionFileException">
+                <generalization xmi:id="_6UKs6uO8EdyGNPaNHSGn_w" general="_6UKs8uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKs6-O8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKs7OO8EdyGNPaNHSGn_w" name="ExpansionFileWriteException">
+                <generalization xmi:id="_6UKs7eO8EdyGNPaNHSGn_w" general="_6UKs8uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKs7uO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKs7-O8EdyGNPaNHSGn_w" name="OpenExpansionFileException">
+                <generalization xmi:id="_6UKs8OO8EdyGNPaNHSGn_w" general="_6UKs8uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKs8eO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKs8uO8EdyGNPaNHSGn_w" name="ExpansionFileException">
+                <generalization xmi:id="_6UKs8-O8EdyGNPaNHSGn_w" general="_6UKs--O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UKs9OO8EdyGNPaNHSGn_w" name="file" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKs9eO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+                <ownedOperation xmi:id="_6UKs9uO8EdyGNPaNHSGn_w" name="values" visibility="protected">
+                  <ownedParameter xmi:id="_6UKs9-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKs-OO8EdyGNPaNHSGn_w" name="ExpansionFileReadException">
+                <generalization xmi:id="_6UKs-eO8EdyGNPaNHSGn_w" general="_6UKs8uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKs-uO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UKs--O8EdyGNPaNHSGn_w" name="ReadDriverException"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UKs_OO8EdyGNPaNHSGn_w" name="layers">
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKs_eO8EdyGNPaNHSGn_w" name="UnsupportedVersionLayerException">
+                <generalization xmi:id="_6UKs_uO8EdyGNPaNHSGn_w" general="_6UKtEuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKs_-O8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtAOO8EdyGNPaNHSGn_w" name="FileLayerException">
+                <generalization xmi:id="_6UKtAeO8EdyGNPaNHSGn_w" general="_6UKtEuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtAuO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtA-O8EdyGNPaNHSGn_w" name="XMLLayerException">
+                <generalization xmi:id="_6UKtBOO8EdyGNPaNHSGn_w" general="_6UKtEuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtBeO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtBuO8EdyGNPaNHSGn_w" name="DriverLayerException">
+                <generalization xmi:id="_6UKtB-O8EdyGNPaNHSGn_w" general="_6UKtEuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtCOO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtCeO8EdyGNPaNHSGn_w" name="LegendLayerException">
+                <generalization xmi:id="_6UKtCuO8EdyGNPaNHSGn_w" general="_6UKtEuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtC-O8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtDOO8EdyGNPaNHSGn_w" name="StartEditionLayerException">
+                <generalization xmi:id="_6UKtDeO8EdyGNPaNHSGn_w" general="_6UKs5eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UKtDuO8EdyGNPaNHSGn_w" name="layer" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtD-O8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+                <ownedOperation xmi:id="_6UKtEOO8EdyGNPaNHSGn_w" name="values" visibility="protected">
+                  <ownedParameter xmi:id="_6UKtEeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtEuO8EdyGNPaNHSGn_w" name="LoadLayerException">
+                <generalization xmi:id="_6UKtE-O8EdyGNPaNHSGn_w" general="_6UKs5eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UKtFOO8EdyGNPaNHSGn_w" name="layer" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtFeO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+                <ownedOperation xmi:id="_6UKtFuO8EdyGNPaNHSGn_w" name="values" visibility="protected">
+                  <ownedParameter xmi:id="_6UKtF-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtGOO8EdyGNPaNHSGn_w" name="ProjectionLayerException">
+                <generalization xmi:id="_6UKtGeO8EdyGNPaNHSGn_w" general="_6UKtEuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtGuO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtG-O8EdyGNPaNHSGn_w" name="ConnectionErrorLayerException">
+                <generalization xmi:id="_6UKtHOO8EdyGNPaNHSGn_w" general="_6UKtEuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtHeO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtHuO8EdyGNPaNHSGn_w" name="NameLayerException">
+                <generalization xmi:id="_6UKtH-O8EdyGNPaNHSGn_w" general="_6UKtEuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtIOO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtIeO8EdyGNPaNHSGn_w" name="TypeLayerException">
+                <generalization xmi:id="_6UKtIuO8EdyGNPaNHSGn_w" general="_6UKtEuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtI-O8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtJOO8EdyGNPaNHSGn_w" name="ReloadLayerException">
+                <generalization xmi:id="_6UKtJeO8EdyGNPaNHSGn_w" general="_6UKtEuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtJuO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtJ-O8EdyGNPaNHSGn_w" name="URLLayerException">
+                <generalization xmi:id="_6UKtKOO8EdyGNPaNHSGn_w" general="_6UKtEuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtKeO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtKuO8EdyGNPaNHSGn_w" name="CancelEditingLayerException">
+                <generalization xmi:id="_6UKtK-O8EdyGNPaNHSGn_w" general="_6UKs5eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UKtLOO8EdyGNPaNHSGn_w" name="layer" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtLeO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+                <ownedOperation xmi:id="_6UKtLuO8EdyGNPaNHSGn_w" name="values" visibility="protected">
+                  <ownedParameter xmi:id="_6UKtL-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtMOO8EdyGNPaNHSGn_w" name="StopEditionLayerException">
+                <generalization xmi:id="_6UKtMeO8EdyGNPaNHSGn_w" general="_6UKs5eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UKtMuO8EdyGNPaNHSGn_w" name="layer" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtM-O8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+                <ownedOperation xmi:id="_6UKtNOO8EdyGNPaNHSGn_w" name="values" visibility="protected">
+                  <ownedParameter xmi:id="_6UKtNeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UKtNuO8EdyGNPaNHSGn_w" name="table">
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtN-O8EdyGNPaNHSGn_w" name="StartEditingTableException">
+                <generalization xmi:id="_6UKtOOO8EdyGNPaNHSGn_w" general="_6UKtQOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtOeO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtOuO8EdyGNPaNHSGn_w" name="StopEditingTableException">
+                <generalization xmi:id="_6UKtO-O8EdyGNPaNHSGn_w" general="_6UKtQOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtPOO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtPeO8EdyGNPaNHSGn_w" name="CancelEditingTableException">
+                <generalization xmi:id="_6UKtPuO8EdyGNPaNHSGn_w" general="_6UKtQOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtP-O8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtQOO8EdyGNPaNHSGn_w" name="TableEditingException">
+                <generalization xmi:id="_6UKtQeO8EdyGNPaNHSGn_w" general="_6UKs5eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UKtQuO8EdyGNPaNHSGn_w" name="table" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtQ-O8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+                <ownedOperation xmi:id="_6UKtROO8EdyGNPaNHSGn_w" name="values" visibility="protected">
+                  <ownedParameter xmi:id="_6UKtReO8EdyGNPaNHSGn_w" name="return" type="_6UKs5-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UKtRuO8EdyGNPaNHSGn_w" name="validate">
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtR-O8EdyGNPaNHSGn_w" name="ValidateRowException">
+                <generalization xmi:id="_6UKtSOO8EdyGNPaNHSGn_w" general="_6UKs5eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UKtSeO8EdyGNPaNHSGn_w" name="layer" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtSuO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+                <ownedOperation xmi:id="_6UKtS-O8EdyGNPaNHSGn_w" name="values" visibility="protected">
+                  <ownedParameter xmi:id="_6UKtTOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UKtTeO8EdyGNPaNHSGn_w" name="visitors">
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtTuO8EdyGNPaNHSGn_w" name="StartWriterVisitorException">
+                <generalization xmi:id="_6UKtT-O8EdyGNPaNHSGn_w" general="_6UKtVOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtUOO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtUeO8EdyGNPaNHSGn_w" name="ProcessWriterVisitorException">
+                <generalization xmi:id="_6UKtUuO8EdyGNPaNHSGn_w" general="_6UKtY-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtU-O8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtVOO8EdyGNPaNHSGn_w" name="StartVisitorException">
+                <generalization xmi:id="_6UKtVeO8EdyGNPaNHSGn_w" general="_6UKtWuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtVuO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtV-O8EdyGNPaNHSGn_w" name="StopWriterVisitorException">
+                <generalization xmi:id="_6UKtWOO8EdyGNPaNHSGn_w" general="_6UKtYOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtWeO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtWuO8EdyGNPaNHSGn_w" name="VisitorException">
+                <generalization xmi:id="_6UKtW-O8EdyGNPaNHSGn_w" general="_6UKs5eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UKtXOO8EdyGNPaNHSGn_w" name="layer" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtXeO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+                <ownedOperation xmi:id="_6UKtXuO8EdyGNPaNHSGn_w" name="values" visibility="protected">
+                  <ownedParameter xmi:id="_6UKtX-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtYOO8EdyGNPaNHSGn_w" name="StopVisitorException">
+                <generalization xmi:id="_6UKtYeO8EdyGNPaNHSGn_w" general="_6UKtWuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtYuO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UKtY-O8EdyGNPaNHSGn_w" name="ProcessVisitorException">
+                <generalization xmi:id="_6UKtZOO8EdyGNPaNHSGn_w" general="_6UKtWuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UKtZeO8EdyGNPaNHSGn_w" name="description" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UKtZuO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+              </packagedElement>
+            </packagedElement>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Package" xmi:id="_6UKtZ-O8EdyGNPaNHSGn_w" name="fmap">
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKtaOO8EdyGNPaNHSGn_w" name="DriverIOExceptionType">
+              <generalization xmi:id="_6UKtaeO8EdyGNPaNHSGn_w" general="_6UnhgOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtauO8EdyGNPaNHSGn_w" name="file" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKta-O8EdyGNPaNHSGn_w" name="name" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKtbOO8EdyGNPaNHSGn_w" name="setFile" visibility="public">
+                <ownedParameter xmi:id="_6UKtbeO8EdyGNPaNHSGn_w" name="file" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtbuO8EdyGNPaNHSGn_w" name="getHtmlErrorMessage" visibility="public">
+                <ownedParameter xmi:id="_6UKtb-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtcOO8EdyGNPaNHSGn_w" name="setDriverName" visibility="public">
+                <ownedParameter xmi:id="_6UKtceO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKtcuO8EdyGNPaNHSGn_w" name="ExtentHistory">
+              <ownedAttribute xmi:id="_6UKtc-O8EdyGNPaNHSGn_w" name="NUMREC" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtdOO8EdyGNPaNHSGn_w" name="extents" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtdeO8EdyGNPaNHSGn_w" name="num" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKtduO8EdyGNPaNHSGn_w" name="put" visibility="public">
+                <ownedParameter xmi:id="_6UKtd-O8EdyGNPaNHSGn_w" name="ext" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKteOO8EdyGNPaNHSGn_w" name="hasPrevious" visibility="public">
+                <ownedParameter xmi:id="_6UKteeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKteuO8EdyGNPaNHSGn_w" name="get" visibility="public">
+                <ownedParameter xmi:id="_6UKte-O8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtfOO8EdyGNPaNHSGn_w" name="removePrev" visibility="public">
+                <ownedParameter xmi:id="_6UKtfeO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtfuO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                <ownedParameter xmi:id="_6UKtf-O8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtgOO8EdyGNPaNHSGn_w" name="createFromXML03" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UKtgeO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKtguO8EdyGNPaNHSGn_w" name="return" type="_6UKtcuO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtg-O8EdyGNPaNHSGn_w" name="createFromXML" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UKthOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKtheO8EdyGNPaNHSGn_w" name="return" type="_6UKtcuO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKthuO8EdyGNPaNHSGn_w" name="DriverExceptionOld">
+              <generalization xmi:id="_6UKth-O8EdyGNPaNHSGn_w" general="_6UnhhOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtiOO8EdyGNPaNHSGn_w" name="exceptionType" visibility="private" type="_6UnhgOO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKtieO8EdyGNPaNHSGn_w" name="getExceptionType" visibility="public">
+                <ownedParameter xmi:id="_6UKtiuO8EdyGNPaNHSGn_w" name="return" type="_6UnhgOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKti-O8EdyGNPaNHSGn_w" name="ColorEvent">
+              <generalization xmi:id="_6UKtjOO8EdyGNPaNHSGn_w" general="_6UKts-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtjeO8EdyGNPaNHSGn_w" name="COLOR_EVENT" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtjuO8EdyGNPaNHSGn_w" name="color" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKtj-O8EdyGNPaNHSGn_w" name="createColorEvent" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UKtkOO8EdyGNPaNHSGn_w" name="c" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKtkeO8EdyGNPaNHSGn_w" name="return" type="_6UKti-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtkuO8EdyGNPaNHSGn_w" name="getNewColor" visibility="public">
+                <ownedParameter xmi:id="_6UKtk-O8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKtlOO8EdyGNPaNHSGn_w" name="SqlDriveExceptionType">
+              <generalization xmi:id="_6UKtleO8EdyGNPaNHSGn_w" general="_6UnhgOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtluO8EdyGNPaNHSGn_w" name="schema" type="_6UUsSeO8EdyGNPaNHSGn_w" association="_6Unho-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtl-O8EdyGNPaNHSGn_w" name="sql" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtmOO8EdyGNPaNHSGn_w" name="layerName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtmeO8EdyGNPaNHSGn_w" name="driverName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKtmuO8EdyGNPaNHSGn_w" name="getSchema" visibility="public">
+                <ownedParameter xmi:id="_6UKtm-O8EdyGNPaNHSGn_w" name="return" type="_6UUsSeO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtnOO8EdyGNPaNHSGn_w" name="setSchema" visibility="public">
+                <ownedParameter xmi:id="_6UKtneO8EdyGNPaNHSGn_w" name="schema" type="_6UUsSeO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtnuO8EdyGNPaNHSGn_w" name="getSql" visibility="public">
+                <ownedParameter xmi:id="_6UKtn-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtoOO8EdyGNPaNHSGn_w" name="setSql" visibility="public">
+                <ownedParameter xmi:id="_6UKtoeO8EdyGNPaNHSGn_w" name="sql" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtouO8EdyGNPaNHSGn_w" name="getHtmlErrorMessage" visibility="public">
+                <ownedParameter xmi:id="_6UKto-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtpOO8EdyGNPaNHSGn_w" name="setLayerName" visibility="public">
+                <ownedParameter xmi:id="_6UKtpeO8EdyGNPaNHSGn_w" name="tableName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtpuO8EdyGNPaNHSGn_w" name="getLayerName" visibility="public">
+                <ownedParameter xmi:id="_6UKtp-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtqOO8EdyGNPaNHSGn_w" name="getDriverName" visibility="public">
+                <ownedParameter xmi:id="_6UKtqeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtquO8EdyGNPaNHSGn_w" name="setDriverName" visibility="public">
+                <ownedParameter xmi:id="_6UKtq-O8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKtrOO8EdyGNPaNHSGn_w" name="DriverNotLoadedExceptionType">
+              <generalization xmi:id="_6UKtreO8EdyGNPaNHSGn_w" general="_6UnhgOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtruO8EdyGNPaNHSGn_w" name="driverName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKtr-O8EdyGNPaNHSGn_w" name="setDriverName" visibility="public">
+                <ownedParameter xmi:id="_6UKtsOO8EdyGNPaNHSGn_w" name="driverName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtseO8EdyGNPaNHSGn_w" name="getHtmlErrorMessage" visibility="public">
+                <ownedParameter xmi:id="_6UKtsuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKts-O8EdyGNPaNHSGn_w" name="FMapEvent">
+              <ownedAttribute xmi:id="_6UKttOO8EdyGNPaNHSGn_w" name="eventType" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKtteO8EdyGNPaNHSGn_w" name="getEventType" visibility="public">
+                <ownedParameter xmi:id="_6UKttuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKtt-O8EdyGNPaNHSGn_w" name="setEventType" visibility="public">
+                <ownedParameter xmi:id="_6UKtuOO8EdyGNPaNHSGn_w" name="eventType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKtueO8EdyGNPaNHSGn_w" name="ViewPort">
+              <ownedAttribute xmi:id="_6UKtuuO8EdyGNPaNHSGn_w" name="KILOMETROS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtu-O8EdyGNPaNHSGn_w" name="METROS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtvOO8EdyGNPaNHSGn_w" name="CENTIMETRO" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtveO8EdyGNPaNHSGn_w" name="MILIMETRO" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtvuO8EdyGNPaNHSGn_w" name="MILLAS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtv-O8EdyGNPaNHSGn_w" name="YARDAS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtwOO8EdyGNPaNHSGn_w" name="PIES" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtweO8EdyGNPaNHSGn_w" name="PULGADAS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtwuO8EdyGNPaNHSGn_w" name="GRADOS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtw-O8EdyGNPaNHSGn_w" name="dpi" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtxOO8EdyGNPaNHSGn_w" name="extent" visibility="protected" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtxeO8EdyGNPaNHSGn_w" name="adjustedExtent" visibility="protected" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtxuO8EdyGNPaNHSGn_w" name="extents" visibility="protected" type="_6UKtcuO8EdyGNPaNHSGn_w" association="_6UnhpeO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtx-O8EdyGNPaNHSGn_w" name="imageSize" visibility="private" type="_6UnhhuO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtyOO8EdyGNPaNHSGn_w" name="trans" visibility="private" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtyeO8EdyGNPaNHSGn_w" name="distanceUnits" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtyuO8EdyGNPaNHSGn_w" name="mapUnits" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKty-O8EdyGNPaNHSGn_w" name="listeners" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtzOO8EdyGNPaNHSGn_w" name="offset" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtzeO8EdyGNPaNHSGn_w" name="clip" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtzuO8EdyGNPaNHSGn_w" name="backColor" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKtz-O8EdyGNPaNHSGn_w" name="proj" visibility="private" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKt0OO8EdyGNPaNHSGn_w" name="dist1pixel" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKt0eO8EdyGNPaNHSGn_w" name="dist3pixel" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKt0uO8EdyGNPaNHSGn_w" name="scale" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKt0-O8EdyGNPaNHSGn_w" name="cliprect" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKt1OO8EdyGNPaNHSGn_w" name="adjustableExtent" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKt1eO8EdyGNPaNHSGn_w" name="setAdjustable" visibility="public">
+                <ownedParameter xmi:id="_6UKt1uO8EdyGNPaNHSGn_w" name="adjustable" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKt1-O8EdyGNPaNHSGn_w" name="addViewPortListener" visibility="public">
+                <ownedParameter xmi:id="_6UKt2OO8EdyGNPaNHSGn_w" name="arg0" type="_6UKuZeO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKt2eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKt2uO8EdyGNPaNHSGn_w" name="removeViewPortListener" visibility="public">
+                <ownedParameter xmi:id="_6UKt2-O8EdyGNPaNHSGn_w" name="arg0" type="_6UKuZeO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKt3OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKt3eO8EdyGNPaNHSGn_w" name="fromMapDistance" visibility="public">
+                <ownedParameter xmi:id="_6UKt3uO8EdyGNPaNHSGn_w" name="d" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKt3-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKt4OO8EdyGNPaNHSGn_w" name="fromMapPoint" visibility="public">
+                <ownedParameter xmi:id="_6UKt4eO8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKt4uO8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKt4-O8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKt5OO8EdyGNPaNHSGn_w" name="fromMapPoint" visibility="public">
+                <ownedParameter xmi:id="_6UKt5eO8EdyGNPaNHSGn_w" name="point" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKt5uO8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKt5-O8EdyGNPaNHSGn_w" name="toMapPoint" visibility="public">
+                <ownedParameter xmi:id="_6UKt6OO8EdyGNPaNHSGn_w" name="x" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKt6eO8EdyGNPaNHSGn_w" name="y" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKt6uO8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKt6-O8EdyGNPaNHSGn_w" name="toMapRectangle" visibility="public">
+                <ownedParameter xmi:id="_6UKt7OO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKt7eO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKt7uO8EdyGNPaNHSGn_w" name="toMapDistance" visibility="public">
+                <ownedParameter xmi:id="_6UKt7-O8EdyGNPaNHSGn_w" name="d" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKt8OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKt8eO8EdyGNPaNHSGn_w" name="toMapPoint" visibility="public">
+                <ownedParameter xmi:id="_6UKt8uO8EdyGNPaNHSGn_w" name="pScreen" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKt8-O8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKt9OO8EdyGNPaNHSGn_w" name="distanceWorld" visibility="public">
+                <ownedParameter xmi:id="_6UKt9eO8EdyGNPaNHSGn_w" name="pt1" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKt9uO8EdyGNPaNHSGn_w" name="pt2" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKt9-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKt-OO8EdyGNPaNHSGn_w" name="setPreviousExtent" visibility="public"/>
+              <ownedOperation xmi:id="_6UKt-eO8EdyGNPaNHSGn_w" name="getExtent" visibility="public">
+                <ownedParameter xmi:id="_6UKt-uO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKt--O8EdyGNPaNHSGn_w" name="setExtent" visibility="public">
+                <ownedParameter xmi:id="_6UKt_OO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKt_eO8EdyGNPaNHSGn_w" name="refreshExtent" visibility="public"/>
+              <ownedOperation xmi:id="_6UKt_uO8EdyGNPaNHSGn_w" name="getScale" visibility="public">
+                <ownedParameter xmi:id="_6UKt_-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuAOO8EdyGNPaNHSGn_w" name="getAffineTransform" visibility="public">
+                <ownedParameter xmi:id="_6UKuAeO8EdyGNPaNHSGn_w" name="return" type="_6Unhh-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuAuO8EdyGNPaNHSGn_w" name="getImageSize" visibility="public">
+                <ownedParameter xmi:id="_6UKuA-O8EdyGNPaNHSGn_w" name="return" type="_6UnhhuO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuBOO8EdyGNPaNHSGn_w" name="setImageSize" visibility="public">
+                <ownedParameter xmi:id="_6UKuBeO8EdyGNPaNHSGn_w" name="imageSize" type="_6UnhhuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuBuO8EdyGNPaNHSGn_w" name="callExtentChanged" visibility="protected">
+                <ownedParameter xmi:id="_6UKuB-O8EdyGNPaNHSGn_w" name="newRect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuCOO8EdyGNPaNHSGn_w" name="callColorChanged" visibility="private">
+                <ownedParameter xmi:id="_6UKuCeO8EdyGNPaNHSGn_w" name="c" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuCuO8EdyGNPaNHSGn_w" name="callProjectionChanged" visibility="private">
+                <ownedParameter xmi:id="_6UKuC-O8EdyGNPaNHSGn_w" name="projection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuDOO8EdyGNPaNHSGn_w" name="calculateAffineTransform" visibility="private"/>
+              <ownedOperation xmi:id="_6UKuDeO8EdyGNPaNHSGn_w" name="setOffset" visibility="public">
+                <ownedParameter xmi:id="_6UKuDuO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuD-O8EdyGNPaNHSGn_w" name="getOffset" visibility="public">
+                <ownedParameter xmi:id="_6UKuEOO8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuEeO8EdyGNPaNHSGn_w" name="setBackColor" visibility="public">
+                <ownedParameter xmi:id="_6UKuEuO8EdyGNPaNHSGn_w" name="c" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuE-O8EdyGNPaNHSGn_w" name="getBackColor" visibility="public">
+                <ownedParameter xmi:id="_6UKuFOO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuFeO8EdyGNPaNHSGn_w" name="getAdjustedExtent" visibility="public">
+                <ownedParameter xmi:id="_6UKuFuO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuF-O8EdyGNPaNHSGn_w" name="getDistanceUnits" visibility="public">
+                <ownedParameter xmi:id="_6UKuGOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuGeO8EdyGNPaNHSGn_w" name="setDistanceUnits" visibility="public">
+                <ownedParameter xmi:id="_6UKuGuO8EdyGNPaNHSGn_w" name="distanceUnits" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuG-O8EdyGNPaNHSGn_w" name="getMapUnits" visibility="public">
+                <ownedParameter xmi:id="_6UKuHOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuHeO8EdyGNPaNHSGn_w" name="setMapUnits" visibility="public">
+                <ownedParameter xmi:id="_6UKuHuO8EdyGNPaNHSGn_w" name="mapUnits" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuH-O8EdyGNPaNHSGn_w" name="getImageWidth" visibility="public">
+                <ownedParameter xmi:id="_6UKuIOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuIeO8EdyGNPaNHSGn_w" name="getImageHeight" visibility="public">
+                <ownedParameter xmi:id="_6UKuIuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuI-O8EdyGNPaNHSGn_w" name="getDist1pixel" visibility="public">
+                <ownedParameter xmi:id="_6UKuJOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuJeO8EdyGNPaNHSGn_w" name="setDist1pixel" visibility="public">
+                <ownedParameter xmi:id="_6UKuJuO8EdyGNPaNHSGn_w" name="dist1pixel" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuJ-O8EdyGNPaNHSGn_w" name="getDist3pixel" visibility="public">
+                <ownedParameter xmi:id="_6UKuKOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuKeO8EdyGNPaNHSGn_w" name="setDist3pixel" visibility="public">
+                <ownedParameter xmi:id="_6UKuKuO8EdyGNPaNHSGn_w" name="dist3pixel" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuK-O8EdyGNPaNHSGn_w" name="getExtents" visibility="public">
+                <ownedParameter xmi:id="_6UKuLOO8EdyGNPaNHSGn_w" name="return" type="_6UKtcuO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuLeO8EdyGNPaNHSGn_w" name="getProjection" visibility="public">
+                <ownedParameter xmi:id="_6UKuLuO8EdyGNPaNHSGn_w" name="return" type="_6UnhiuO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuL-O8EdyGNPaNHSGn_w" name="setProjection" visibility="public">
+                <ownedParameter xmi:id="_6UKuMOO8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuMeO8EdyGNPaNHSGn_w" name="setAffineTransform" visibility="public">
+                <ownedParameter xmi:id="_6UKuMuO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuM-O8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                <ownedParameter xmi:id="_6UKuNOO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuNeO8EdyGNPaNHSGn_w" name="createFromXML03" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UKuNuO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKuN-O8EdyGNPaNHSGn_w" name="return" type="_6UKtueO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuOOO8EdyGNPaNHSGn_w" name="createFromXML" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UKuOeO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKuOuO8EdyGNPaNHSGn_w" name="return" type="_6UKtueO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuO-O8EdyGNPaNHSGn_w" name="cloneViewPort" visibility="public">
+                <ownedParameter xmi:id="_6UKuPOO8EdyGNPaNHSGn_w" name="return" type="_6UKtueO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuPeO8EdyGNPaNHSGn_w" name="toString" visibility="public">
+                <ownedParameter xmi:id="_6UKuPuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuP-O8EdyGNPaNHSGn_w" name="setClipRect" visibility="public">
+                <ownedParameter xmi:id="_6UKuQOO8EdyGNPaNHSGn_w" name="rectView" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuQeO8EdyGNPaNHSGn_w" name="fromMapRectangle" visibility="public">
+                <ownedParameter xmi:id="_6UKuQuO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKuQ-O8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuROO8EdyGNPaNHSGn_w" name="setScale" visibility="public">
+                <ownedParameter xmi:id="_6UKuReO8EdyGNPaNHSGn_w" name="s" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKuRuO8EdyGNPaNHSGn_w" name="AtomicEvent">
+              <generalization xmi:id="_6UKuR-O8EdyGNPaNHSGn_w" general="_6UKts-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKuSOO8EdyGNPaNHSGn_w" name="events" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKuSeO8EdyGNPaNHSGn_w" name="getEvent" visibility="public">
+                <ownedParameter xmi:id="_6UKuSuO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKuS-O8EdyGNPaNHSGn_w" name="return" type="_6UKts-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuTOO8EdyGNPaNHSGn_w" name="getEventCount" visibility="public">
+                <ownedParameter xmi:id="_6UKuTeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuTuO8EdyGNPaNHSGn_w" name="getLegendEvents" visibility="public">
+                <ownedParameter xmi:id="_6UKuT-O8EdyGNPaNHSGn_w" name="return" type="_6Ud1S-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuUOO8EdyGNPaNHSGn_w" name="getLayerCollectionEvents" visibility="public">
+                <ownedParameter xmi:id="_6UKuUeO8EdyGNPaNHSGn_w" name="return" type="_6Ud0KuO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuUuO8EdyGNPaNHSGn_w" name="getSelectionEvents" visibility="public">
+                <ownedParameter xmi:id="_6UKuU-O8EdyGNPaNHSGn_w" name="return" type="_6Ud2geO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuVOO8EdyGNPaNHSGn_w" name="getExtentEvents" visibility="public">
+                <ownedParameter xmi:id="_6UKuVeO8EdyGNPaNHSGn_w" name="return" type="_6UUeS-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuVuO8EdyGNPaNHSGn_w" name="getLayerEvents" visibility="public">
+                <ownedParameter xmi:id="_6UKuV-O8EdyGNPaNHSGn_w" name="return" type="_6Ud0BuO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuWOO8EdyGNPaNHSGn_w" name="getColorEvents" visibility="public">
+                <ownedParameter xmi:id="_6UKuWeO8EdyGNPaNHSGn_w" name="return" type="_6UKti-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuWuO8EdyGNPaNHSGn_w" name="getProjectionEvents" visibility="public">
+                <ownedParameter xmi:id="_6UKuW-O8EdyGNPaNHSGn_w" name="return" type="_6UKuXOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKuXOO8EdyGNPaNHSGn_w" name="ProjectionEvent">
+              <generalization xmi:id="_6UKuXeO8EdyGNPaNHSGn_w" general="_6UKts-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKuXuO8EdyGNPaNHSGn_w" name="newProyection" visibility="private" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKuX-O8EdyGNPaNHSGn_w" name="PROJECTION_EVENT" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKuYOO8EdyGNPaNHSGn_w" name="createProjectionEvent" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UKuYeO8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKuYuO8EdyGNPaNHSGn_w" name="return" type="_6UKuXOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuY-O8EdyGNPaNHSGn_w" name="getNewProjection" visibility="public">
+                <ownedParameter xmi:id="_6UKuZOO8EdyGNPaNHSGn_w" name="return" type="_6UnhiuO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_6UKuZeO8EdyGNPaNHSGn_w" name="ViewPortListener">
+              <ownedOperation xmi:id="_6UKuZuO8EdyGNPaNHSGn_w" name="extentChanged">
+                <ownedParameter xmi:id="_6UKuZ-O8EdyGNPaNHSGn_w" name="e" type="_6UUeS-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuaOO8EdyGNPaNHSGn_w" name="backColorChanged">
+                <ownedParameter xmi:id="_6UKuaeO8EdyGNPaNHSGn_w" name="e" type="_6UKti-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuauO8EdyGNPaNHSGn_w" name="projectionChanged">
+                <ownedParameter xmi:id="_6UKua-O8EdyGNPaNHSGn_w" name="e" type="_6UKuXOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKubOO8EdyGNPaNHSGn_w" name="UnknownResponseFormatExceptionType">
+              <generalization xmi:id="_6UKubeO8EdyGNPaNHSGn_w" general="_6UnhgOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKubuO8EdyGNPaNHSGn_w" name="host" type="_6Unhi-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKub-O8EdyGNPaNHSGn_w" name="protocol" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKucOO8EdyGNPaNHSGn_w" name="format" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKuceO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKucuO8EdyGNPaNHSGn_w" name="getHtmlErrorMessage" visibility="public">
+                <ownedParameter xmi:id="_6UKuc-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKudOO8EdyGNPaNHSGn_w" name="getLayerName" visibility="public">
+                <ownedParameter xmi:id="_6UKudeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuduO8EdyGNPaNHSGn_w" name="setLayerName" visibility="public">
+                <ownedParameter xmi:id="_6UKud-O8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKueOO8EdyGNPaNHSGn_w" name="getFormat" visibility="public">
+                <ownedParameter xmi:id="_6UKueeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKueuO8EdyGNPaNHSGn_w" name="setFormat" visibility="public">
+                <ownedParameter xmi:id="_6UKue-O8EdyGNPaNHSGn_w" name="format" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKufOO8EdyGNPaNHSGn_w" name="getHost" visibility="public">
+                <ownedParameter xmi:id="_6UKufeO8EdyGNPaNHSGn_w" name="return" type="_6Unhi-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKufuO8EdyGNPaNHSGn_w" name="setHost" visibility="public">
+                <ownedParameter xmi:id="_6UKuf-O8EdyGNPaNHSGn_w" name="host" type="_6Unhi-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKugOO8EdyGNPaNHSGn_w" name="getProtocol" visibility="public">
+                <ownedParameter xmi:id="_6UKugeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuguO8EdyGNPaNHSGn_w" name="setProtocol" visibility="public">
+                <ownedParameter xmi:id="_6UKug-O8EdyGNPaNHSGn_w" name="protocol" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKuhOO8EdyGNPaNHSGn_w" name="GenericDriverExceptionType">
+              <generalization xmi:id="_6UKuheO8EdyGNPaNHSGn_w" general="_6UnhgOO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKuhuO8EdyGNPaNHSGn_w" name="getHtmlErrorMessage" visibility="public">
+                <ownedParameter xmi:id="_6UKuh-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKuiOO8EdyGNPaNHSGn_w" name="DBDriverExceptionType">
+              <generalization xmi:id="_6UKuieO8EdyGNPaNHSGn_w" general="_6UnhgOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKuiuO8EdyGNPaNHSGn_w" name="driverName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKui-O8EdyGNPaNHSGn_w" name="tableName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKujOO8EdyGNPaNHSGn_w" name="setDriverName" visibility="public">
+                <ownedParameter xmi:id="_6UKujeO8EdyGNPaNHSGn_w" name="driverName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKujuO8EdyGNPaNHSGn_w" name="setTableName" visibility="public">
+                <ownedParameter xmi:id="_6UKuj-O8EdyGNPaNHSGn_w" name="tableName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKukOO8EdyGNPaNHSGn_w" name="getHtmlErrorMessage" visibility="public">
+                <ownedParameter xmi:id="_6UKukeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKukuO8EdyGNPaNHSGn_w" name="EventBuffer" clientDependency="_6UKuluO8EdyGNPaNHSGn_w _6UKul-O8EdyGNPaNHSGn_w _6UKumOO8EdyGNPaNHSGn_w _6UKumeO8EdyGNPaNHSGn_w _6UKumuO8EdyGNPaNHSGn_w">
+              <ownedAttribute xmi:id="_6UKuk-O8EdyGNPaNHSGn_w" name="events" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKulOO8EdyGNPaNHSGn_w" name="listeners" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKuleO8EdyGNPaNHSGn_w" name="dispatching" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              <interfaceRealization xmi:id="_6UKuluO8EdyGNPaNHSGn_w" name="LegendListener" supplier="_6UnbN-O8EdyGNPaNHSGn_w" client="_6UKukuO8EdyGNPaNHSGn_w" contract="_6UnbN-O8EdyGNPaNHSGn_w"/>
+              <interfaceRealization xmi:id="_6UKul-O8EdyGNPaNHSGn_w" name="LayerCollectionListener" supplier="_6Udz4OO8EdyGNPaNHSGn_w" client="_6UKukuO8EdyGNPaNHSGn_w" contract="_6Udz4OO8EdyGNPaNHSGn_w"/>
+              <interfaceRealization xmi:id="_6UKumOO8EdyGNPaNHSGn_w" name="SelectionListener" supplier="_6Ud2fuO8EdyGNPaNHSGn_w" client="_6UKukuO8EdyGNPaNHSGn_w" contract="_6Ud2fuO8EdyGNPaNHSGn_w"/>
+              <interfaceRealization xmi:id="_6UKumeO8EdyGNPaNHSGn_w" name="ViewPortListener" supplier="_6UKuZeO8EdyGNPaNHSGn_w" client="_6UKukuO8EdyGNPaNHSGn_w" contract="_6UKuZeO8EdyGNPaNHSGn_w"/>
+              <interfaceRealization xmi:id="_6UKumuO8EdyGNPaNHSGn_w" name="LayerListener" supplier="_6Ud60OO8EdyGNPaNHSGn_w" client="_6UKukuO8EdyGNPaNHSGn_w" contract="_6Ud60OO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKum-O8EdyGNPaNHSGn_w" name="beginAtomicEvent" visibility="public"/>
+              <ownedOperation xmi:id="_6UKunOO8EdyGNPaNHSGn_w" name="endAtomicEvent" visibility="public"/>
+              <ownedOperation xmi:id="_6UKuneO8EdyGNPaNHSGn_w" name="legendChanged" visibility="public">
+                <ownedParameter xmi:id="_6UKunuO8EdyGNPaNHSGn_w" name="e" type="_6Ud5veO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKun-O8EdyGNPaNHSGn_w" name="layerAdded" visibility="public">
+                <ownedParameter xmi:id="_6UKuoOO8EdyGNPaNHSGn_w" name="e" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuoeO8EdyGNPaNHSGn_w" name="layerMoved" visibility="public">
+                <ownedParameter xmi:id="_6UKuouO8EdyGNPaNHSGn_w" name="e" type="_6Ud2auO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuo-O8EdyGNPaNHSGn_w" name="layerRemoved" visibility="public">
+                <ownedParameter xmi:id="_6UKupOO8EdyGNPaNHSGn_w" name="e" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKupeO8EdyGNPaNHSGn_w" name="layerAdding" visibility="public">
+                <ownedParameter xmi:id="_6UKupuO8EdyGNPaNHSGn_w" name="e" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKup-O8EdyGNPaNHSGn_w" name="layerMoving" visibility="public">
+                <ownedParameter xmi:id="_6UKuqOO8EdyGNPaNHSGn_w" name="e" type="_6Ud2auO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuqeO8EdyGNPaNHSGn_w" name="layerRemoving" visibility="public">
+                <ownedParameter xmi:id="_6UKuquO8EdyGNPaNHSGn_w" name="e" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuq-O8EdyGNPaNHSGn_w" name="visibilityChanged" visibility="public">
+                <ownedParameter xmi:id="_6UKurOO8EdyGNPaNHSGn_w" name="e" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKureO8EdyGNPaNHSGn_w" name="selectionChanged" visibility="public">
+                <ownedParameter xmi:id="_6UKuruO8EdyGNPaNHSGn_w" name="e" type="_6Ud2geO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKur-O8EdyGNPaNHSGn_w" name="extentChanged" visibility="public">
+                <ownedParameter xmi:id="_6UKusOO8EdyGNPaNHSGn_w" name="e" type="_6UUeS-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuseO8EdyGNPaNHSGn_w" name="addAtomicEventListener" visibility="public">
+                <ownedParameter xmi:id="_6UKusuO8EdyGNPaNHSGn_w" name="listener" type="_6UKvgeO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKus-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKutOO8EdyGNPaNHSGn_w" name="removeAtomicEventListener" visibility="public">
+                <ownedParameter xmi:id="_6UKuteO8EdyGNPaNHSGn_w" name="listener" type="_6UKvgeO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKutuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKut-O8EdyGNPaNHSGn_w" name="fireAtomicEventListener" visibility="private"/>
+              <ownedOperation xmi:id="_6UKuuOO8EdyGNPaNHSGn_w" name="visibilityChanged" visibility="public">
+                <ownedParameter xmi:id="_6UKuueO8EdyGNPaNHSGn_w" name="e" type="_6Ud0BuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuuuO8EdyGNPaNHSGn_w" name="activationChanged" visibility="public">
+                <ownedParameter xmi:id="_6UKuu-O8EdyGNPaNHSGn_w" name="e" type="_6Ud0BuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuvOO8EdyGNPaNHSGn_w" name="nameChanged" visibility="public">
+                <ownedParameter xmi:id="_6UKuveO8EdyGNPaNHSGn_w" name="e" type="_6Ud0BuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuvuO8EdyGNPaNHSGn_w" name="backColorChanged" visibility="public">
+                <ownedParameter xmi:id="_6UKuv-O8EdyGNPaNHSGn_w" name="e" type="_6UKti-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuwOO8EdyGNPaNHSGn_w" name="editionChanged" visibility="public">
+                <ownedParameter xmi:id="_6UKuweO8EdyGNPaNHSGn_w" name="e" type="_6Ud0BuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKuwuO8EdyGNPaNHSGn_w" name="projectionChanged" visibility="public">
+                <ownedParameter xmi:id="_6UKuw-O8EdyGNPaNHSGn_w" name="e" type="_6UKuXOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKuxOO8EdyGNPaNHSGn_w" name="MapContext">
+              <ownedAttribute xmi:id="_6UKuxeO8EdyGNPaNHSGn_w" name="CHANGEM" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKuxuO8EdyGNPaNHSGn_w" name="CHANGE" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKux-O8EdyGNPaNHSGn_w" name="NAMES" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKuyOO8EdyGNPaNHSGn_w" name="EQUALS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKuyeO8EdyGNPaNHSGn_w" name="DISJOINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKuyuO8EdyGNPaNHSGn_w" name="INTERSECTS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKuy-O8EdyGNPaNHSGn_w" name="TOUCHES" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKuzOO8EdyGNPaNHSGn_w" name="CROSSES" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKuzeO8EdyGNPaNHSGn_w" name="WITHIN" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKuzuO8EdyGNPaNHSGn_w" name="CONTAINS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKuz-O8EdyGNPaNHSGn_w" name="OVERLAPS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKu0OO8EdyGNPaNHSGn_w" name="layers" visibility="protected" type="_6Ud3i-O8EdyGNPaNHSGn_w" association="_6Unhp-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKu0eO8EdyGNPaNHSGn_w" name="tracLayer" visibility="private" type="_6Ud6EeO8EdyGNPaNHSGn_w" association="_6UnhqOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKu0uO8EdyGNPaNHSGn_w" name="viewPort" visibility="private" type="_6UKtueO8EdyGNPaNHSGn_w" association="_6UnhquO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKu0-O8EdyGNPaNHSGn_w" name="legendListeners" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKu1OO8EdyGNPaNHSGn_w" name="layerDrawingListeners" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKu1eO8EdyGNPaNHSGn_w" name="eventBuffer" visibility="private" type="_6UKukuO8EdyGNPaNHSGn_w" association="_6UnhrOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKu1uO8EdyGNPaNHSGn_w" name="layerEventListener" visibility="private" type="_6UKvb-O8EdyGNPaNHSGn_w" association="_6UnhruO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKu1-O8EdyGNPaNHSGn_w" name="layersError" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKu2OO8EdyGNPaNHSGn_w" name="errorListeners" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKu2eO8EdyGNPaNHSGn_w" name="ZOOMINFACTOR" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKu2uO8EdyGNPaNHSGn_w" name="ZOOMOUTFACTOR" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKu2-O8EdyGNPaNHSGn_w" name="selectionColor" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKu3OO8EdyGNPaNHSGn_w" name="getSelectionColor" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UKu3eO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKu3uO8EdyGNPaNHSGn_w" name="setSelectionColor" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UKu3-O8EdyGNPaNHSGn_w" name="selectionColor" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKu4OO8EdyGNPaNHSGn_w" name="reportDriverExceptions" visibility="public">
+                <ownedParameter xmi:id="_6UKu4eO8EdyGNPaNHSGn_w" name="introductoryText" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKu4uO8EdyGNPaNHSGn_w" name="driverExceptions" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKu4-O8EdyGNPaNHSGn_w" name="addLayerListener" visibility="public">
+                <ownedParameter xmi:id="_6UKu5OO8EdyGNPaNHSGn_w" name="listener" type="_6UnbN-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKu5eO8EdyGNPaNHSGn_w" name="addLayerDrawingListener" visibility="public">
+                <ownedParameter xmi:id="_6UKu5uO8EdyGNPaNHSGn_w" name="listener" type="_6Ud2qeO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKu5-O8EdyGNPaNHSGn_w" name="removeLayerDrawListener" visibility="public">
+                <ownedParameter xmi:id="_6UKu6OO8EdyGNPaNHSGn_w" name="listener" type="_6Ud2qeO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKu6eO8EdyGNPaNHSGn_w" name="addErrorListener" visibility="public">
+                <ownedParameter xmi:id="_6UKu6uO8EdyGNPaNHSGn_w" name="listener" type="_6UUeEeO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKu6-O8EdyGNPaNHSGn_w" name="removeErrorListener" visibility="public">
+                <ownedParameter xmi:id="_6UKu7OO8EdyGNPaNHSGn_w" name="listener" type="_6UnbN-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKu7eO8EdyGNPaNHSGn_w" name="callLegendChanged" visibility="public"/>
+              <ownedOperation xmi:id="_6UKu7uO8EdyGNPaNHSGn_w" name="fireLayerDrawingEvent" visibility="public">
+                <ownedParameter xmi:id="_6UKu7-O8EdyGNPaNHSGn_w" name="e" type="_6Udz0eO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKu8OO8EdyGNPaNHSGn_w" name="callNewErrorEvent" visibility="public">
+                <ownedParameter xmi:id="_6UKu8eO8EdyGNPaNHSGn_w" name="e" type="_6UUeVOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKu8uO8EdyGNPaNHSGn_w" name="removeLayerListener" visibility="public">
+                <ownedParameter xmi:id="_6UKu8-O8EdyGNPaNHSGn_w" name="listener" type="_6UnbN-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKu9OO8EdyGNPaNHSGn_w" name="getLayers" visibility="public">
+                <ownedParameter xmi:id="_6UKu9eO8EdyGNPaNHSGn_w" name="return" type="_6Ud3i-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKu9uO8EdyGNPaNHSGn_w" name="drawLabels" visibility="public">
+                <ownedParameter xmi:id="_6UKu9-O8EdyGNPaNHSGn_w" name="b" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKu-OO8EdyGNPaNHSGn_w" name="invalidate" visibility="public"/>
+              <ownedOperation xmi:id="_6UKu-eO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                <ownedParameter xmi:id="_6UKu-uO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKu--O8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKu_OO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKu_eO8EdyGNPaNHSGn_w" name="createNewFMap" visibility="public">
+                <ownedParameter xmi:id="_6UKu_uO8EdyGNPaNHSGn_w" name="vp" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKu_-O8EdyGNPaNHSGn_w" name="return" type="_6UKuxOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvAOO8EdyGNPaNHSGn_w" name="cloneFMap" visibility="public">
+                <ownedParameter xmi:id="_6UKvAeO8EdyGNPaNHSGn_w" name="return" type="_6UKuxOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvAuO8EdyGNPaNHSGn_w" name="cloneToDraw" visibility="public">
+                <ownedParameter xmi:id="_6UKvA-O8EdyGNPaNHSGn_w" name="return" type="_6UKuxOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvBOO8EdyGNPaNHSGn_w" name="addToTrackLayer" visibility="public">
+                <ownedParameter xmi:id="_6UKvBeO8EdyGNPaNHSGn_w" name="vectorial" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvBuO8EdyGNPaNHSGn_w" name="getScaleView" visibility="public">
+                <ownedParameter xmi:id="_6UKvB-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvCOO8EdyGNPaNHSGn_w" name="setScaleView" visibility="public">
+                <ownedParameter xmi:id="_6UKvCeO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvCuO8EdyGNPaNHSGn_w" name="getScreenDPI" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UKvC-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvDOO8EdyGNPaNHSGn_w" name="setVectorial" visibility="public">
+                <ownedParameter xmi:id="_6UKvDeO8EdyGNPaNHSGn_w" name="v" type="_6Ud26-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvDuO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                <ownedParameter xmi:id="_6UKvD-O8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvEOO8EdyGNPaNHSGn_w" name="processSelected" visibility="public">
+                <ownedParameter xmi:id="_6UKvEeO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvEuO8EdyGNPaNHSGn_w" name="select" visibility="public">
+                <ownedParameter xmi:id="_6UKvE-O8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvFOO8EdyGNPaNHSGn_w" name="selectFromSelection" visibility="public"/>
+              <ownedOperation xmi:id="_6UKvFeO8EdyGNPaNHSGn_w" name="createIndex" visibility="public"/>
+              <ownedOperation xmi:id="_6UKvFuO8EdyGNPaNHSGn_w" name="getProjection" visibility="public">
+                <ownedParameter xmi:id="_6UKvF-O8EdyGNPaNHSGn_w" name="return" type="_6UnhiuO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvGOO8EdyGNPaNHSGn_w" name="setProjection" visibility="public">
+                <ownedParameter xmi:id="_6UKvGeO8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvGuO8EdyGNPaNHSGn_w" name="reProject" visibility="public">
+                <ownedParameter xmi:id="_6UKvG-O8EdyGNPaNHSGn_w" name="arg0" type="_6UnhkOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvHOO8EdyGNPaNHSGn_w" name="selectByShape" visibility="public">
+                <ownedParameter xmi:id="_6UKvHeO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvHuO8EdyGNPaNHSGn_w" name="relationship" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvH-O8EdyGNPaNHSGn_w" name="queryByPoint" visibility="public">
+                <ownedParameter xmi:id="_6UKvIOO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvIeO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvIuO8EdyGNPaNHSGn_w" name="return" type="_6Ud8jeO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvI-O8EdyGNPaNHSGn_w" name="queryByRect" visibility="public">
+                <ownedParameter xmi:id="_6UKvJOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvJeO8EdyGNPaNHSGn_w" name="return" type="_6Ud8jeO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvJuO8EdyGNPaNHSGn_w" name="queryByShape" visibility="public">
+                <ownedParameter xmi:id="_6UKvJ-O8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvKOO8EdyGNPaNHSGn_w" name="relationship" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvKeO8EdyGNPaNHSGn_w" name="return" type="_6Ud8jeO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvKuO8EdyGNPaNHSGn_w" name="getSelectionBounds" visibility="public">
+                <ownedParameter xmi:id="_6UKvK-O8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvLOO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                <ownedParameter xmi:id="_6UKvLeO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvLuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvL-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvMOO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvMeO8EdyGNPaNHSGn_w" name="prepareDrawing" visibility="private">
+                <ownedParameter xmi:id="_6UKvMuO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvM-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvNOO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvNeO8EdyGNPaNHSGn_w" name="validatePreviousLayers" visibility="private">
+                <ownedParameter xmi:id="_6UKvNuO8EdyGNPaNHSGn_w" name="layers" type="_6Ud3i-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvN-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvOOO8EdyGNPaNHSGn_w" name="recursivePrepareDrawing" visibility="private">
+                <ownedParameter xmi:id="_6UKvOeO8EdyGNPaNHSGn_w" name="parent" type="_6Ud3i-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvOuO8EdyGNPaNHSGn_w" name="drawGraphics" visibility="public">
+                <ownedParameter xmi:id="_6UKvO-O8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvPOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvPeO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvPuO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvP-O8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                <ownedParameter xmi:id="_6UKvQOO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvQeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvQuO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvQ-O8EdyGNPaNHSGn_w" name="getViewPort" visibility="public">
+                <ownedParameter xmi:id="_6UKvROO8EdyGNPaNHSGn_w" name="return" type="_6UKtueO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvReO8EdyGNPaNHSGn_w" name="setViewPort" visibility="public">
+                <ownedParameter xmi:id="_6UKvRuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvR-O8EdyGNPaNHSGn_w" name="zoomToExtent" visibility="public">
+                <ownedParameter xmi:id="_6UKvSOO8EdyGNPaNHSGn_w" name="extent" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvSeO8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                <ownedParameter xmi:id="_6UKvSuO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvS-O8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                <ownedParameter xmi:id="_6UKvTOO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvTeO8EdyGNPaNHSGn_w" name="createFromXML03" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UKvTuO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvT-O8EdyGNPaNHSGn_w" name="return" type="_6UKuxOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvUOO8EdyGNPaNHSGn_w" name="createFromXML" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UKvUeO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvUuO8EdyGNPaNHSGn_w" name="return" type="_6UKuxOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvU-O8EdyGNPaNHSGn_w" name="addAtomicEventListener" visibility="public">
+                <ownedParameter xmi:id="_6UKvVOO8EdyGNPaNHSGn_w" name="listener" type="_6UKvgeO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvVeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvVuO8EdyGNPaNHSGn_w" name="removeAtomicEventListener" visibility="public">
+                <ownedParameter xmi:id="_6UKvV-O8EdyGNPaNHSGn_w" name="listener" type="_6UKvgeO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvWOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvWeO8EdyGNPaNHSGn_w" name="beginAtomicEvent" visibility="public"/>
+              <ownedOperation xmi:id="_6UKvWuO8EdyGNPaNHSGn_w" name="endAtomicEvent" visibility="public"/>
+              <ownedOperation xmi:id="_6UKvW-O8EdyGNPaNHSGn_w" name="addAsCollectionListener" visibility="public">
+                <ownedParameter xmi:id="_6UKvXOO8EdyGNPaNHSGn_w" name="layers2" type="_6Ud3i-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvXeO8EdyGNPaNHSGn_w" name="getGraphicsLayer" visibility="public">
+                <ownedParameter xmi:id="_6UKvXuO8EdyGNPaNHSGn_w" name="return" type="_6Ud6EeO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvX-O8EdyGNPaNHSGn_w" name="setGraphicsLayer" visibility="public">
+                <ownedParameter xmi:id="_6UKvYOO8EdyGNPaNHSGn_w" name="graphicLayer" type="_6Ud6EeO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvYeO8EdyGNPaNHSGn_w" name="equals" visibility="public">
+                <ownedParameter xmi:id="_6UKvYuO8EdyGNPaNHSGn_w" name="arg0" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvY-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvZOO8EdyGNPaNHSGn_w" name="addLayerError" visibility="public">
+                <ownedParameter xmi:id="_6UKvZeO8EdyGNPaNHSGn_w" name="stringProperty" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvZuO8EdyGNPaNHSGn_w" name="getLayersError" visibility="public">
+                <ownedParameter xmi:id="_6UKvZ-O8EdyGNPaNHSGn_w" name="return" type="_6UnhiOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvaOO8EdyGNPaNHSGn_w" name="clearErrors" visibility="public"/>
+              <ownedOperation xmi:id="_6UKvaeO8EdyGNPaNHSGn_w" name="clearAllCachingImageDrawnLayers" visibility="public"/>
+              <ownedOperation xmi:id="_6UKvauO8EdyGNPaNHSGn_w" name="clearCachingImageDrawnLayers" visibility="private">
+                <ownedParameter xmi:id="_6UKva-O8EdyGNPaNHSGn_w" name="layers" type="_6Ud3i-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvbOO8EdyGNPaNHSGn_w" name="getNewGroupLayer" visibility="public">
+                <ownedParameter xmi:id="_6UKvbeO8EdyGNPaNHSGn_w" name="parent" type="_6Ud3i-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvbuO8EdyGNPaNHSGn_w" name="return" type="_6Ud3i-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKvb-O8EdyGNPaNHSGn_w" name="LayerEventListener" clientDependency="_6UKvcOO8EdyGNPaNHSGn_w">
+              <interfaceRealization xmi:id="_6UKvcOO8EdyGNPaNHSGn_w" name="LayerCollectionListener" supplier="_6Udz4OO8EdyGNPaNHSGn_w" client="_6UKvb-O8EdyGNPaNHSGn_w" contract="_6Udz4OO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKvceO8EdyGNPaNHSGn_w" name="layerAdded" visibility="public">
+                <ownedParameter xmi:id="_6UKvcuO8EdyGNPaNHSGn_w" name="e" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvc-O8EdyGNPaNHSGn_w" name="selectionListener" visibility="private">
+                <ownedParameter xmi:id="_6UKvdOO8EdyGNPaNHSGn_w" name="lyr" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvdeO8EdyGNPaNHSGn_w" name="layerMoved" visibility="public">
+                <ownedParameter xmi:id="_6UKvduO8EdyGNPaNHSGn_w" name="e" type="_6Ud2auO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvd-O8EdyGNPaNHSGn_w" name="layerRemoved" visibility="public">
+                <ownedParameter xmi:id="_6UKveOO8EdyGNPaNHSGn_w" name="e" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKveeO8EdyGNPaNHSGn_w" name="layerAdding" visibility="public">
+                <ownedParameter xmi:id="_6UKveuO8EdyGNPaNHSGn_w" name="e" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKve-O8EdyGNPaNHSGn_w" name="layerMoving" visibility="public">
+                <ownedParameter xmi:id="_6UKvfOO8EdyGNPaNHSGn_w" name="e" type="_6Ud2auO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvfeO8EdyGNPaNHSGn_w" name="layerRemoving" visibility="public">
+                <ownedParameter xmi:id="_6UKvfuO8EdyGNPaNHSGn_w" name="e" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvf-O8EdyGNPaNHSGn_w" name="visibilityChanged" visibility="public">
+                <ownedParameter xmi:id="_6UKvgOO8EdyGNPaNHSGn_w" name="e" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_6UKvgeO8EdyGNPaNHSGn_w" name="AtomicEventListener">
+              <ownedOperation xmi:id="_6UKvguO8EdyGNPaNHSGn_w" name="atomicEvent" visibility="public">
+                <ownedParameter xmi:id="_6UKvg-O8EdyGNPaNHSGn_w" name="e" type="_6UKuRuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UKvhOO8EdyGNPaNHSGn_w" name="MapControl" clientDependency="_6UKvmeO8EdyGNPaNHSGn_w">
+              <generalization xmi:id="_6UKvheO8EdyGNPaNHSGn_w" general="_6UnhlOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvhuO8EdyGNPaNHSGn_w" name="ACTUALIZADO" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvh-O8EdyGNPaNHSGn_w" name="DESACTUALIZADO" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKviOO8EdyGNPaNHSGn_w" name="ONLY_GRAPHICS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvieO8EdyGNPaNHSGn_w" name="drawFrameRate" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKviuO8EdyGNPaNHSGn_w" name="drawAnimationEnabled" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvi-O8EdyGNPaNHSGn_w" name="mapContext" visibility="private" type="_6UKuxOO8EdyGNPaNHSGn_w" association="_6UnhsOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvjOO8EdyGNPaNHSGn_w" name="namesMapTools" visibility="protected" type="_6UnhleO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvjeO8EdyGNPaNHSGn_w" name="currentMapTool" visibility="protected" type="_6UngmOO8EdyGNPaNHSGn_w" association="_6UnhsuO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvjuO8EdyGNPaNHSGn_w" name="status" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvj-O8EdyGNPaNHSGn_w" name="image" visibility="private" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvkOO8EdyGNPaNHSGn_w" name="currentTool" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvkeO8EdyGNPaNHSGn_w" name="canceldraw" visibility="private" type="_6UUd6OO8EdyGNPaNHSGn_w" association="_6Unhs-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvkuO8EdyGNPaNHSGn_w" name="timer" visibility="private" type="_6UnhluO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvk-O8EdyGNPaNHSGn_w" name="vp" visibility="protected" type="_6UKtueO8EdyGNPaNHSGn_w" association="_6UnhteO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvlOO8EdyGNPaNHSGn_w" name="drawer2" visibility="private" type="_6UUd2OO8EdyGNPaNHSGn_w" association="_6Unht-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvleO8EdyGNPaNHSGn_w" name="mapToolListener" visibility="protected" type="_6UUd7uO8EdyGNPaNHSGn_w" association="_6UnhueO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvluO8EdyGNPaNHSGn_w" name="mapContextListener" visibility="private" type="_6UUeAeO8EdyGNPaNHSGn_w" association="_6Unhu-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvl-O8EdyGNPaNHSGn_w" name="exceptionHandlingSupport" visibility="private" type="_6Unhl-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UKvmOO8EdyGNPaNHSGn_w" name="prevTool" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <interfaceRealization xmi:id="_6UKvmeO8EdyGNPaNHSGn_w" name="CommandListener" supplier="_6UdwiuO8EdyGNPaNHSGn_w" client="_6UKvhOO8EdyGNPaNHSGn_w" contract="_6UdwiuO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UKvmuO8EdyGNPaNHSGn_w" name="setMapContext" visibility="public">
+                <ownedParameter xmi:id="_6UKvm-O8EdyGNPaNHSGn_w" name="model" type="_6UKuxOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvnOO8EdyGNPaNHSGn_w" name="getProjection" visibility="public">
+                <ownedParameter xmi:id="_6UKvneO8EdyGNPaNHSGn_w" name="return" type="_6UnhiuO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvnuO8EdyGNPaNHSGn_w" name="setProjection" visibility="public">
+                <ownedParameter xmi:id="_6UKvn-O8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvoOO8EdyGNPaNHSGn_w" name="getMapContext" visibility="public">
+                <ownedParameter xmi:id="_6UKvoeO8EdyGNPaNHSGn_w" name="return" type="_6UKuxOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvouO8EdyGNPaNHSGn_w" name="addMapTool" visibility="public">
+                <ownedParameter xmi:id="_6UKvo-O8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvpOO8EdyGNPaNHSGn_w" name="tool" type="_6UngmOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvpeO8EdyGNPaNHSGn_w" name="addMapTool" visibility="public">
+                <ownedParameter xmi:id="_6UKvpuO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvp-O8EdyGNPaNHSGn_w" name="tools" type="_6UngmOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvqOO8EdyGNPaNHSGn_w" name="getMapTool" visibility="public">
+                <ownedParameter xmi:id="_6UKvqeO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvquO8EdyGNPaNHSGn_w" name="return" type="_6UngmOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvq-O8EdyGNPaNHSGn_w" name="getMapToolsKeySet" visibility="public">
+                <ownedParameter xmi:id="_6UKvrOO8EdyGNPaNHSGn_w" name="return" type="_6UnhmOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvreO8EdyGNPaNHSGn_w" name="hasTool" visibility="public">
+                <ownedParameter xmi:id="_6UKvruO8EdyGNPaNHSGn_w" name="toolName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvr-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvsOO8EdyGNPaNHSGn_w" name="setTool" visibility="public">
+                <ownedParameter xmi:id="_6UKvseO8EdyGNPaNHSGn_w" name="toolName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvsuO8EdyGNPaNHSGn_w" name="getCurrentMapTool" visibility="public">
+                <ownedParameter xmi:id="_6UKvs-O8EdyGNPaNHSGn_w" name="return" type="_6UngmOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvtOO8EdyGNPaNHSGn_w" name="getCurrentTool" visibility="public">
+                <ownedParameter xmi:id="_6UKvteO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvtuO8EdyGNPaNHSGn_w" name="cancelDrawing" visibility="public"/>
+              <ownedOperation xmi:id="_6UKvt-O8EdyGNPaNHSGn_w" name="adaptToImageSize" visibility="private">
+                <ownedParameter xmi:id="_6UKvuOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvueO8EdyGNPaNHSGn_w" name="paintComponent" visibility="protected">
+                <ownedParameter xmi:id="_6UKvuuO8EdyGNPaNHSGn_w" name="g" type="_6UnhmeO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvu-O8EdyGNPaNHSGn_w" name="getImage" visibility="public">
+                <ownedParameter xmi:id="_6UKvvOO8EdyGNPaNHSGn_w" name="return" type="_6UnhjeO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvveO8EdyGNPaNHSGn_w" name="drawMap" visibility="public">
+                <ownedParameter xmi:id="_6UKvvuO8EdyGNPaNHSGn_w" name="doClear" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvv-O8EdyGNPaNHSGn_w" name="rePaintDirtyLayers" visibility="public"/>
+              <ownedOperation xmi:id="_6UKvwOO8EdyGNPaNHSGn_w" name="drawGraphics" visibility="public"/>
+              <ownedOperation xmi:id="_6UKvweO8EdyGNPaNHSGn_w" name="componentHidden" visibility="public">
+                <ownedParameter xmi:id="_6UKvwuO8EdyGNPaNHSGn_w" name="e" type="_6UnhmuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvw-O8EdyGNPaNHSGn_w" name="componentMoved" visibility="public">
+                <ownedParameter xmi:id="_6UKvxOO8EdyGNPaNHSGn_w" name="e" type="_6UnhmuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvxeO8EdyGNPaNHSGn_w" name="componentResized" visibility="public">
+                <ownedParameter xmi:id="_6UKvxuO8EdyGNPaNHSGn_w" name="e" type="_6UnhmuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvx-O8EdyGNPaNHSGn_w" name="componentShown" visibility="public">
+                <ownedParameter xmi:id="_6UKvyOO8EdyGNPaNHSGn_w" name="e" type="_6UnhmuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvyeO8EdyGNPaNHSGn_w" name="addExceptionListener" visibility="public">
+                <ownedParameter xmi:id="_6UKvyuO8EdyGNPaNHSGn_w" name="o" type="_6Unhm-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvy-O8EdyGNPaNHSGn_w" name="removeExceptionListener" visibility="public">
+                <ownedParameter xmi:id="_6UKvzOO8EdyGNPaNHSGn_w" name="o" type="_6Unhm-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UKvzeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKvzuO8EdyGNPaNHSGn_w" name="throwException" visibility="protected">
+                <ownedParameter xmi:id="_6UKvz-O8EdyGNPaNHSGn_w" name="t" type="_6UnhnOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKv0OO8EdyGNPaNHSGn_w" name="getViewPort" visibility="public">
+                <ownedParameter xmi:id="_6UKv0eO8EdyGNPaNHSGn_w" name="return" type="_6UKtueO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKv0uO8EdyGNPaNHSGn_w" name="getNamesMapTools" visibility="public">
+                <ownedParameter xmi:id="_6UKv0-O8EdyGNPaNHSGn_w" name="return" type="_6UnhleO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKv1OO8EdyGNPaNHSGn_w" name="commandRepaint" visibility="public"/>
+              <ownedOperation xmi:id="_6UKv1eO8EdyGNPaNHSGn_w" name="commandRefresh" visibility="public"/>
+              <ownedOperation xmi:id="_6UKv1uO8EdyGNPaNHSGn_w" name="setPrevTool" visibility="public"/>
+              <ownedOperation xmi:id="_6UKv1-O8EdyGNPaNHSGn_w" name="zoomIn" visibility="public"/>
+              <ownedOperation xmi:id="_6UKv2OO8EdyGNPaNHSGn_w" name="zoomOut" visibility="public"/>
+              <ownedOperation xmi:id="_6UKv2eO8EdyGNPaNHSGn_w" name="getMapToolListener" visibility="public">
+                <ownedParameter xmi:id="_6UKv2uO8EdyGNPaNHSGn_w" name="return" type="_6UUd7uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKv2-O8EdyGNPaNHSGn_w" name="setCurrentMapTool" visibility="public">
+                <ownedParameter xmi:id="_6UKv3OO8EdyGNPaNHSGn_w" name="mapTool" type="_6UngmOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKv3eO8EdyGNPaNHSGn_w" name="applyFrameRate" visibility="public"/>
+              <ownedOperation xmi:id="_6UKv3uO8EdyGNPaNHSGn_w" name="getDrawFrameRate" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UKv3-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UKv4OO8EdyGNPaNHSGn_w" name="setDrawFrameRate" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UKv4eO8EdyGNPaNHSGn_w" name="drawFrameRate" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUd0OO8EdyGNPaNHSGn_w" name="isDrawAnimationEnabled" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UUd0eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUd0uO8EdyGNPaNHSGn_w" name="setDrawAnimationEnabled" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UUd0-O8EdyGNPaNHSGn_w" name="drawAnimationEnabled" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUd1OO8EdyGNPaNHSGn_w" name="getCanceldraw" visibility="public">
+                <ownedParameter xmi:id="_6UUd1eO8EdyGNPaNHSGn_w" name="return" type="_6UUd6OO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UUd1uO8EdyGNPaNHSGn_w" name="PaintingRequest" visibility="private">
+              <ownedOperation xmi:id="_6UUd1-O8EdyGNPaNHSGn_w" name="paint" visibility="public"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UUd2OO8EdyGNPaNHSGn_w" name="Drawer2">
+              <ownedAttribute xmi:id="_6UUd2eO8EdyGNPaNHSGn_w" name="paintingRequest" visibility="private" type="_6UUd1uO8EdyGNPaNHSGn_w" association="_6UnhveO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUd2uO8EdyGNPaNHSGn_w" name="waitingRequest" visibility="private" type="_6UUd1uO8EdyGNPaNHSGn_w" association="_6Unhv-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUd2-O8EdyGNPaNHSGn_w" name="waiting" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUd3OO8EdyGNPaNHSGn_w" name="shutdown" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UUd3eO8EdyGNPaNHSGn_w" name="setShutdown" visibility="public">
+                <ownedParameter xmi:id="_6UUd3uO8EdyGNPaNHSGn_w" name="isShutdown" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUd3-O8EdyGNPaNHSGn_w" name="put" visibility="public">
+                <ownedParameter xmi:id="_6UUd4OO8EdyGNPaNHSGn_w" name="newPaintRequest" type="_6UUd1uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUd4eO8EdyGNPaNHSGn_w" name="take" visibility="public">
+                <ownedParameter xmi:id="_6UUd4uO8EdyGNPaNHSGn_w" name="return" type="_6UUd1uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UUd4-O8EdyGNPaNHSGn_w" name="Drawer">
+              <generalization xmi:id="_6UUd5OO8EdyGNPaNHSGn_w" general="_6UnhneO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUd5eO8EdyGNPaNHSGn_w" name="image" visibility="private" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUd5uO8EdyGNPaNHSGn_w" name="cancel" visibility="private" type="_6UUd6OO8EdyGNPaNHSGn_w" association="_6UnhweO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UUd5-O8EdyGNPaNHSGn_w" name="run" visibility="public"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UUd6OO8EdyGNPaNHSGn_w" name="CancelDraw">
+              <ownedAttribute xmi:id="_6UUd6eO8EdyGNPaNHSGn_w" name="cancel" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UUd6uO8EdyGNPaNHSGn_w" name="setCanceled" visibility="public">
+                <ownedParameter xmi:id="_6UUd6-O8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUd7OO8EdyGNPaNHSGn_w" name="isCanceled" visibility="public">
+                <ownedParameter xmi:id="_6UUd7eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UUd7uO8EdyGNPaNHSGn_w" name="MapToolListener">
+              <ownedAttribute xmi:id="_6UUd7-O8EdyGNPaNHSGn_w" name="t1" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUd8OO8EdyGNPaNHSGn_w" name="pReal" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UUd8eO8EdyGNPaNHSGn_w" name="mouseClicked" visibility="public">
+                <ownedParameter xmi:id="_6UUd8uO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUd8-O8EdyGNPaNHSGn_w" name="mouseEntered" visibility="public">
+                <ownedParameter xmi:id="_6UUd9OO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUd9eO8EdyGNPaNHSGn_w" name="mouseExited" visibility="public">
+                <ownedParameter xmi:id="_6UUd9uO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUd9-O8EdyGNPaNHSGn_w" name="mousePressed" visibility="public">
+                <ownedParameter xmi:id="_6UUd-OO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUd-eO8EdyGNPaNHSGn_w" name="mouseReleased" visibility="public">
+                <ownedParameter xmi:id="_6UUd-uO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUd--O8EdyGNPaNHSGn_w" name="mouseWheelMoved" visibility="public">
+                <ownedParameter xmi:id="_6UUd_OO8EdyGNPaNHSGn_w" name="e" type="_6Unhn-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUd_eO8EdyGNPaNHSGn_w" name="mouseDragged" visibility="public">
+                <ownedParameter xmi:id="_6UUd_uO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUd_-O8EdyGNPaNHSGn_w" name="mouseMoved" visibility="public">
+                <ownedParameter xmi:id="_6UUeAOO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UUeAeO8EdyGNPaNHSGn_w" name="MapContextListener" clientDependency="_6UUeAuO8EdyGNPaNHSGn_w">
+              <interfaceRealization xmi:id="_6UUeAuO8EdyGNPaNHSGn_w" name="AtomicEventListener" supplier="_6UKvgeO8EdyGNPaNHSGn_w" client="_6UUeAeO8EdyGNPaNHSGn_w" contract="_6UKvgeO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UUeA-O8EdyGNPaNHSGn_w" name="atomicEvent" visibility="public">
+                <ownedParameter xmi:id="_6UUeBOO8EdyGNPaNHSGn_w" name="e" type="_6UKuRuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UUeBeO8EdyGNPaNHSGn_w" name="Worker" visibility="private">
+              <ownedOperation xmi:id="_6UUeBuO8EdyGNPaNHSGn_w" name="run" visibility="public"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UUeB-O8EdyGNPaNHSGn_w" name="LegendDriverExceptionType">
+              <generalization xmi:id="_6UUeCOO8EdyGNPaNHSGn_w" general="_6UnhgOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUeCeO8EdyGNPaNHSGn_w" name="driverName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUeCuO8EdyGNPaNHSGn_w" name="legendLabelField" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUeC-O8EdyGNPaNHSGn_w" name="legendHeightField" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUeDOO8EdyGNPaNHSGn_w" name="legendRotationField" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UUeDeO8EdyGNPaNHSGn_w" name="getHtmlErrorMessage" visibility="public">
+                <ownedParameter xmi:id="_6UUeDuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUeD-O8EdyGNPaNHSGn_w" name="setDriverName" visibility="public">
+                <ownedParameter xmi:id="_6UUeEOO8EdyGNPaNHSGn_w" name="driverName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_6UUeEeO8EdyGNPaNHSGn_w" name="ErrorListener">
+              <ownedOperation xmi:id="_6UUeEuO8EdyGNPaNHSGn_w" name="errorThrown">
+                <ownedParameter xmi:id="_6UUeE-O8EdyGNPaNHSGn_w" name="e" type="_6UUeVOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUeFOO8EdyGNPaNHSGn_w" name="reportDriverExceptions">
+                <ownedParameter xmi:id="_6UUeFeO8EdyGNPaNHSGn_w" name="introductoryText" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UUeFuO8EdyGNPaNHSGn_w" name="driverExceptions" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_6UUeF-O8EdyGNPaNHSGn_w" name="InvalidationListener">
+              <ownedOperation xmi:id="_6UUeGOO8EdyGNPaNHSGn_w" name="invalid" visibility="public"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Interface" xmi:id="_6UUeGeO8EdyGNPaNHSGn_w" name="ProgressListener">
+              <ownedOperation xmi:id="_6UUeGuO8EdyGNPaNHSGn_w" name="progress" visibility="public">
+                <ownedParameter xmi:id="_6UUeG-O8EdyGNPaNHSGn_w" name="n" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UUeHOO8EdyGNPaNHSGn_w" name="Messages">
+              <ownedAttribute xmi:id="_6UUeHeO8EdyGNPaNHSGn_w" name="BUNDLE_NAME" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUeHuO8EdyGNPaNHSGn_w" name="RESOURCE_BUNDLE" visibility="private" type="_6UnhoOO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UUeH-O8EdyGNPaNHSGn_w" name="init" visibility="private" isStatic="true"/>
+              <ownedOperation xmi:id="_6UUeIOO8EdyGNPaNHSGn_w" name="getString" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UUeIeO8EdyGNPaNHSGn_w" name="key" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UUeIuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UUeI-O8EdyGNPaNHSGn_w" name="ConnectionErrorExceptionType">
+              <generalization xmi:id="_6UUeJOO8EdyGNPaNHSGn_w" general="_6UnhgOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUeJeO8EdyGNPaNHSGn_w" name="host" type="_6Unhi-O8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UUeJuO8EdyGNPaNHSGn_w" name="getHtmlErrorMessage" visibility="public">
+                <ownedParameter xmi:id="_6UUeJ-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUeKOO8EdyGNPaNHSGn_w" name="getHost" visibility="public">
+                <ownedParameter xmi:id="_6UUeKeO8EdyGNPaNHSGn_w" name="return" type="_6Unhi-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUeKuO8EdyGNPaNHSGn_w" name="setHost" visibility="public">
+                <ownedParameter xmi:id="_6UUeK-O8EdyGNPaNHSGn_w" name="host" type="_6Unhi-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UUeLOO8EdyGNPaNHSGn_w" name="DriverJdbcNotFoundExceptionType">
+              <generalization xmi:id="_6UUeLeO8EdyGNPaNHSGn_w" general="_6UnhgOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUeLuO8EdyGNPaNHSGn_w" name="driverJdbcClassName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUeL-O8EdyGNPaNHSGn_w" name="layerName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UUeMOO8EdyGNPaNHSGn_w" name="getDriverJdbcClassName" visibility="public">
+                <ownedParameter xmi:id="_6UUeMeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUeMuO8EdyGNPaNHSGn_w" name="setDriverJdbcClassName" visibility="public">
+                <ownedParameter xmi:id="_6UUeM-O8EdyGNPaNHSGn_w" name="driverJdbcClassName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUeNOO8EdyGNPaNHSGn_w" name="getHtmlErrorMessage" visibility="public">
+                <ownedParameter xmi:id="_6UUeNeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUeNuO8EdyGNPaNHSGn_w" name="setLayerName" visibility="public">
+                <ownedParameter xmi:id="_6UUeN-O8EdyGNPaNHSGn_w" name="tableName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UUeOOO8EdyGNPaNHSGn_w" name="UnsuportedProtocolVersionExceptionType">
+              <generalization xmi:id="_6UUeOeO8EdyGNPaNHSGn_w" general="_6UnhgOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUeOuO8EdyGNPaNHSGn_w" name="url" type="_6Unhi-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUeO-O8EdyGNPaNHSGn_w" name="layerName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUePOO8EdyGNPaNHSGn_w" name="driverName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UUePeO8EdyGNPaNHSGn_w" name="getHtmlErrorMessage" visibility="public">
+                <ownedParameter xmi:id="_6UUePuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUeP-O8EdyGNPaNHSGn_w" name="getDriverName" visibility="public">
+                <ownedParameter xmi:id="_6UUeQOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUeQeO8EdyGNPaNHSGn_w" name="setDriverName" visibility="public">
+                <ownedParameter xmi:id="_6UUeQuO8EdyGNPaNHSGn_w" name="driverName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUeQ-O8EdyGNPaNHSGn_w" name="getLayerName" visibility="public">
+                <ownedParameter xmi:id="_6UUeROO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUeReO8EdyGNPaNHSGn_w" name="setLayerName" visibility="public">
+                <ownedParameter xmi:id="_6UUeRuO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUeR-O8EdyGNPaNHSGn_w" name="getUrl" visibility="public">
+                <ownedParameter xmi:id="_6UUeSOO8EdyGNPaNHSGn_w" name="return" type="_6Unhi-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUeSeO8EdyGNPaNHSGn_w" name="setUrl" visibility="public">
+                <ownedParameter xmi:id="_6UUeSuO8EdyGNPaNHSGn_w" name="url" type="_6Unhi-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UUeS-O8EdyGNPaNHSGn_w" name="ExtentEvent">
+              <generalization xmi:id="_6UUeTOO8EdyGNPaNHSGn_w" general="_6UKts-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUeTeO8EdyGNPaNHSGn_w" name="newExtent" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUeTuO8EdyGNPaNHSGn_w" name="EXTENT_EVENT" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UUeT-O8EdyGNPaNHSGn_w" name="createExtentEvent" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UUeUOO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UUeUeO8EdyGNPaNHSGn_w" name="return" type="_6UUeS-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUeUuO8EdyGNPaNHSGn_w" name="getNewExtent" visibility="public">
+                <ownedParameter xmi:id="_6UUeU-O8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UUeVOO8EdyGNPaNHSGn_w" name="ErrorEvent">
+              <generalization xmi:id="_6UUeVeO8EdyGNPaNHSGn_w" general="_6UKts-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUeVuO8EdyGNPaNHSGn_w" name="message" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UUeV-O8EdyGNPaNHSGn_w" name="exception" visibility="private" type="_6UnhhOO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UUeWOO8EdyGNPaNHSGn_w" name="getException" visibility="public">
+                <ownedParameter xmi:id="_6UUeWeO8EdyGNPaNHSGn_w" name="return" type="_6UnhhOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UUeWuO8EdyGNPaNHSGn_w" name="getMessage" visibility="public">
+                <ownedParameter xmi:id="_6UUeW-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UUeXOO8EdyGNPaNHSGn_w" name="core">
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUeXeO8EdyGNPaNHSGn_w" name="SLDUtils">
+                <ownedOperation xmi:id="_6UUeXuO8EdyGNPaNHSGn_w" name="convertHexStringToColor" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUeX-O8EdyGNPaNHSGn_w" name="str" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUeYOO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUeYeO8EdyGNPaNHSGn_w" name="convertColorToHexString" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUeYuO8EdyGNPaNHSGn_w" name="c" type="_6UUrM-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUeY-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUeZOO8EdyGNPaNHSGn_w" name="getWellKnownName" visibility="public">
+                  <ownedParameter xmi:id="_6UUeZeO8EdyGNPaNHSGn_w" name="symbolType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUeZuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUeZ-O8EdyGNPaNHSGn_w" name="toGeotoolsSymbol" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUeaOO8EdyGNPaNHSGn_w" name="sym" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUeaeO8EdyGNPaNHSGn_w" name="return" type="_6UUrNOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUeauO8EdyGNPaNHSGn_w" name="DefaultRow" clientDependency="_6UUebeO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UUea-O8EdyGNPaNHSGn_w" name="attributes" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUebOO8EdyGNPaNHSGn_w" name="id" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UUebeO8EdyGNPaNHSGn_w" name="IRow" supplier="_6UUekOO8EdyGNPaNHSGn_w" client="_6UUeauO8EdyGNPaNHSGn_w" contract="_6UUekOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUebuO8EdyGNPaNHSGn_w" name="defaultID">
+                  <ownedParameter xmi:id="_6UUeb-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUecOO8EdyGNPaNHSGn_w" name="getID" visibility="public">
+                  <ownedParameter xmi:id="_6UUeceO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUecuO8EdyGNPaNHSGn_w" name="getAttribute" visibility="public">
+                  <ownedParameter xmi:id="_6UUec-O8EdyGNPaNHSGn_w" name="fieldIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUedOO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUedeO8EdyGNPaNHSGn_w" name="getAttributes" visibility="public">
+                  <ownedParameter xmi:id="_6UUeduO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUed-O8EdyGNPaNHSGn_w" name="cloneRow" visibility="public">
+                  <ownedParameter xmi:id="_6UUeeOO8EdyGNPaNHSGn_w" name="return" type="_6UUekOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUeeeO8EdyGNPaNHSGn_w" name="setID" visibility="public">
+                  <ownedParameter xmi:id="_6UUeeuO8EdyGNPaNHSGn_w" name="ID" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUee-O8EdyGNPaNHSGn_w" name="setAttributes" visibility="public">
+                  <ownedParameter xmi:id="_6UUefOO8EdyGNPaNHSGn_w" name="att" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUefeO8EdyGNPaNHSGn_w" name="DefaultFeature" clientDependency="_6UUegOO8EdyGNPaNHSGn_w">
+                <generalization xmi:id="_6UUefuO8EdyGNPaNHSGn_w" general="_6UUeauO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUef-O8EdyGNPaNHSGn_w" name="theGeom" visibility="private" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UUegOO8EdyGNPaNHSGn_w" name="IFeature" supplier="_6UUetuO8EdyGNPaNHSGn_w" client="_6UUefeO8EdyGNPaNHSGn_w" contract="_6UUetuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUegeO8EdyGNPaNHSGn_w" name="getGeometry" visibility="public">
+                  <ownedParameter xmi:id="_6UUeguO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUeg-O8EdyGNPaNHSGn_w" name="cloneRow" visibility="public">
+                  <ownedParameter xmi:id="_6UUehOO8EdyGNPaNHSGn_w" name="return" type="_6UUekOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUeheO8EdyGNPaNHSGn_w" name="setGeometry" visibility="public">
+                  <ownedParameter xmi:id="_6UUehuO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUeh-O8EdyGNPaNHSGn_w" name="TextPath">
+                <ownedAttribute xmi:id="_6UUeiOO8EdyGNPaNHSGn_w" name="text" visibility="private" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUeieO8EdyGNPaNHSGn_w" name="pos" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUeiuO8EdyGNPaNHSGn_w" name="compute" visibility="private">
+                  <ownedParameter xmi:id="_6UUei-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUejOO8EdyGNPaNHSGn_w" name="path" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUejeO8EdyGNPaNHSGn_w" name="nextPosForGlyph" visibility="public">
+                  <ownedParameter xmi:id="_6UUejuO8EdyGNPaNHSGn_w" name="glyphIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUej-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUekOO8EdyGNPaNHSGn_w" name="IRow">
+                <ownedOperation xmi:id="_6UUekeO8EdyGNPaNHSGn_w" name="getID" visibility="public">
+                  <ownedParameter xmi:id="_6UUekuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUek-O8EdyGNPaNHSGn_w" name="getAttribute" visibility="public">
+                  <ownedParameter xmi:id="_6UUelOO8EdyGNPaNHSGn_w" name="fieldIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUeleO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUeluO8EdyGNPaNHSGn_w" name="getAttributes" visibility="public">
+                  <ownedParameter xmi:id="_6UUel-O8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUemOO8EdyGNPaNHSGn_w" name="setAttributes" visibility="public">
+                  <ownedParameter xmi:id="_6UUemeO8EdyGNPaNHSGn_w" name="att" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUemuO8EdyGNPaNHSGn_w" name="cloneRow" visibility="public">
+                  <ownedParameter xmi:id="_6UUem-O8EdyGNPaNHSGn_w" name="return" type="_6UUekOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUenOO8EdyGNPaNHSGn_w" name="setID" visibility="public">
+                  <ownedParameter xmi:id="_6UUeneO8EdyGNPaNHSGn_w" name="ID" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUenuO8EdyGNPaNHSGn_w" name="CartographicSupport">
+                <ownedAttribute xmi:id="_6UUen-O8EdyGNPaNHSGn_w" name="WORLD" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUeoOO8EdyGNPaNHSGn_w" name="PAPER" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUeoeO8EdyGNPaNHSGn_w" name="setUnit" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UUeouO8EdyGNPaNHSGn_w" name="unitIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUeo-O8EdyGNPaNHSGn_w" name="getUnit" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UUepOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUepeO8EdyGNPaNHSGn_w" name="getReferenceSystem" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UUepuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUep-O8EdyGNPaNHSGn_w" name="setReferenceSystem" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UUeqOO8EdyGNPaNHSGn_w" name="referenceSystem" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUeqeO8EdyGNPaNHSGn_w" name="toCartographicSize" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UUequO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUeq-O8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUerOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUereO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUeruO8EdyGNPaNHSGn_w" name="setCartographicSize" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UUer-O8EdyGNPaNHSGn_w" name="cartographicSize" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUesOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUeseO8EdyGNPaNHSGn_w" name="getCartographicSize" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UUesuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUes-O8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUetOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUeteO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUetuO8EdyGNPaNHSGn_w" name="IFeature">
+                <generalization xmi:id="_6UUet-O8EdyGNPaNHSGn_w" general="_6UUekOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUeuOO8EdyGNPaNHSGn_w" name="getGeometry">
+                  <ownedParameter xmi:id="_6UUeueO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUeuuO8EdyGNPaNHSGn_w" name="setGeometry">
+                  <ownedParameter xmi:id="_6UUeu-O8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUevOO8EdyGNPaNHSGn_w" name="SymbologyFactory">
+                <ownedAttribute xmi:id="_6UUeveO8EdyGNPaNHSGn_w" name="FactoryDefaultSymbolColor" visibility="public" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUevuO8EdyGNPaNHSGn_w" name="FactoryDefaultFillSymbolColor" visibility="public" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUev-O8EdyGNPaNHSGn_w" name="FactoryDefaultTextFont" visibility="public" type="_6UUrN-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUewOO8EdyGNPaNHSGn_w" name="FactorySymbolLibraryPath" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUeweO8EdyGNPaNHSGn_w" name="DefaultSymbolColor" visibility="public" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUewuO8EdyGNPaNHSGn_w" name="DefaultFillSymbolColor" visibility="public" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUew-O8EdyGNPaNHSGn_w" name="DefaultTextFont" visibility="public" type="_6UUrN-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUexOO8EdyGNPaNHSGn_w" name="SymbolLibraryPath" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUexeO8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUexuO8EdyGNPaNHSGn_w" name="warningSymbol" visibility="private" type="_6UUe6-O8EdyGNPaNHSGn_w" association="_6UUrQOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUex-O8EdyGNPaNHSGn_w" name="createSymbolFromXML" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUeyOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUeyeO8EdyGNPaNHSGn_w" name="defaultDescription" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUeyuO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUey-O8EdyGNPaNHSGn_w" name="createStyleFromXML" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUezOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUezeO8EdyGNPaNHSGn_w" name="defaultDescription" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUezuO8EdyGNPaNHSGn_w" name="return" type="_6UUjUOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUez-O8EdyGNPaNHSGn_w" name="createFromXML" visibility="private" isStatic="true">
+                  <ownedParameter xmi:id="_6UUe0OO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUe0eO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUe0uO8EdyGNPaNHSGn_w" name="createEmptyMultiLayerSymbol" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUe0-O8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUe1OO8EdyGNPaNHSGn_w" name="return" type="_6UUk5eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUe1eO8EdyGNPaNHSGn_w" name="createDefaultMarkerSymbol" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUe1uO8EdyGNPaNHSGn_w" name="return" type="_6UUkzuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUe1-O8EdyGNPaNHSGn_w" name="createDefaultLineSymbol" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUe2OO8EdyGNPaNHSGn_w" name="return" type="_6UUk-uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUe2eO8EdyGNPaNHSGn_w" name="toDefaultCartographicProperties" visibility="private" isStatic="true">
+                  <ownedParameter xmi:id="_6UUe2uO8EdyGNPaNHSGn_w" name="cs" type="_6UUenuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUe2-O8EdyGNPaNHSGn_w" name="createDefaultFillSymbol" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUe3OO8EdyGNPaNHSGn_w" name="return" type="_6UUlDeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUe3eO8EdyGNPaNHSGn_w" name="createDefaultTextSymbol" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUe3uO8EdyGNPaNHSGn_w" name="return" type="_6UUmTOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUe3-O8EdyGNPaNHSGn_w" name="createDefaultSymbolByShapeType" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUe4OO8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUe4eO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUe4uO8EdyGNPaNHSGn_w" name="createDefaultSymbolByShapeType" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUe4-O8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUe5OO8EdyGNPaNHSGn_w" name="color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUe5eO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUe5uO8EdyGNPaNHSGn_w" name="getWarningSymbol" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUe5-O8EdyGNPaNHSGn_w" name="message" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUe6OO8EdyGNPaNHSGn_w" name="symbolDesc" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUe6eO8EdyGNPaNHSGn_w" name="symbolDrawExceptionType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUe6uO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUe6-O8EdyGNPaNHSGn_w" name="WarningSymbol" visibility="private" clientDependency="_6UUe7-O8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UUe7OO8EdyGNPaNHSGn_w" name="desc" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUe7eO8EdyGNPaNHSGn_w" name="message" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUe7uO8EdyGNPaNHSGn_w" name="exceptionType" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UUe7-O8EdyGNPaNHSGn_w" name="ISymbol" supplier="_6UUlkuO8EdyGNPaNHSGn_w" client="_6UUe6-O8EdyGNPaNHSGn_w" contract="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUe8OO8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUe8eO8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUe8uO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                  <ownedParameter xmi:id="_6UUe8-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUe9OO8EdyGNPaNHSGn_w" name="affineTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUe9eO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUe9uO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUe9-O8EdyGNPaNHSGn_w" name="setDrawExceptionType" visibility="public">
+                  <ownedParameter xmi:id="_6UUe-OO8EdyGNPaNHSGn_w" name="symbolDrawExceptionType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUe-eO8EdyGNPaNHSGn_w" name="setMessage" visibility="public">
+                  <ownedParameter xmi:id="_6UUe-uO8EdyGNPaNHSGn_w" name="message" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUe--O8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                  <ownedParameter xmi:id="_6UUe_OO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUe_eO8EdyGNPaNHSGn_w" name="scaleInstance" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUe_uO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUe_-O8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6UUfAOO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfAeO8EdyGNPaNHSGn_w" name="getDescription" visibility="public">
+                  <ownedParameter xmi:id="_6UUfAuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfA-O8EdyGNPaNHSGn_w" name="getOnePointRgb" visibility="public">
+                  <ownedParameter xmi:id="_6UUfBOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfBeO8EdyGNPaNHSGn_w" name="getSymbolForSelection" visibility="public">
+                  <ownedParameter xmi:id="_6UUfBuO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfB-O8EdyGNPaNHSGn_w" name="getPixExtentPlus" visibility="public">
+                  <ownedParameter xmi:id="_6UUfCOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfCeO8EdyGNPaNHSGn_w" name="distances" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfCuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfC-O8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfDOO8EdyGNPaNHSGn_w" name="getSymbolType" visibility="public">
+                  <ownedParameter xmi:id="_6UUfDeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfDuO8EdyGNPaNHSGn_w" name="isShapeVisible" visibility="public">
+                  <ownedParameter xmi:id="_6UUfD-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfEOO8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public">
+                  <ownedParameter xmi:id="_6UUfEeO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfEuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfE-O8EdyGNPaNHSGn_w" name="setDescription" visibility="public">
+                  <ownedParameter xmi:id="_6UUfFOO8EdyGNPaNHSGn_w" name="desc" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfFeO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6UUfFuO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfF-O8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                  <ownedParameter xmi:id="_6UUfGOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfGeO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                  <ownedParameter xmi:id="_6UUfGuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfG-O8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfHOO8EdyGNPaNHSGn_w" name="shape" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfHeO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUfHuO8EdyGNPaNHSGn_w" name="IPrintable">
+                <ownedOperation xmi:id="_6UUfH-O8EdyGNPaNHSGn_w" name="print" visibility="public">
+                  <ownedParameter xmi:id="_6UUfIOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfIeO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfIuO8EdyGNPaNHSGn_w" name="shape" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfI-O8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUfJOO8EdyGNPaNHSGn_w" name="ISLDCompatible">
+                <ownedOperation xmi:id="_6UUfJeO8EdyGNPaNHSGn_w" name="toSLD" visibility="public">
+                  <ownedParameter xmi:id="_6UUfJuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfJ-O8EdyGNPaNHSGn_w" name="fromSLD" visibility="public">
+                  <ownedParameter xmi:id="_6UUfKOO8EdyGNPaNHSGn_w" name="sld" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfKeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUfKuO8EdyGNPaNHSGn_w" name="CartographicSupportToolkit">
+                <ownedAttribute xmi:id="_6UUfK-O8EdyGNPaNHSGn_w" name="DefaultMeasureUnit" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfLOO8EdyGNPaNHSGn_w" name="DefaultReferenceSystem" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUfLeO8EdyGNPaNHSGn_w" name="getCartographicLength" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUfLuO8EdyGNPaNHSGn_w" name="cartographicElement" type="_6UUenuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfL-O8EdyGNPaNHSGn_w" name="length" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfMOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfMeO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfMuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUfM-O8EdyGNPaNHSGn_w" name="SLDTags">
+                <ownedAttribute xmi:id="_6UUfNOO8EdyGNPaNHSGn_w" name="SLD_ROOT" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfNeO8EdyGNPaNHSGn_w" name="VERSION_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfNuO8EdyGNPaNHSGn_w" name="VERSION_1_0_0" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfN-O8EdyGNPaNHSGn_w" name="NAMEDLAYER" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfOOO8EdyGNPaNHSGn_w" name="NAME" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfOeO8EdyGNPaNHSGn_w" name="TITLE" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfOuO8EdyGNPaNHSGn_w" name="ABSTRACT" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfO-O8EdyGNPaNHSGn_w" name="USERSTYLE" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfPOO8EdyGNPaNHSGn_w" name="FEATURETYPESTYLE" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfPeO8EdyGNPaNHSGn_w" name="FEATURETYPENAME" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfPuO8EdyGNPaNHSGn_w" name="SEMANTICTYPEIDENTIFIER" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfP-O8EdyGNPaNHSGn_w" name="RULE" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfQOO8EdyGNPaNHSGn_w" name="FILTER" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfQeO8EdyGNPaNHSGn_w" name="PROPERTYISEQUALTO" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfQuO8EdyGNPaNHSGn_w" name="PROPERTYISNOTEQUALTO" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfQ-O8EdyGNPaNHSGn_w" name="PROPERTYISLESSTHAN" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfROO8EdyGNPaNHSGn_w" name="PROPERTYISLESSOREQUALTHAN" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfReO8EdyGNPaNHSGn_w" name="PROPERTYISGREATERTHAN" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfRuO8EdyGNPaNHSGn_w" name="PROPERTYISGREATEROREQUALTHAN" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfR-O8EdyGNPaNHSGn_w" name="PROPERTYISLIKE" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfSOO8EdyGNPaNHSGn_w" name="PROPERTYISNULL" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfSeO8EdyGNPaNHSGn_w" name="PROPERTYISBETWEEN" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfSuO8EdyGNPaNHSGn_w" name="PROPERTYFEATUREID" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfS-O8EdyGNPaNHSGn_w" name="PROPERTYNAME" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfTOO8EdyGNPaNHSGn_w" name="EQUALS" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfTeO8EdyGNPaNHSGn_w" name="DISJOINT" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfTuO8EdyGNPaNHSGn_w" name="INTERSECTS" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfT-O8EdyGNPaNHSGn_w" name="TOUCHES" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfUOO8EdyGNPaNHSGn_w" name="CROSSES" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfUeO8EdyGNPaNHSGn_w" name="WITHIN" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfUuO8EdyGNPaNHSGn_w" name="CONTAINS" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfU-O8EdyGNPaNHSGn_w" name="OVERLAPS" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfVOO8EdyGNPaNHSGn_w" name="BEYOND" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfVeO8EdyGNPaNHSGn_w" name="BBOX" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfVuO8EdyGNPaNHSGn_w" name="AND" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfV-O8EdyGNPaNHSGn_w" name="NOT" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfWOO8EdyGNPaNHSGn_w" name="OR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfWeO8EdyGNPaNHSGn_w" name="LITERAL" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfWuO8EdyGNPaNHSGn_w" name="LITERAL_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfW-O8EdyGNPaNHSGn_w" name="LINESYMBOLIZER" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfXOO8EdyGNPaNHSGn_w" name="POINTSYMBOLIZER" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfXeO8EdyGNPaNHSGn_w" name="TEXTSYMBOLIZER" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfXuO8EdyGNPaNHSGn_w" name="POLYGONSYMBOLIZER" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfX-O8EdyGNPaNHSGn_w" name="RASTERSYMBOLIZER" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfYOO8EdyGNPaNHSGn_w" name="GEOMETRY" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfYeO8EdyGNPaNHSGn_w" name="CSSPARAMETER" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfYuO8EdyGNPaNHSGn_w" name="NAME_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfY-O8EdyGNPaNHSGn_w" name="FILL" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfZOO8EdyGNPaNHSGn_w" name="FILL_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfZeO8EdyGNPaNHSGn_w" name="FILLOPACITY_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfZuO8EdyGNPaNHSGn_w" name="STROKE" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfZ-O8EdyGNPaNHSGn_w" name="STROKE_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfaOO8EdyGNPaNHSGn_w" name="STROKE_WIDTH_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfaeO8EdyGNPaNHSGn_w" name="STROKE_OPACITY_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfauO8EdyGNPaNHSGn_w" name="SIZE" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfa-O8EdyGNPaNHSGn_w" name="MARK" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfbOO8EdyGNPaNHSGn_w" name="GRAPHIC" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfbeO8EdyGNPaNHSGn_w" name="EXTERNALGRAPHIC" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfbuO8EdyGNPaNHSGn_w" name="LEGENDGRAPHIC" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfb-O8EdyGNPaNHSGn_w" name="GRAPHICFILL" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfcOO8EdyGNPaNHSGn_w" name="GRAPHICSTROKE" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfceO8EdyGNPaNHSGn_w" name="LABEL" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfcuO8EdyGNPaNHSGn_w" name="LABELPLACEMENT" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfc-O8EdyGNPaNHSGn_w" name="FONT" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfdOO8EdyGNPaNHSGn_w" name="FONTFAMILY_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfdeO8EdyGNPaNHSGn_w" name="FONTSTYLE_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfduO8EdyGNPaNHSGn_w" name="FONTSIZE_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfd-O8EdyGNPaNHSGn_w" name="FONTWEIGHT_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfeOO8EdyGNPaNHSGn_w" name="DISPLACEMENT_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfeeO8EdyGNPaNHSGn_w" name="WELLKNOWNNAME" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfeuO8EdyGNPaNHSGn_w" name="FORMAT" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfe-O8EdyGNPaNHSGn_w" name="OVERLAPBEHAVIOR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUffOO8EdyGNPaNHSGn_w" name="OPACITY" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUffeO8EdyGNPaNHSGn_w" name="COLORMAP" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUffuO8EdyGNPaNHSGn_w" name="MINSCALEDENOMINATOR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUff-O8EdyGNPaNHSGn_w" name="MAXSCALEDENOMINATOR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfgOO8EdyGNPaNHSGn_w" name="ELSEFILTER" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfgeO8EdyGNPaNHSGn_w" name="HALO" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfguO8EdyGNPaNHSGn_w" name="PRIORITY_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfg-O8EdyGNPaNHSGn_w" name="VENDOROPTION_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfhOO8EdyGNPaNHSGn_w" name="FID_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfheO8EdyGNPaNHSGn_w" name="LOWERBOUNDARY" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfhuO8EdyGNPaNHSGn_w" name="UPPERBOUNDARY" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfh-O8EdyGNPaNHSGn_w" name="WILDCARD_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfiOO8EdyGNPaNHSGn_w" name="SINGLECHAR_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfieO8EdyGNPaNHSGn_w" name="ESCAPECHAR_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfiuO8EdyGNPaNHSGn_w" name="ESCAPE_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfi-O8EdyGNPaNHSGn_w" name="ROTATION_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfjOO8EdyGNPaNHSGn_w" name="WIDTH_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfjeO8EdyGNPaNHSGn_w" name="LINECAP_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfjuO8EdyGNPaNHSGn_w" name="STROKE_LINECAP_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfj-O8EdyGNPaNHSGn_w" name="LINEJOIN_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfkOO8EdyGNPaNHSGn_w" name="STROKE_LINEJOIN_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfkeO8EdyGNPaNHSGn_w" name="DASHARRAY_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfkuO8EdyGNPaNHSGn_w" name="STROKE_DASHARRAY_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfk-O8EdyGNPaNHSGn_w" name="DASHOFFSET_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUflOO8EdyGNPaNHSGn_w" name="STROKE_DASHOFFSET_ATTR" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUfleO8EdyGNPaNHSGn_w" name="ILabelable">
+                <ownedOperation xmi:id="_6UUfluO8EdyGNPaNHSGn_w" name="isLabeled" visibility="public">
+                  <ownedParameter xmi:id="_6UUfl-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfmOO8EdyGNPaNHSGn_w" name="setIsLabeled" visibility="public">
+                  <ownedParameter xmi:id="_6UUfmeO8EdyGNPaNHSGn_w" name="isLabeled" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfmuO8EdyGNPaNHSGn_w" name="getLabelingStrategy" visibility="public">
+                  <ownedParameter xmi:id="_6UUfm-O8EdyGNPaNHSGn_w" name="return" type="_6UncoOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfnOO8EdyGNPaNHSGn_w" name="setLabelingStrategy" visibility="public">
+                  <ownedParameter xmi:id="_6UUfneO8EdyGNPaNHSGn_w" name="strategy" type="_6UncoOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfnuO8EdyGNPaNHSGn_w" name="drawLabels" visibility="public">
+                  <ownedParameter xmi:id="_6UUfn-O8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfoOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfoeO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfouO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfo-O8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfpOO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUfpeO8EdyGNPaNHSGn_w" name="Gt2Geometry">
+                <generalization xmi:id="_6UUfpuO8EdyGNPaNHSGn_w" general="_6UUrOuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfp-O8EdyGNPaNHSGn_w" name="serialVersionUID" visibility="private" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUfqOO8EdyGNPaNHSGn_w" name="shp" visibility="private" type="_6UUgz-O8EdyGNPaNHSGn_w" association="_6UUrQuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUfqeO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                  <ownedParameter xmi:id="_6UUfquO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfq-O8EdyGNPaNHSGn_w" name="vp" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfrOO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfreO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfruO8EdyGNPaNHSGn_w" name="transform" visibility="public">
+                  <ownedParameter xmi:id="_6UUfr-O8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfsOO8EdyGNPaNHSGn_w" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_6UUfseO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfsuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfs-O8EdyGNPaNHSGn_w" name="getBounds2D" visibility="public">
+                  <ownedParameter xmi:id="_6UUftOO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfteO8EdyGNPaNHSGn_w" name="toJTSGeometry" visibility="public">
+                  <ownedParameter xmi:id="_6UUftuO8EdyGNPaNHSGn_w" name="return" type="_6UUrO-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUft-O8EdyGNPaNHSGn_w" name="createLabels" visibility="public">
+                  <ownedParameter xmi:id="_6UUfuOO8EdyGNPaNHSGn_w" name="position" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfueO8EdyGNPaNHSGn_w" name="duplicates" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfuuO8EdyGNPaNHSGn_w" name="return" type="_6UUpfOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfu-O8EdyGNPaNHSGn_w" name="getGeometryType" visibility="public">
+                  <ownedParameter xmi:id="_6UUfvOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfveO8EdyGNPaNHSGn_w" name="cloneGeometry" visibility="public">
+                  <ownedParameter xmi:id="_6UUfvuO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfv-O8EdyGNPaNHSGn_w" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_6UUfwOO8EdyGNPaNHSGn_w" name="ct" type="_6UnhkOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfweO8EdyGNPaNHSGn_w" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_6UUfwuO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfw-O8EdyGNPaNHSGn_w" name="return" type="_6UUrPOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfxOO8EdyGNPaNHSGn_w" name="fastIntersects" visibility="public">
+                  <ownedParameter xmi:id="_6UUfxeO8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfxuO8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfx-O8EdyGNPaNHSGn_w" name="w" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfyOO8EdyGNPaNHSGn_w" name="h" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfyeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfyuO8EdyGNPaNHSGn_w" name="drawInts" visibility="public">
+                  <ownedParameter xmi:id="_6UUfy-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfzOO8EdyGNPaNHSGn_w" name="vp" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfzeO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUfzuO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUfz-O8EdyGNPaNHSGn_w" name="toWKB" visibility="public">
+                  <ownedParameter xmi:id="_6UUf0OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUf0eO8EdyGNPaNHSGn_w" name="getHandlers" visibility="public">
+                  <ownedParameter xmi:id="_6UUf0uO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf0-O8EdyGNPaNHSGn_w" name="return" type="_6UUrPeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUf1OO8EdyGNPaNHSGn_w" name="getPathIterator" visibility="public">
+                  <ownedParameter xmi:id="_6UUf1eO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf1uO8EdyGNPaNHSGn_w" name="flatness" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf1-O8EdyGNPaNHSGn_w" name="return" type="_6UUrPOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUf2OO8EdyGNPaNHSGn_w" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_6UUf2eO8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf2uO8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf2-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUf3OO8EdyGNPaNHSGn_w" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_6UUf3eO8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf3uO8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf3-O8EdyGNPaNHSGn_w" name="w" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf4OO8EdyGNPaNHSGn_w" name="h" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf4eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUf4uO8EdyGNPaNHSGn_w" name="intersects" visibility="public">
+                  <ownedParameter xmi:id="_6UUf4-O8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf5OO8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf5eO8EdyGNPaNHSGn_w" name="w" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf5uO8EdyGNPaNHSGn_w" name="h" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf5-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUf6OO8EdyGNPaNHSGn_w" name="getBounds" visibility="public">
+                  <ownedParameter xmi:id="_6UUf6eO8EdyGNPaNHSGn_w" name="return" type="_6UUrOeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUf6uO8EdyGNPaNHSGn_w" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_6UUf6-O8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf7OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUf7eO8EdyGNPaNHSGn_w" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_6UUf7uO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf7-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUf8OO8EdyGNPaNHSGn_w" name="getInternalShape" visibility="public">
+                  <ownedParameter xmi:id="_6UUf8eO8EdyGNPaNHSGn_w" name="return" type="_6UUrPuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUf8uO8EdyGNPaNHSGn_w" name="drawInts" visibility="public">
+                  <ownedParameter xmi:id="_6UUf8-O8EdyGNPaNHSGn_w" name="graphics2D" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf9OO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf9eO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf9uO8EdyGNPaNHSGn_w" name="cartographicSymbol" type="_6UUenuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf9-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUf-OO8EdyGNPaNHSGn_w" name="isSimple" visibility="public">
+                  <ownedParameter xmi:id="_6UUf-eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUf-uO8EdyGNPaNHSGn_w" name="ICanReproject">
+                <ownedOperation xmi:id="_6UUf--O8EdyGNPaNHSGn_w" name="getSourceProjection">
+                  <ownedParameter xmi:id="_6UUf_OO8EdyGNPaNHSGn_w" name="conn" type="_6UUto-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf_eO8EdyGNPaNHSGn_w" name="lyrDef" type="_6UUsSeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUf_uO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUf_-O8EdyGNPaNHSGn_w" name="getDestProjection">
+                  <ownedParameter xmi:id="_6UUgAOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUgAeO8EdyGNPaNHSGn_w" name="setDestProjection">
+                  <ownedParameter xmi:id="_6UUgAuO8EdyGNPaNHSGn_w" name="toEPSG" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUgA-O8EdyGNPaNHSGn_w" name="canReproject">
+                  <ownedParameter xmi:id="_6UUgBOO8EdyGNPaNHSGn_w" name="toEPSGdestinyProjection" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUgBeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UUgBuO8EdyGNPaNHSGn_w" name="adapter">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUgB-O8EdyGNPaNHSGn_w" name="PolyLineAdapter">
+                  <generalization xmi:id="_6UUgCOO8EdyGNPaNHSGn_w" general="_6UUgQ-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgCeO8EdyGNPaNHSGn_w" name="pointPosition" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgCuO8EdyGNPaNHSGn_w" name="identity" visibility="private" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUgC-O8EdyGNPaNHSGn_w" name="obtainShape" visibility="public">
+                    <ownedParameter xmi:id="_6UUgDOO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgDeO8EdyGNPaNHSGn_w" name="getShape" visibility="public">
+                    <ownedParameter xmi:id="_6UUgDuO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgD-O8EdyGNPaNHSGn_w" name="return" type="_6UUrNuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgEOO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUgEeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgEuO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgE-O8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgFOO8EdyGNPaNHSGn_w" name="paint" visibility="public">
+                    <ownedParameter xmi:id="_6UUgFeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgFuO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgF-O8EdyGNPaNHSGn_w" name="andLastPoint" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgGOO8EdyGNPaNHSGn_w" name="pointPosition" visibility="public">
+                    <ownedParameter xmi:id="_6UUgGeO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUgGuO8EdyGNPaNHSGn_w" name="CircleAdapter">
+                  <generalization xmi:id="_6UUgG-O8EdyGNPaNHSGn_w" general="_6UUgQ-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgHOO8EdyGNPaNHSGn_w" name="pointPosition" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgHeO8EdyGNPaNHSGn_w" name="identity" visibility="private" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUgHuO8EdyGNPaNHSGn_w" name="getShape" visibility="public">
+                    <ownedParameter xmi:id="_6UUgH-O8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgIOO8EdyGNPaNHSGn_w" name="return" type="_6UUrNuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgIeO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUgIuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgI-O8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgJOO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgJeO8EdyGNPaNHSGn_w" name="paint" visibility="public">
+                    <ownedParameter xmi:id="_6UUgJuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgJ-O8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgKOO8EdyGNPaNHSGn_w" name="andLastPoint" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgKeO8EdyGNPaNHSGn_w" name="pointPosition" visibility="public">
+                    <ownedParameter xmi:id="_6UUgKuO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgK-O8EdyGNPaNHSGn_w" name="obtainShape" visibility="public">
+                    <ownedParameter xmi:id="_6UUgLOO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUgLeO8EdyGNPaNHSGn_w" name="PointAdapter">
+                  <generalization xmi:id="_6UUgLuO8EdyGNPaNHSGn_w" general="_6UUgB-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUgL-O8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUgMOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgMeO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgMuO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgM-O8EdyGNPaNHSGn_w" name="getShape" visibility="public">
+                    <ownedParameter xmi:id="_6UUgNOO8EdyGNPaNHSGn_w" name="return" type="_6UUrNuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUgNeO8EdyGNPaNHSGn_w" name="RectangleAdapter">
+                  <generalization xmi:id="_6UUgNuO8EdyGNPaNHSGn_w" general="_6UUgOeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUgN-O8EdyGNPaNHSGn_w" name="obtainShape" visibility="public">
+                    <ownedParameter xmi:id="_6UUgOOO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUgOeO8EdyGNPaNHSGn_w" name="PolygonAdapter">
+                  <generalization xmi:id="_6UUgOuO8EdyGNPaNHSGn_w" general="_6UUgB-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUgO-O8EdyGNPaNHSGn_w" name="obtainShape" visibility="public">
+                    <ownedParameter xmi:id="_6UUgPOO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgPeO8EdyGNPaNHSGn_w" name="getShape" visibility="public">
+                    <ownedParameter xmi:id="_6UUgPuO8EdyGNPaNHSGn_w" name="return" type="_6UUrNuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgP-O8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUgQOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgQeO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgQuO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUgQ-O8EdyGNPaNHSGn_w" name="GeometryAdapter">
+                  <ownedAttribute xmi:id="_6UUgROO8EdyGNPaNHSGn_w" name="points" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgReO8EdyGNPaNHSGn_w" name="shape" visibility="private" type="_6UUgc-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUgRuO8EdyGNPaNHSGn_w" name="addPoint" visibility="public">
+                    <ownedParameter xmi:id="_6UUgR-O8EdyGNPaNHSGn_w" name="point" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgSOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgSeO8EdyGNPaNHSGn_w" name="end" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUgSuO8EdyGNPaNHSGn_w" name="setGPX" visibility="protected">
+                    <ownedParameter xmi:id="_6UUgS-O8EdyGNPaNHSGn_w" name="gpx" type="_6UUgc-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgTOO8EdyGNPaNHSGn_w" name="getGPX" visibility="protected">
+                    <ownedParameter xmi:id="_6UUgTeO8EdyGNPaNHSGn_w" name="return" type="_6UUgc-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgTuO8EdyGNPaNHSGn_w" name="obtainShape" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUgT-O8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgUOO8EdyGNPaNHSGn_w" name="applyTransform" visibility="public">
+                    <ownedParameter xmi:id="_6UUgUeO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgUuO8EdyGNPaNHSGn_w" name="draw" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUgU-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgVOO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgVeO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgVuO8EdyGNPaNHSGn_w" name="paint" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUgV-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgWOO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgWeO8EdyGNPaNHSGn_w" name="andLastPoint" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgWuO8EdyGNPaNHSGn_w" name="pointPosition" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUgW-O8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgXOO8EdyGNPaNHSGn_w" name="getShape" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUgXeO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgXuO8EdyGNPaNHSGn_w" name="return" type="_6UUrNuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgX-O8EdyGNPaNHSGn_w" name="getPoints" visibility="public">
+                    <ownedParameter xmi:id="_6UUgYOO8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgYeO8EdyGNPaNHSGn_w" name="drawVertex" visibility="public">
+                    <ownedParameter xmi:id="_6UUgYuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgY-O8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgZOO8EdyGNPaNHSGn_w" name="changePoint" visibility="public">
+                    <ownedParameter xmi:id="_6UUgZeO8EdyGNPaNHSGn_w" name="pos" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgZuO8EdyGNPaNHSGn_w" name="point" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgZ-O8EdyGNPaNHSGn_w" name="setPoints" visibility="public">
+                    <ownedParameter xmi:id="_6UUgaOO8EdyGNPaNHSGn_w" name="points" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgaeO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUgauO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUga-O8EdyGNPaNHSGn_w" name="createFromXML" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUgbOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgbeO8EdyGNPaNHSGn_w" name="return" type="_6UUgQ-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgbuO8EdyGNPaNHSGn_w" name="delLastPoint" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUgb-O8EdyGNPaNHSGn_w" name="cloneAdapter" visibility="public">
+                    <ownedParameter xmi:id="_6UUgcOO8EdyGNPaNHSGn_w" name="return" type="_6UUgQ-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgceO8EdyGNPaNHSGn_w" name="getBounds2D" visibility="public">
+                    <ownedParameter xmi:id="_6UUgcuO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUgc-O8EdyGNPaNHSGn_w" name="GeneralPathX"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UUgdOO8EdyGNPaNHSGn_w" name="gt2">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUgdeO8EdyGNPaNHSGn_w" name="GeomCollectionIterator">
+                  <generalization xmi:id="_6UUgduO8EdyGNPaNHSGn_w" general="_6UUhKeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgd-O8EdyGNPaNHSGn_w" name="at" visibility="private" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgeOO8EdyGNPaNHSGn_w" name="gc" visibility="private" type="_6UUiQ-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgeeO8EdyGNPaNHSGn_w" name="currentGeom" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgeuO8EdyGNPaNHSGn_w" name="currentIterator" visibility="private" type="_6UUrPOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUge-O8EdyGNPaNHSGn_w" name="done" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgfOO8EdyGNPaNHSGn_w" name="generalize" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgfeO8EdyGNPaNHSGn_w" name="maxDistance" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgfuO8EdyGNPaNHSGn_w" name="lineIterator" visibility="private" type="_6UUgluO8EdyGNPaNHSGn_w" association="_6UUiS-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUgf-O8EdyGNPaNHSGn_w" name="init" visibility="public">
+                    <ownedParameter xmi:id="_6UUggOO8EdyGNPaNHSGn_w" name="gc" type="_6UUiQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUggeO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgguO8EdyGNPaNHSGn_w" name="generalize" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgg-O8EdyGNPaNHSGn_w" name="maxDistance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUghOO8EdyGNPaNHSGn_w" name="setMaxDistance" visibility="public">
+                    <ownedParameter xmi:id="_6UUgheO8EdyGNPaNHSGn_w" name="distance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUghuO8EdyGNPaNHSGn_w" name="getMaxDistance" visibility="public">
+                    <ownedParameter xmi:id="_6UUgh-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgiOO8EdyGNPaNHSGn_w" name="getIterator" visibility="private">
+                    <ownedParameter xmi:id="_6UUgieO8EdyGNPaNHSGn_w" name="g" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgiuO8EdyGNPaNHSGn_w" name="return" type="_6UUhKeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgi-O8EdyGNPaNHSGn_w" name="currentSegment" visibility="public">
+                    <ownedParameter xmi:id="_6UUgjOO8EdyGNPaNHSGn_w" name="coords" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgjeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgjuO8EdyGNPaNHSGn_w" name="currentSegment" visibility="public">
+                    <ownedParameter xmi:id="_6UUgj-O8EdyGNPaNHSGn_w" name="coords" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgkOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgkeO8EdyGNPaNHSGn_w" name="getWindingRule" visibility="public">
+                    <ownedParameter xmi:id="_6UUgkuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgk-O8EdyGNPaNHSGn_w" name="isDone" visibility="public">
+                    <ownedParameter xmi:id="_6UUglOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgleO8EdyGNPaNHSGn_w" name="next" visibility="public"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUgluO8EdyGNPaNHSGn_w" name="LineIterator">
+                  <generalization xmi:id="_6UUgl-O8EdyGNPaNHSGn_w" general="_6UUhKeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgmOO8EdyGNPaNHSGn_w" name="at" visibility="private" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgmeO8EdyGNPaNHSGn_w" name="coordinates" visibility="private" type="_6UUiROO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgmuO8EdyGNPaNHSGn_w" name="currentCoord" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgm-O8EdyGNPaNHSGn_w" name="oldX" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgnOO8EdyGNPaNHSGn_w" name="oldY" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgneO8EdyGNPaNHSGn_w" name="done" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgnuO8EdyGNPaNHSGn_w" name="isClosed" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgn-O8EdyGNPaNHSGn_w" name="generalize" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgoOO8EdyGNPaNHSGn_w" name="maxDistance" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgoeO8EdyGNPaNHSGn_w" name="xScale" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgouO8EdyGNPaNHSGn_w" name="yScale" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgo-O8EdyGNPaNHSGn_w" name="coordinateCount" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgpOO8EdyGNPaNHSGn_w" name="NO_TRANSFORM" visibility="private" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUgpeO8EdyGNPaNHSGn_w" name="init" visibility="public">
+                    <ownedParameter xmi:id="_6UUgpuO8EdyGNPaNHSGn_w" name="ls" type="_6UUiReO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgp-O8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgqOO8EdyGNPaNHSGn_w" name="generalize" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgqeO8EdyGNPaNHSGn_w" name="maxDistance" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgquO8EdyGNPaNHSGn_w" name="xScale" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgq-O8EdyGNPaNHSGn_w" name="yScale" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgrOO8EdyGNPaNHSGn_w" name="init" visibility="public">
+                    <ownedParameter xmi:id="_6UUgreO8EdyGNPaNHSGn_w" name="ls" type="_6UUiReO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgruO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgr-O8EdyGNPaNHSGn_w" name="generalize" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgsOO8EdyGNPaNHSGn_w" name="maxDistance" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgseO8EdyGNPaNHSGn_w" name="_init" visibility="private">
+                    <ownedParameter xmi:id="_6UUgsuO8EdyGNPaNHSGn_w" name="ls" type="_6UUiReO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgs-O8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgtOO8EdyGNPaNHSGn_w" name="generalize" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgteO8EdyGNPaNHSGn_w" name="maxDistance" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgtuO8EdyGNPaNHSGn_w" name="setMaxDistance" visibility="public">
+                    <ownedParameter xmi:id="_6UUgt-O8EdyGNPaNHSGn_w" name="distance" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUguOO8EdyGNPaNHSGn_w" name="getMaxDistance" visibility="public">
+                    <ownedParameter xmi:id="_6UUgueO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUguuO8EdyGNPaNHSGn_w" name="getWindingRule" visibility="public">
+                    <ownedParameter xmi:id="_6UUgu-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgvOO8EdyGNPaNHSGn_w" name="isDone" visibility="public">
+                    <ownedParameter xmi:id="_6UUgveO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgvuO8EdyGNPaNHSGn_w" name="next" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUgv-O8EdyGNPaNHSGn_w" name="currentSegment" visibility="public">
+                    <ownedParameter xmi:id="_6UUgwOO8EdyGNPaNHSGn_w" name="coords" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgweO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUgwuO8EdyGNPaNHSGn_w" name="PointIterator">
+                  <generalization xmi:id="_6UUgw-O8EdyGNPaNHSGn_w" general="_6UUhKeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgxOO8EdyGNPaNHSGn_w" name="at" visibility="private" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgxeO8EdyGNPaNHSGn_w" name="point" visibility="private" type="_6UUiRuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUgxuO8EdyGNPaNHSGn_w" name="done" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUgx-O8EdyGNPaNHSGn_w" name="getWindingRule" visibility="public">
+                    <ownedParameter xmi:id="_6UUgyOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgyeO8EdyGNPaNHSGn_w" name="next" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUgyuO8EdyGNPaNHSGn_w" name="isDone" visibility="public">
+                    <ownedParameter xmi:id="_6UUgy-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUgzOO8EdyGNPaNHSGn_w" name="currentSegment" visibility="public">
+                    <ownedParameter xmi:id="_6UUgzeO8EdyGNPaNHSGn_w" name="coords" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUgzuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUgz-O8EdyGNPaNHSGn_w" name="FLiteShape">
+                  <ownedAttribute xmi:id="_6UUg0OO8EdyGNPaNHSGn_w" name="geometry" visibility="private" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUg0eO8EdyGNPaNHSGn_w" name="affineTransform" visibility="private" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUg0uO8EdyGNPaNHSGn_w" name="generalize" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUg0-O8EdyGNPaNHSGn_w" name="maxDistance" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUg1OO8EdyGNPaNHSGn_w" name="lineIterator" visibility="private" type="_6UUgluO8EdyGNPaNHSGn_w" association="_6UUiTeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUg1eO8EdyGNPaNHSGn_w" name="collIterator" visibility="private" type="_6UUgdeO8EdyGNPaNHSGn_w" association="_6UUiT-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUg1uO8EdyGNPaNHSGn_w" name="xScale" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUg1-O8EdyGNPaNHSGn_w" name="yScale" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUg2OO8EdyGNPaNHSGn_w" name="geomFac" visibility="private" type="_6UUiR-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUg2eO8EdyGNPaNHSGn_w" name="mathTransform" visibility="private" type="_6UUiSOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUg2uO8EdyGNPaNHSGn_w" name="IDENTITY" visibility="private" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUg2-O8EdyGNPaNHSGn_w" name="transformGeometry" visibility="private">
+                    <ownedParameter xmi:id="_6UUg3OO8EdyGNPaNHSGn_w" name="geometry" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUg3eO8EdyGNPaNHSGn_w" name="getGeometryFactory" visibility="private">
+                    <ownedParameter xmi:id="_6UUg3uO8EdyGNPaNHSGn_w" name="return" type="_6UUiR-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUg3-O8EdyGNPaNHSGn_w" name="setGeometry" visibility="public">
+                    <ownedParameter xmi:id="_6UUg4OO8EdyGNPaNHSGn_w" name="g" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUg4eO8EdyGNPaNHSGn_w" name="transform" visibility="public">
+                    <ownedParameter xmi:id="_6UUg4uO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUg4-O8EdyGNPaNHSGn_w" name="contains" visibility="public">
+                    <ownedParameter xmi:id="_6UUg5OO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUg5eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUg5uO8EdyGNPaNHSGn_w" name="contains" visibility="public">
+                    <ownedParameter xmi:id="_6UUg5-O8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUg6OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUg6eO8EdyGNPaNHSGn_w" name="contains" visibility="public">
+                    <ownedParameter xmi:id="_6UUg6uO8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUg6-O8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUg7OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUg7eO8EdyGNPaNHSGn_w" name="contains" visibility="public">
+                    <ownedParameter xmi:id="_6UUg7uO8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUg7-O8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUg8OO8EdyGNPaNHSGn_w" name="w" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUg8eO8EdyGNPaNHSGn_w" name="h" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUg8uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUg8-O8EdyGNPaNHSGn_w" name="getBounds" visibility="public">
+                    <ownedParameter xmi:id="_6UUg9OO8EdyGNPaNHSGn_w" name="return" type="_6UUrOeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUg9eO8EdyGNPaNHSGn_w" name="getBounds2D" visibility="public">
+                    <ownedParameter xmi:id="_6UUg9uO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUg9-O8EdyGNPaNHSGn_w" name="getPathIterator" visibility="public">
+                    <ownedParameter xmi:id="_6UUg-OO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUg-eO8EdyGNPaNHSGn_w" name="return" type="_6UUrPOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUg-uO8EdyGNPaNHSGn_w" name="getPathIterator" visibility="public">
+                    <ownedParameter xmi:id="_6UUg--O8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUg_OO8EdyGNPaNHSGn_w" name="flatness" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUg_eO8EdyGNPaNHSGn_w" name="return" type="_6UUrPOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUg_uO8EdyGNPaNHSGn_w" name="intersects" visibility="public">
+                    <ownedParameter xmi:id="_6UUg_-O8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhAOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhAeO8EdyGNPaNHSGn_w" name="intersects" visibility="public">
+                    <ownedParameter xmi:id="_6UUhAuO8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhA-O8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhBOO8EdyGNPaNHSGn_w" name="w" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhBeO8EdyGNPaNHSGn_w" name="h" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhBuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhB-O8EdyGNPaNHSGn_w" name="rectangleToGeometry" visibility="private">
+                    <ownedParameter xmi:id="_6UUhCOO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhCeO8EdyGNPaNHSGn_w" name="return" type="_6UUrO-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhCuO8EdyGNPaNHSGn_w" name="createRectangle" visibility="private">
+                    <ownedParameter xmi:id="_6UUhC-O8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhDOO8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhDeO8EdyGNPaNHSGn_w" name="w" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhDuO8EdyGNPaNHSGn_w" name="h" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhD-O8EdyGNPaNHSGn_w" name="return" type="_6UUrO-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhEOO8EdyGNPaNHSGn_w" name="getAffineTransform" visibility="public">
+                    <ownedParameter xmi:id="_6UUhEeO8EdyGNPaNHSGn_w" name="return" type="_6Unhh-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhEuO8EdyGNPaNHSGn_w" name="getMathTransform" visibility="public">
+                    <ownedParameter xmi:id="_6UUhE-O8EdyGNPaNHSGn_w" name="return" type="_6UUiSOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhFOO8EdyGNPaNHSGn_w" name="getGeometry" visibility="public">
+                    <ownedParameter xmi:id="_6UUhFeO8EdyGNPaNHSGn_w" name="return" type="_6UUrO-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhFuO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                    <ownedParameter xmi:id="_6UUhF-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhGOO8EdyGNPaNHSGn_w" name="cloneFShape" visibility="public">
+                    <ownedParameter xmi:id="_6UUhGeO8EdyGNPaNHSGn_w" name="return" type="_6UUrNuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhGuO8EdyGNPaNHSGn_w" name="reProject" visibility="public">
+                    <ownedParameter xmi:id="_6UUhG-O8EdyGNPaNHSGn_w" name="ct" type="_6UnhkOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhHOO8EdyGNPaNHSGn_w" name="getStretchingHandlers" visibility="public">
+                    <ownedParameter xmi:id="_6UUhHeO8EdyGNPaNHSGn_w" name="return" type="_6UUrPeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhHuO8EdyGNPaNHSGn_w" name="getSelectHandlers" visibility="public">
+                    <ownedParameter xmi:id="_6UUhH-O8EdyGNPaNHSGn_w" name="return" type="_6UUrPeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUhIOO8EdyGNPaNHSGn_w" name="PointHandler">
+                  <generalization xmi:id="_6UUhIeO8EdyGNPaNHSGn_w" general="_6UUiSeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUhIuO8EdyGNPaNHSGn_w" name="c" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUhI-O8EdyGNPaNHSGn_w" name="move" visibility="public">
+                    <ownedParameter xmi:id="_6UUhJOO8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhJeO8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhJuO8EdyGNPaNHSGn_w" name="set" visibility="public">
+                    <ownedParameter xmi:id="_6UUhJ-O8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhKOO8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUhKeO8EdyGNPaNHSGn_w" name="AbstractLiteIterator">
+                  <ownedAttribute xmi:id="_6UUhKuO8EdyGNPaNHSGn_w" name="LOGGER" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUhK-O8EdyGNPaNHSGn_w" name="dcoords" visibility="protected" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUhLOO8EdyGNPaNHSGn_w" name="currentSegment" visibility="public">
+                    <ownedParameter xmi:id="_6UUhLeO8EdyGNPaNHSGn_w" name="coords" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhLuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUhL-O8EdyGNPaNHSGn_w" name="PolygonIterator">
+                  <generalization xmi:id="_6UUhMOO8EdyGNPaNHSGn_w" general="_6UUhKeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUhMeO8EdyGNPaNHSGn_w" name="at" visibility="private" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUhMuO8EdyGNPaNHSGn_w" name="rings" visibility="private" type="_6UUiReO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUhM-O8EdyGNPaNHSGn_w" name="currentRing" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUhNOO8EdyGNPaNHSGn_w" name="currentCoord" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUhNeO8EdyGNPaNHSGn_w" name="coords" visibility="private" type="_6UUiROO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUhNuO8EdyGNPaNHSGn_w" name="oldCoord" visibility="private" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUhN-O8EdyGNPaNHSGn_w" name="done" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUhOOO8EdyGNPaNHSGn_w" name="generalize" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUhOeO8EdyGNPaNHSGn_w" name="maxDistance" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUhOuO8EdyGNPaNHSGn_w" name="xScale" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUhO-O8EdyGNPaNHSGn_w" name="yScale" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUhPOO8EdyGNPaNHSGn_w" name="setMaxDistance" visibility="public">
+                    <ownedParameter xmi:id="_6UUhPeO8EdyGNPaNHSGn_w" name="distance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhPuO8EdyGNPaNHSGn_w" name="getMaxDistance" visibility="public">
+                    <ownedParameter xmi:id="_6UUhP-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhQOO8EdyGNPaNHSGn_w" name="currentSegment" visibility="public">
+                    <ownedParameter xmi:id="_6UUhQeO8EdyGNPaNHSGn_w" name="coords" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhQuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhQ-O8EdyGNPaNHSGn_w" name="transform" visibility="protected">
+                    <ownedParameter xmi:id="_6UUhROO8EdyGNPaNHSGn_w" name="src" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhReO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhRuO8EdyGNPaNHSGn_w" name="dest" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhR-O8EdyGNPaNHSGn_w" name="destIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUhSOO8EdyGNPaNHSGn_w" name="numPoints" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhSeO8EdyGNPaNHSGn_w" name="getWindingRule" visibility="public">
+                    <ownedParameter xmi:id="_6UUhSuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhS-O8EdyGNPaNHSGn_w" name="isDone" visibility="public">
+                    <ownedParameter xmi:id="_6UUhTOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUhTeO8EdyGNPaNHSGn_w" name="next" visibility="public"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Package" xmi:id="_6UUhTuO8EdyGNPaNHSGn_w" name="factory">
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UUhT-O8EdyGNPaNHSGn_w" name="FactoryCreator">
+                    <generalization xmi:id="_6UUhUOO8EdyGNPaNHSGn_w" general="_6UUhgOO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUhUeO8EdyGNPaNHSGn_w" name="HINTS_ARGUMENT" visibility="private" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UUhUuO8EdyGNPaNHSGn_w" name="getServiceProvider" visibility="public">
+                      <ownedParameter xmi:id="_6UUhU-O8EdyGNPaNHSGn_w" name="category" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhVOO8EdyGNPaNHSGn_w" name="filter" type="_6UUiGeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhVeO8EdyGNPaNHSGn_w" name="hints" type="_6UUhYOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhVuO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhV-O8EdyGNPaNHSGn_w" name="createServiceProvider" visibility="protected">
+                      <ownedParameter xmi:id="_6UUhWOO8EdyGNPaNHSGn_w" name="implementation" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhWeO8EdyGNPaNHSGn_w" name="hints" type="_6UUhYOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhWuO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Interface" xmi:id="_6UUhW-O8EdyGNPaNHSGn_w" name="Factory">
+                    <ownedOperation xmi:id="_6UUhXOO8EdyGNPaNHSGn_w" name="getImplementationHints">
+                      <ownedParameter xmi:id="_6UUhXeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UUhXuO8EdyGNPaNHSGn_w" name="FactoryNotFoundException">
+                    <generalization xmi:id="_6UUhX-O8EdyGNPaNHSGn_w" general="_6UUhfuO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UUhYOO8EdyGNPaNHSGn_w" name="Hints">
+                    <generalization xmi:id="_6UUhYeO8EdyGNPaNHSGn_w" general="_6UUiGuO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUhYuO8EdyGNPaNHSGn_w" name="CRS_AUTHORITY_FACTORY" visibility="public" type="_6UUhbeO8EdyGNPaNHSGn_w" association="_6UUiK-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUhY-O8EdyGNPaNHSGn_w" name="CS_AUTHORITY_FACTORY" visibility="public" type="_6UUhbeO8EdyGNPaNHSGn_w" association="_6UUiLeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUhZOO8EdyGNPaNHSGn_w" name="DATUM_AUTHORITY_FACTORY" visibility="public" type="_6UUhbeO8EdyGNPaNHSGn_w" association="_6UUiL-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUhZeO8EdyGNPaNHSGn_w" name="CRS_FACTORY" visibility="public" type="_6UUhbeO8EdyGNPaNHSGn_w" association="_6UUiMeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUhZuO8EdyGNPaNHSGn_w" name="CS_FACTORY" visibility="public" type="_6UUhbeO8EdyGNPaNHSGn_w" association="_6UUiM-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUhZ-O8EdyGNPaNHSGn_w" name="DATUM_FACTORY" visibility="public" type="_6UUhbeO8EdyGNPaNHSGn_w" association="_6UUiNeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUhaOO8EdyGNPaNHSGn_w" name="COORDINATE_OPERATION_FACTORY" visibility="public" type="_6UUhbeO8EdyGNPaNHSGn_w" association="_6UUiN-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUhaeO8EdyGNPaNHSGn_w" name="MATH_TRANSFORM_FACTORY" visibility="public" type="_6UUhbeO8EdyGNPaNHSGn_w" association="_6UUiOeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUhauO8EdyGNPaNHSGn_w" name="GRID_COVERAGE_PROCESSOR" visibility="public" type="_6UUhbeO8EdyGNPaNHSGn_w" association="_6UUiO-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUha-O8EdyGNPaNHSGn_w" name="JAI_INSTANCE" visibility="public" type="_6UUhbeO8EdyGNPaNHSGn_w" association="_6UUiPeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUhbOO8EdyGNPaNHSGn_w" name="SAMPLE_DIMENSION_TYPE" visibility="public" type="_6UUhbeO8EdyGNPaNHSGn_w" association="_6UUiP-O8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UUhbeO8EdyGNPaNHSGn_w" name="Key">
+                    <generalization xmi:id="_6UUhbuO8EdyGNPaNHSGn_w" general="_6UUiG-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUhb-O8EdyGNPaNHSGn_w" name="byClassName" visibility="private" type="_6UKs5-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUhcOO8EdyGNPaNHSGn_w" name="className" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUhceO8EdyGNPaNHSGn_w" name="valueClass" visibility="private" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UUhcuO8EdyGNPaNHSGn_w" name="getKeyForCategory" isStatic="true">
+                      <ownedParameter xmi:id="_6UUhc-O8EdyGNPaNHSGn_w" name="type" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhdOO8EdyGNPaNHSGn_w" name="return" type="_6UUhbeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhdeO8EdyGNPaNHSGn_w" name="getValueClass" visibility="public">
+                      <ownedParameter xmi:id="_6UUhduO8EdyGNPaNHSGn_w" name="return" type="_6UUiGOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhd-O8EdyGNPaNHSGn_w" name="isCompatibleValue" visibility="public">
+                      <ownedParameter xmi:id="_6UUheOO8EdyGNPaNHSGn_w" name="value" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUheeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Interface" xmi:id="_6UUheuO8EdyGNPaNHSGn_w" name="OptionalFactory">
+                    <generalization xmi:id="_6UUhe-O8EdyGNPaNHSGn_w" general="_6UUhW-O8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UUhfOO8EdyGNPaNHSGn_w" name="isReady" visibility="public">
+                      <ownedParameter xmi:id="_6UUhfeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UUhfuO8EdyGNPaNHSGn_w" name="FactoryRegistryException">
+                    <generalization xmi:id="_6UUhf-O8EdyGNPaNHSGn_w" general="_6UUiHOO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UUhgOO8EdyGNPaNHSGn_w" name="FactoryRegistry">
+                    <generalization xmi:id="_6UUhgeO8EdyGNPaNHSGn_w" general="_6UUiHeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUhguO8EdyGNPaNHSGn_w" name="FILTER" visibility="private" type="_6UUiGeO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UUhg-O8EdyGNPaNHSGn_w" name="getServiceProviders" visibility="public">
+                      <ownedParameter xmi:id="_6UUhhOO8EdyGNPaNHSGn_w" name="category" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhheO8EdyGNPaNHSGn_w" name="return" type="_6UUiHuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhhuO8EdyGNPaNHSGn_w" name="getServiceProvider" visibility="public">
+                      <ownedParameter xmi:id="_6UUhh-O8EdyGNPaNHSGn_w" name="category" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhiOO8EdyGNPaNHSGn_w" name="filter" type="_6UUiGeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhieO8EdyGNPaNHSGn_w" name="hints" type="_6UUhYOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhiuO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhi-O8EdyGNPaNHSGn_w" name="getServiceProvider" visibility="private">
+                      <ownedParameter xmi:id="_6UUhjOO8EdyGNPaNHSGn_w" name="category" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhjeO8EdyGNPaNHSGn_w" name="implementation" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhjuO8EdyGNPaNHSGn_w" name="filter" type="_6UUiGeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhj-O8EdyGNPaNHSGn_w" name="hints" type="_6UUhYOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhkOO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhkeO8EdyGNPaNHSGn_w" name="isAcceptable" visibility="private">
+                      <ownedParameter xmi:id="_6UUhkuO8EdyGNPaNHSGn_w" name="factory" type="_6UUhW-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhk-O8EdyGNPaNHSGn_w" name="hints" type="_6UUhYOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhlOO8EdyGNPaNHSGn_w" name="alreadyDone" type="_6UnhmOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhleO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhluO8EdyGNPaNHSGn_w" name="isAcceptable" visibility="protected">
+                      <ownedParameter xmi:id="_6UUhl-O8EdyGNPaNHSGn_w" name="provider" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhmOO8EdyGNPaNHSGn_w" name="hints" type="_6UUhYOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhmeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhmuO8EdyGNPaNHSGn_w" name="getClassLoaders" visibility="public">
+                      <ownedParameter xmi:id="_6UUhm-O8EdyGNPaNHSGn_w" name="return" type="_6UnhmOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhnOO8EdyGNPaNHSGn_w" name="scanForPlugins" visibility="public"/>
+                    <ownedOperation xmi:id="_6UUhneO8EdyGNPaNHSGn_w" name="scanForPlugins" visibility="private">
+                      <ownedParameter xmi:id="_6UUhnuO8EdyGNPaNHSGn_w" name="loader" type="_6UUiH-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhn-O8EdyGNPaNHSGn_w" name="category" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhoOO8EdyGNPaNHSGn_w" name="setOrdering" visibility="public">
+                      <ownedParameter xmi:id="_6UUhoeO8EdyGNPaNHSGn_w" name="category" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhouO8EdyGNPaNHSGn_w" name="comparator" type="_6UUiIOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUho-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhpOO8EdyGNPaNHSGn_w" name="setOrdering" visibility="public">
+                      <ownedParameter xmi:id="_6UUhpeO8EdyGNPaNHSGn_w" name="base" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhpuO8EdyGNPaNHSGn_w" name="set" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhp-O8EdyGNPaNHSGn_w" name="service1" type="_6UUiGeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhqOO8EdyGNPaNHSGn_w" name="service2" type="_6UUiGeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhqeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UUhquO8EdyGNPaNHSGn_w" name="FactoryFinder">
+                    <ownedAttribute xmi:id="_6UUhq-O8EdyGNPaNHSGn_w" name="registry" visibility="private" type="_6UUhgOO8EdyGNPaNHSGn_w" association="_6UUiQeO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UUhrOO8EdyGNPaNHSGn_w" name="getServiceRegistry" visibility="private" isStatic="true">
+                      <ownedParameter xmi:id="_6UUhreO8EdyGNPaNHSGn_w" name="return" type="_6UUhgOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhruO8EdyGNPaNHSGn_w" name="addAuthorityFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUhr-O8EdyGNPaNHSGn_w" name="authority" type="_6UUiIeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhsOO8EdyGNPaNHSGn_w" name="addAuthority" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUhseO8EdyGNPaNHSGn_w" name="authority" type="_6UUiIeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhsuO8EdyGNPaNHSGn_w" name="removeAuthorityFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUhs-O8EdyGNPaNHSGn_w" name="authority" type="_6UUiIeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhtOO8EdyGNPaNHSGn_w" name="removeAuthority" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUhteO8EdyGNPaNHSGn_w" name="authority" type="_6UUiIeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhtuO8EdyGNPaNHSGn_w" name="getDatumFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUht-O8EdyGNPaNHSGn_w" name="return" type="_6UUiIuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhuOO8EdyGNPaNHSGn_w" name="getDatumFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUhueO8EdyGNPaNHSGn_w" name="hints" type="_6UUhYOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhuuO8EdyGNPaNHSGn_w" name="return" type="_6UUiIuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhu-O8EdyGNPaNHSGn_w" name="getDatumFactories" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUhvOO8EdyGNPaNHSGn_w" name="return" type="_6UnhmOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhveO8EdyGNPaNHSGn_w" name="getCSFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUhvuO8EdyGNPaNHSGn_w" name="return" type="_6UUiI-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhv-O8EdyGNPaNHSGn_w" name="getCSFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUhwOO8EdyGNPaNHSGn_w" name="hints" type="_6UUhYOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhweO8EdyGNPaNHSGn_w" name="return" type="_6UUiI-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhwuO8EdyGNPaNHSGn_w" name="getCSFactories" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUhw-O8EdyGNPaNHSGn_w" name="return" type="_6UnhmOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhxOO8EdyGNPaNHSGn_w" name="getCRSFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUhxeO8EdyGNPaNHSGn_w" name="return" type="_6UUrR-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhxuO8EdyGNPaNHSGn_w" name="getCRSFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUhx-O8EdyGNPaNHSGn_w" name="hints" type="_6UUhYOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhyOO8EdyGNPaNHSGn_w" name="return" type="_6UUrR-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhyeO8EdyGNPaNHSGn_w" name="getCRSFactories" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUhyuO8EdyGNPaNHSGn_w" name="return" type="_6UnhmOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhy-O8EdyGNPaNHSGn_w" name="next" visibility="private" isStatic="true">
+                      <ownedParameter xmi:id="_6UUhzOO8EdyGNPaNHSGn_w" name="iterator" type="_6UUiHuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhzeO8EdyGNPaNHSGn_w" name="authority" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUhzuO8EdyGNPaNHSGn_w" name="return" type="_6UUiIeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUhz-O8EdyGNPaNHSGn_w" name="getDatumAuthorityFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh0OO8EdyGNPaNHSGn_w" name="authority" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUh0eO8EdyGNPaNHSGn_w" name="return" type="_6UUiJOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh0uO8EdyGNPaNHSGn_w" name="getDatumAuthorityFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh0-O8EdyGNPaNHSGn_w" name="authority" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUh1OO8EdyGNPaNHSGn_w" name="hints" type="_6UUhYOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUh1eO8EdyGNPaNHSGn_w" name="return" type="_6UUiJOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh1uO8EdyGNPaNHSGn_w" name="getDatumAuthorityFactories" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh1-O8EdyGNPaNHSGn_w" name="return" type="_6UnhmOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh2OO8EdyGNPaNHSGn_w" name="getCSAuthorityFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh2eO8EdyGNPaNHSGn_w" name="authority" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUh2uO8EdyGNPaNHSGn_w" name="return" type="_6UUiJeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh2-O8EdyGNPaNHSGn_w" name="getCSAuthorityFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh3OO8EdyGNPaNHSGn_w" name="authority" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUh3eO8EdyGNPaNHSGn_w" name="hints" type="_6UUhYOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUh3uO8EdyGNPaNHSGn_w" name="return" type="_6UUiJeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh3-O8EdyGNPaNHSGn_w" name="getCSAuthorityFactories" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh4OO8EdyGNPaNHSGn_w" name="return" type="_6UnhmOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh4eO8EdyGNPaNHSGn_w" name="getCRSAuthorityFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh4uO8EdyGNPaNHSGn_w" name="authority" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUh4-O8EdyGNPaNHSGn_w" name="return" type="_6UUiJuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh5OO8EdyGNPaNHSGn_w" name="getCRSAuthorityFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh5eO8EdyGNPaNHSGn_w" name="authority" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUh5uO8EdyGNPaNHSGn_w" name="hints" type="_6UUhYOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUh5-O8EdyGNPaNHSGn_w" name="return" type="_6UUiJuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh6OO8EdyGNPaNHSGn_w" name="getCRSAuthorityFactories" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh6eO8EdyGNPaNHSGn_w" name="return" type="_6UnhmOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh6uO8EdyGNPaNHSGn_w" name="getMathTransformFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh6-O8EdyGNPaNHSGn_w" name="return" type="_6UUiJ-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh7OO8EdyGNPaNHSGn_w" name="getMathTransformFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh7eO8EdyGNPaNHSGn_w" name="hints" type="_6UUhYOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUh7uO8EdyGNPaNHSGn_w" name="return" type="_6UUiJ-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh7-O8EdyGNPaNHSGn_w" name="getMathTransformFactories" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh8OO8EdyGNPaNHSGn_w" name="return" type="_6UnhmOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh8eO8EdyGNPaNHSGn_w" name="getCoordinateOperationFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh8uO8EdyGNPaNHSGn_w" name="return" type="_6UUiKOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh8-O8EdyGNPaNHSGn_w" name="getCoordinateOperationFactory" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh9OO8EdyGNPaNHSGn_w" name="hints" type="_6UUhYOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUh9eO8EdyGNPaNHSGn_w" name="return" type="_6UUiKOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh9uO8EdyGNPaNHSGn_w" name="getCoordinateOperationFactories" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh9-O8EdyGNPaNHSGn_w" name="return" type="_6UnhmOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh-OO8EdyGNPaNHSGn_w" name="setVendorOrdering" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh-eO8EdyGNPaNHSGn_w" name="vendor1" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUh-uO8EdyGNPaNHSGn_w" name="vendor2" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUh--O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUh_OO8EdyGNPaNHSGn_w" name="unsetVendorOrdering" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUh_eO8EdyGNPaNHSGn_w" name="vendor1" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUh_uO8EdyGNPaNHSGn_w" name="vendor2" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUh_-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUiAOO8EdyGNPaNHSGn_w" name="setAuthorityOrdering" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUiAeO8EdyGNPaNHSGn_w" name="authority1" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUiAuO8EdyGNPaNHSGn_w" name="authority2" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUiA-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUiBOO8EdyGNPaNHSGn_w" name="unsetAuthorityOrdering" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUiBeO8EdyGNPaNHSGn_w" name="authority1" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUiBuO8EdyGNPaNHSGn_w" name="authority2" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUiB-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUiCOO8EdyGNPaNHSGn_w" name="scanForPlugins" visibility="public" isStatic="true"/>
+                    <ownedOperation xmi:id="_6UUiCeO8EdyGNPaNHSGn_w" name="listProviders" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUiCuO8EdyGNPaNHSGn_w" name="out" type="_6UUiKeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUiC-O8EdyGNPaNHSGn_w" name="locale" type="_6UUiKuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUiDOO8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUiDeO8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UUiDuO8EdyGNPaNHSGn_w" name="VendorFilter" visibility="private">
+                    <ownedAttribute xmi:id="_6UUiD-O8EdyGNPaNHSGn_w" name="vendor" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UUiEOO8EdyGNPaNHSGn_w" name="filter" visibility="public">
+                      <ownedParameter xmi:id="_6UUiEeO8EdyGNPaNHSGn_w" name="provider" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUiEuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UUiE-O8EdyGNPaNHSGn_w" name="AuthorityFilter" visibility="private">
+                    <ownedAttribute xmi:id="_6UUiFOO8EdyGNPaNHSGn_w" name="authority" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UUiFeO8EdyGNPaNHSGn_w" name="filter" visibility="public">
+                      <ownedParameter xmi:id="_6UUiFuO8EdyGNPaNHSGn_w" name="provider" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUiF-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiGOO8EdyGNPaNHSGn_w" name="Class"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiGeO8EdyGNPaNHSGn_w" name="Filter"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiGuO8EdyGNPaNHSGn_w" name="RenderingHints"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiG-O8EdyGNPaNHSGn_w" name="RenderingHints.Key"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiHOO8EdyGNPaNHSGn_w" name="RuntimeException"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiHeO8EdyGNPaNHSGn_w" name="ServiceRegistry"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiHuO8EdyGNPaNHSGn_w" name="Iterator"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiH-O8EdyGNPaNHSGn_w" name="ClassLoader"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiIOO8EdyGNPaNHSGn_w" name="Comparator"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiIeO8EdyGNPaNHSGn_w" name="AuthorityFactory"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiIuO8EdyGNPaNHSGn_w" name="DatumFactory"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiI-O8EdyGNPaNHSGn_w" name="CSFactory"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiJOO8EdyGNPaNHSGn_w" name="DatumAuthorityFactory"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiJeO8EdyGNPaNHSGn_w" name="CSAuthorityFactory"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiJuO8EdyGNPaNHSGn_w" name="CRSAuthorityFactory"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiJ-O8EdyGNPaNHSGn_w" name="MathTransformFactory"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiKOO8EdyGNPaNHSGn_w" name="CoordinateOperationFactory"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiKeO8EdyGNPaNHSGn_w" name="Writer"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiKuO8EdyGNPaNHSGn_w" name="Locale"/>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UUiK-O8EdyGNPaNHSGn_w" memberEnd="_6UUhYuO8EdyGNPaNHSGn_w _6UUiLOO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UUiLOO8EdyGNPaNHSGn_w" name="target" type="_6UUhYOO8EdyGNPaNHSGn_w" association="_6UUiK-O8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UUiLeO8EdyGNPaNHSGn_w" memberEnd="_6UUhY-O8EdyGNPaNHSGn_w _6UUiLuO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UUiLuO8EdyGNPaNHSGn_w" name="target" type="_6UUhYOO8EdyGNPaNHSGn_w" association="_6UUiLeO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UUiL-O8EdyGNPaNHSGn_w" memberEnd="_6UUhZOO8EdyGNPaNHSGn_w _6UUiMOO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UUiMOO8EdyGNPaNHSGn_w" name="target" type="_6UUhYOO8EdyGNPaNHSGn_w" association="_6UUiL-O8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UUiMeO8EdyGNPaNHSGn_w" memberEnd="_6UUhZeO8EdyGNPaNHSGn_w _6UUiMuO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UUiMuO8EdyGNPaNHSGn_w" name="target" type="_6UUhYOO8EdyGNPaNHSGn_w" association="_6UUiMeO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UUiM-O8EdyGNPaNHSGn_w" memberEnd="_6UUhZuO8EdyGNPaNHSGn_w _6UUiNOO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UUiNOO8EdyGNPaNHSGn_w" name="target" type="_6UUhYOO8EdyGNPaNHSGn_w" association="_6UUiM-O8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UUiNeO8EdyGNPaNHSGn_w" memberEnd="_6UUhZ-O8EdyGNPaNHSGn_w _6UUiNuO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UUiNuO8EdyGNPaNHSGn_w" name="target" type="_6UUhYOO8EdyGNPaNHSGn_w" association="_6UUiNeO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UUiN-O8EdyGNPaNHSGn_w" memberEnd="_6UUhaOO8EdyGNPaNHSGn_w _6UUiOOO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UUiOOO8EdyGNPaNHSGn_w" name="target" type="_6UUhYOO8EdyGNPaNHSGn_w" association="_6UUiN-O8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UUiOeO8EdyGNPaNHSGn_w" memberEnd="_6UUhaeO8EdyGNPaNHSGn_w _6UUiOuO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UUiOuO8EdyGNPaNHSGn_w" name="target" type="_6UUhYOO8EdyGNPaNHSGn_w" association="_6UUiOeO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UUiO-O8EdyGNPaNHSGn_w" memberEnd="_6UUhauO8EdyGNPaNHSGn_w _6UUiPOO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UUiPOO8EdyGNPaNHSGn_w" name="target" type="_6UUhYOO8EdyGNPaNHSGn_w" association="_6UUiO-O8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UUiPeO8EdyGNPaNHSGn_w" memberEnd="_6UUha-O8EdyGNPaNHSGn_w _6UUiPuO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UUiPuO8EdyGNPaNHSGn_w" name="target" type="_6UUhYOO8EdyGNPaNHSGn_w" association="_6UUiPeO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UUiP-O8EdyGNPaNHSGn_w" memberEnd="_6UUhbOO8EdyGNPaNHSGn_w _6UUiQOO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UUiQOO8EdyGNPaNHSGn_w" name="target" type="_6UUhYOO8EdyGNPaNHSGn_w" association="_6UUiP-O8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UUiQeO8EdyGNPaNHSGn_w" memberEnd="_6UUhq-O8EdyGNPaNHSGn_w _6UUiQuO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UUiQuO8EdyGNPaNHSGn_w" name="target" type="_6UUhquO8EdyGNPaNHSGn_w" association="_6UUiQeO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiQ-O8EdyGNPaNHSGn_w" name="GeometryCollection"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiROO8EdyGNPaNHSGn_w" name="CoordinateSequence"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiReO8EdyGNPaNHSGn_w" name="LineString"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiRuO8EdyGNPaNHSGn_w" name="Point"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiR-O8EdyGNPaNHSGn_w" name="GeometryFactory"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiSOO8EdyGNPaNHSGn_w" name="MathTransform"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiSeO8EdyGNPaNHSGn_w" name="AbstractHandler"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUiSuO8EdyGNPaNHSGn_w" name="Coordinate"/>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUiS-O8EdyGNPaNHSGn_w" memberEnd="_6UUgfuO8EdyGNPaNHSGn_w _6UUiTOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUiTOO8EdyGNPaNHSGn_w" name="target" type="_6UUgdeO8EdyGNPaNHSGn_w" association="_6UUiS-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUiTeO8EdyGNPaNHSGn_w" memberEnd="_6UUg1OO8EdyGNPaNHSGn_w _6UUiTuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUiTuO8EdyGNPaNHSGn_w" name="target" type="_6UUgz-O8EdyGNPaNHSGn_w" association="_6UUiTeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUiT-O8EdyGNPaNHSGn_w" memberEnd="_6UUg1eO8EdyGNPaNHSGn_w _6UUiUOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUiUOO8EdyGNPaNHSGn_w" name="target" type="_6UUgz-O8EdyGNPaNHSGn_w" association="_6UUiT-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UUiUeO8EdyGNPaNHSGn_w" name="renderers">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUiUuO8EdyGNPaNHSGn_w" name="Geometry2DRenderer">
+                  <ownedOperation xmi:id="_6UUiU-O8EdyGNPaNHSGn_w" name="draw" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUiVOO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiVeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiVuO8EdyGNPaNHSGn_w" name="vp" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiV-O8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiWOO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUiWeO8EdyGNPaNHSGn_w" name="draw" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUiWuO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiW-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiXOO8EdyGNPaNHSGn_w" name="vp" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiXeO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUiXuO8EdyGNPaNHSGn_w" name="drawInts" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUiX-O8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiYOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiYeO8EdyGNPaNHSGn_w" name="vp" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiYuO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiY-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUiZOO8EdyGNPaNHSGn_w" name="drawInts" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUiZeO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiZuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiZ-O8EdyGNPaNHSGn_w" name="vp" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiaOO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUiaeO8EdyGNPaNHSGn_w" name="drawInts" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUiauO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUia-O8EdyGNPaNHSGn_w" name="graphics2D" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUibOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUibeO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUibuO8EdyGNPaNHSGn_w" name="cartographicSymbol" type="_6UUenuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUib-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUicOO8EdyGNPaNHSGn_w" name="createLabels" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUiceO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUicuO8EdyGNPaNHSGn_w" name="position" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUic-O8EdyGNPaNHSGn_w" name="duplicates" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUidOO8EdyGNPaNHSGn_w" name="return" type="_6UUpfOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UUideO8EdyGNPaNHSGn_w" name="styles">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUiduO8EdyGNPaNHSGn_w" name="ArrowDecoratorStyle" clientDependency="_6UUifeO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UUid-O8EdyGNPaNHSGn_w" name="flipAll" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUieOO8EdyGNPaNHSGn_w" name="flipFirst" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUieeO8EdyGNPaNHSGn_w" name="arrowMarkerCount" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUieuO8EdyGNPaNHSGn_w" name="followLineAngle" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUie-O8EdyGNPaNHSGn_w" name="marker" visibility="private" type="_6UUkzuO8EdyGNPaNHSGn_w" association="_6UUjneO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUifOO8EdyGNPaNHSGn_w" name="desc" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUifeO8EdyGNPaNHSGn_w" name="IStyle" supplier="_6UUjUOO8EdyGNPaNHSGn_w" client="_6UUiduO8EdyGNPaNHSGn_w" contract="_6UUjUOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUifuO8EdyGNPaNHSGn_w" name="getArrowMarkerCount" visibility="public">
+                    <ownedParameter xmi:id="_6UUif-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUigOO8EdyGNPaNHSGn_w" name="setArrowMarkerCount" visibility="public">
+                    <ownedParameter xmi:id="_6UUigeO8EdyGNPaNHSGn_w" name="arrowMarkerCount" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUiguO8EdyGNPaNHSGn_w" name="isFlipAll" visibility="public">
+                    <ownedParameter xmi:id="_6UUig-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUihOO8EdyGNPaNHSGn_w" name="setFlipAll" visibility="public">
+                    <ownedParameter xmi:id="_6UUiheO8EdyGNPaNHSGn_w" name="flipAll" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUihuO8EdyGNPaNHSGn_w" name="isFlipFirst" visibility="public">
+                    <ownedParameter xmi:id="_6UUih-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUiiOO8EdyGNPaNHSGn_w" name="setFlipFirst" visibility="public">
+                    <ownedParameter xmi:id="_6UUiieO8EdyGNPaNHSGn_w" name="flipFirst" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUiiuO8EdyGNPaNHSGn_w" name="isFollowLineAngle" visibility="public">
+                    <ownedParameter xmi:id="_6UUii-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUijOO8EdyGNPaNHSGn_w" name="setFollowLineAngle" visibility="public">
+                    <ownedParameter xmi:id="_6UUijeO8EdyGNPaNHSGn_w" name="followLineAngle" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUijuO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUij-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUikOO8EdyGNPaNHSGn_w" name="affineTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUikeO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUikuO8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                    <ownedParameter xmi:id="_6UUik-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUilOO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUileO8EdyGNPaNHSGn_w" name="drawOutline" visibility="public">
+                    <ownedParameter xmi:id="_6UUiluO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUil-O8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUimOO8EdyGNPaNHSGn_w" name="getDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UUimeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUimuO8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public">
+                    <ownedParameter xmi:id="_6UUim-O8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUinOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUineO8EdyGNPaNHSGn_w" name="setDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UUinuO8EdyGNPaNHSGn_w" name="desc" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUin-O8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                    <ownedParameter xmi:id="_6UUioOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUioeO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUiouO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUio-O8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUipOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUipeO8EdyGNPaNHSGn_w" name="getMarker" visibility="public">
+                    <ownedParameter xmi:id="_6UUipuO8EdyGNPaNHSGn_w" name="return" type="_6UUkzuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUip-O8EdyGNPaNHSGn_w" name="setMarker" visibility="public">
+                    <ownedParameter xmi:id="_6UUiqOO8EdyGNPaNHSGn_w" name="marker" type="_6UUkzuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UUiqeO8EdyGNPaNHSGn_w" name="IMarkerFillPropertiesStyle">
+                  <generalization xmi:id="_6UUiquO8EdyGNPaNHSGn_w" general="_6UUjUOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUiq-O8EdyGNPaNHSGn_w" name="RANDOM_FILL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUirOO8EdyGNPaNHSGn_w" name="GRID_FILL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUireO8EdyGNPaNHSGn_w" name="SINGLE_CENTERED_SYMBOL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUiruO8EdyGNPaNHSGn_w" name="setSampleSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUir-O8EdyGNPaNHSGn_w" name="marker" type="_6UUkzuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUisOO8EdyGNPaNHSGn_w" name="getRotation" visibility="public">
+                    <ownedParameter xmi:id="_6UUiseO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUisuO8EdyGNPaNHSGn_w" name="setRotation" visibility="public">
+                    <ownedParameter xmi:id="_6UUis-O8EdyGNPaNHSGn_w" name="rotation" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUitOO8EdyGNPaNHSGn_w" name="getXOffset" visibility="public">
+                    <ownedParameter xmi:id="_6UUiteO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUituO8EdyGNPaNHSGn_w" name="setXOffset" visibility="public">
+                    <ownedParameter xmi:id="_6UUit-O8EdyGNPaNHSGn_w" name="offset" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUiuOO8EdyGNPaNHSGn_w" name="getXSeparation" visibility="public">
+                    <ownedParameter xmi:id="_6UUiueO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUiuuO8EdyGNPaNHSGn_w" name="setXSeparation" visibility="public">
+                    <ownedParameter xmi:id="_6UUiu-O8EdyGNPaNHSGn_w" name="separation" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUivOO8EdyGNPaNHSGn_w" name="getYOffset" visibility="public">
+                    <ownedParameter xmi:id="_6UUiveO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUivuO8EdyGNPaNHSGn_w" name="setYOffset" visibility="public">
+                    <ownedParameter xmi:id="_6UUiv-O8EdyGNPaNHSGn_w" name="offset" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUiwOO8EdyGNPaNHSGn_w" name="getYSeparation" visibility="public">
+                    <ownedParameter xmi:id="_6UUiweO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUiwuO8EdyGNPaNHSGn_w" name="setYSeparation" visibility="public">
+                    <ownedParameter xmi:id="_6UUiw-O8EdyGNPaNHSGn_w" name="separation" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUixOO8EdyGNPaNHSGn_w" name="setFillStyle" visibility="public">
+                    <ownedParameter xmi:id="_6UUixeO8EdyGNPaNHSGn_w" name="fillStyle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUixuO8EdyGNPaNHSGn_w" name="getFillStyle" visibility="public">
+                    <ownedParameter xmi:id="_6UUix-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUiyOO8EdyGNPaNHSGn_w" name="Line2DOffset">
+                  <ownedOperation xmi:id="_6UUiyeO8EdyGNPaNHSGn_w" name="offsetLine" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUiyuO8EdyGNPaNHSGn_w" name="p" type="_6UUrPuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiy-O8EdyGNPaNHSGn_w" name="offset" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUizOO8EdyGNPaNHSGn_w" name="return" type="_6UUgc-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUizeO8EdyGNPaNHSGn_w" name="offsetAndConsumeSegments" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UUizuO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUiz-O8EdyGNPaNHSGn_w" name="segments" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUi0OO8EdyGNPaNHSGn_w" name="return" type="_6UUgc-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUi0eO8EdyGNPaNHSGn_w" name="offsetAndConsumeClosedSegments" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UUi0uO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUi0-O8EdyGNPaNHSGn_w" name="segments" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUi1OO8EdyGNPaNHSGn_w" name="return" type="_6UUgc-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUi1eO8EdyGNPaNHSGn_w" name="LineEquation">
+                  <ownedAttribute xmi:id="_6UUi1uO8EdyGNPaNHSGn_w" name="theta" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUi1-O8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUi2OO8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUi2eO8EdyGNPaNHSGn_w" name="xEnd" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUi2uO8EdyGNPaNHSGn_w" name="yEnd" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUi2-O8EdyGNPaNHSGn_w" name="resolve" visibility="public">
+                    <ownedParameter xmi:id="_6UUi3OO8EdyGNPaNHSGn_w" name="otherLine" type="_6UUi1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUi3eO8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUi3uO8EdyGNPaNHSGn_w" name="toString" visibility="public">
+                    <ownedParameter xmi:id="_6UUi3-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUi4OO8EdyGNPaNHSGn_w" name="NotEnoughSegmentsToClosePathException">
+                  <generalization xmi:id="_6UUi4eO8EdyGNPaNHSGn_w" general="_6UnhhOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUi4uO8EdyGNPaNHSGn_w" name="serialVersionUID" visibility="private" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUi4-O8EdyGNPaNHSGn_w" name="ParallelLinesCannotBeResolvedException">
+                  <generalization xmi:id="_6UUi5OO8EdyGNPaNHSGn_w" general="_6UnhhOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUi5eO8EdyGNPaNHSGn_w" name="serialVersionUID" visibility="private" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUi5uO8EdyGNPaNHSGn_w" name="AbstractStyle" clientDependency="_6UUi6OO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UUi5-O8EdyGNPaNHSGn_w" name="desc" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUi6OO8EdyGNPaNHSGn_w" name="IStyle" supplier="_6UUjUOO8EdyGNPaNHSGn_w" client="_6UUi5uO8EdyGNPaNHSGn_w" contract="_6UUjUOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUi6eO8EdyGNPaNHSGn_w" name="setDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UUi6uO8EdyGNPaNHSGn_w" name="desc" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUi6-O8EdyGNPaNHSGn_w" name="getDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UUi7OO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UUi7eO8EdyGNPaNHSGn_w" name="ILabelStyle">
+                  <generalization xmi:id="_6UUi7uO8EdyGNPaNHSGn_w" general="_6UUjUOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUi7-O8EdyGNPaNHSGn_w" name="getFieldCount" visibility="public">
+                    <ownedParameter xmi:id="_6UUi8OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUi8eO8EdyGNPaNHSGn_w" name="setTextFields" visibility="public">
+                    <ownedParameter xmi:id="_6UUi8uO8EdyGNPaNHSGn_w" name="texts" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUi8-O8EdyGNPaNHSGn_w" name="getTextAt" visibility="public">
+                    <ownedParameter xmi:id="_6UUi9OO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUi9eO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUi9uO8EdyGNPaNHSGn_w" name="getTextBounds" visibility="public">
+                    <ownedParameter xmi:id="_6UUi9-O8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUi-OO8EdyGNPaNHSGn_w" name="getSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUi-eO8EdyGNPaNHSGn_w" name="return" type="_6UnhhuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUi-uO8EdyGNPaNHSGn_w" name="getMarkerPoint" visibility="public">
+                    <ownedParameter xmi:id="_6UUi--O8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUi_OO8EdyGNPaNHSGn_w" name="setMarkerPoint" visibility="public">
+                    <ownedParameter xmi:id="_6UUi_eO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUi_uO8EdyGNPaNHSGn_w" name="setTextFieldArea" visibility="public">
+                    <ownedParameter xmi:id="_6UUi_-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjAOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjAeO8EdyGNPaNHSGn_w" name="addTextFieldArea" visibility="public">
+                    <ownedParameter xmi:id="_6UUjAuO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjA-O8EdyGNPaNHSGn_w" name="deleteTextFieldArea" visibility="public">
+                    <ownedParameter xmi:id="_6UUjBOO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjBeO8EdyGNPaNHSGn_w" name="setSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUjBuO8EdyGNPaNHSGn_w" name="width" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjB-O8EdyGNPaNHSGn_w" name="height" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUjCOO8EdyGNPaNHSGn_w" name="SimpleLineStyle" clientDependency="_6UUjGuO8EdyGNPaNHSGn_w _6UUjG-O8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6UUjCeO8EdyGNPaNHSGn_w" general="_6UUi5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjCuO8EdyGNPaNHSGn_w" name="PREVIEW_COLOR_1" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjC-O8EdyGNPaNHSGn_w" name="PREVIEW_COLOR_2" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjDOO8EdyGNPaNHSGn_w" name="COLOR1_STROKE" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjDeO8EdyGNPaNHSGn_w" name="COLOR2_STROKE" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjDuO8EdyGNPaNHSGn_w" name="dashArray" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjD-O8EdyGNPaNHSGn_w" name="tempDashArray" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjEOO8EdyGNPaNHSGn_w" name="dashPhase" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjEeO8EdyGNPaNHSGn_w" name="endCap" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjEuO8EdyGNPaNHSGn_w" name="lineJoin" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjE-O8EdyGNPaNHSGn_w" name="miterlimit" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjFOO8EdyGNPaNHSGn_w" name="lineWidth" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjFeO8EdyGNPaNHSGn_w" name="measureUnit" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjFuO8EdyGNPaNHSGn_w" name="offset" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjF-O8EdyGNPaNHSGn_w" name="csOffset" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjGOO8EdyGNPaNHSGn_w" name="referenceSystem" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjGeO8EdyGNPaNHSGn_w" name="arrowDecorator" visibility="private" type="_6UUiduO8EdyGNPaNHSGn_w" association="_6UUjn-O8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUjGuO8EdyGNPaNHSGn_w" name="ILineStyle" supplier="_6UUjXuO8EdyGNPaNHSGn_w" client="_6UUjCOO8EdyGNPaNHSGn_w" contract="_6UUjXuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUjG-O8EdyGNPaNHSGn_w" name="CartographicSupport" supplier="_6UUenuO8EdyGNPaNHSGn_w" client="_6UUjCOO8EdyGNPaNHSGn_w" contract="_6UUenuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUjHOO8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                    <ownedParameter xmi:id="_6UUjHeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjHuO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjH-O8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                    <ownedParameter xmi:id="_6UUjIOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjIeO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUjIuO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjI-O8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUjJOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjJeO8EdyGNPaNHSGn_w" name="getStroke" visibility="public">
+                    <ownedParameter xmi:id="_6UUjJuO8EdyGNPaNHSGn_w" name="return" type="_6UUjnOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjJ-O8EdyGNPaNHSGn_w" name="getLineWidth" visibility="public">
+                    <ownedParameter xmi:id="_6UUjKOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjKeO8EdyGNPaNHSGn_w" name="setLineWidth" visibility="public">
+                    <ownedParameter xmi:id="_6UUjKuO8EdyGNPaNHSGn_w" name="width" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjK-O8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public">
+                    <ownedParameter xmi:id="_6UUjLOO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjLeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjLuO8EdyGNPaNHSGn_w" name="setStroke" visibility="public">
+                    <ownedParameter xmi:id="_6UUjL-O8EdyGNPaNHSGn_w" name="stroke" type="_6UUjnOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjMOO8EdyGNPaNHSGn_w" name="drawOutline" visibility="public">
+                    <ownedParameter xmi:id="_6UUjMeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjMuO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjM-O8EdyGNPaNHSGn_w" name="getOffset" visibility="public">
+                    <ownedParameter xmi:id="_6UUjNOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjNeO8EdyGNPaNHSGn_w" name="setOffset" visibility="public">
+                    <ownedParameter xmi:id="_6UUjNuO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjN-O8EdyGNPaNHSGn_w" name="getArrowDecorator" visibility="public">
+                    <ownedParameter xmi:id="_6UUjOOO8EdyGNPaNHSGn_w" name="return" type="_6UUiduO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjOeO8EdyGNPaNHSGn_w" name="setArrowDecorator" visibility="public">
+                    <ownedParameter xmi:id="_6UUjOuO8EdyGNPaNHSGn_w" name="arrowDecoratorStyle" type="_6UUiduO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjO-O8EdyGNPaNHSGn_w" name="setUnit" visibility="public">
+                    <ownedParameter xmi:id="_6UUjPOO8EdyGNPaNHSGn_w" name="unitIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjPeO8EdyGNPaNHSGn_w" name="getUnit" visibility="public">
+                    <ownedParameter xmi:id="_6UUjPuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjP-O8EdyGNPaNHSGn_w" name="getReferenceSystem" visibility="public">
+                    <ownedParameter xmi:id="_6UUjQOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjQeO8EdyGNPaNHSGn_w" name="setReferenceSystem" visibility="public">
+                    <ownedParameter xmi:id="_6UUjQuO8EdyGNPaNHSGn_w" name="referenceSystem" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjQ-O8EdyGNPaNHSGn_w" name="toCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUjROO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjReO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjRuO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjR-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjSOO8EdyGNPaNHSGn_w" name="setCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUjSeO8EdyGNPaNHSGn_w" name="cartographicSize" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjSuO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjS-O8EdyGNPaNHSGn_w" name="getCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUjTOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjTeO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjTuO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjT-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UUjUOO8EdyGNPaNHSGn_w" name="IStyle">
+                  <ownedOperation xmi:id="_6UUjUeO8EdyGNPaNHSGn_w" name="setDescription" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUjUuO8EdyGNPaNHSGn_w" name="desc" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjU-O8EdyGNPaNHSGn_w" name="getDescription" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUjVOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjVeO8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUjVuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjV-O8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjWOO8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUjWeO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjWuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjW-O8EdyGNPaNHSGn_w" name="drawOutline" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUjXOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjXeO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UUjXuO8EdyGNPaNHSGn_w" name="ILineStyle">
+                  <generalization xmi:id="_6UUjX-O8EdyGNPaNHSGn_w" general="_6UUjUOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUjYOO8EdyGNPaNHSGn_w" name="getLineWidth" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUjYeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjYuO8EdyGNPaNHSGn_w" name="setLineWidth" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUjY-O8EdyGNPaNHSGn_w" name="width" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjZOO8EdyGNPaNHSGn_w" name="getStroke" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUjZeO8EdyGNPaNHSGn_w" name="return" type="_6UUjnOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjZuO8EdyGNPaNHSGn_w" name="setStroke" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUjZ-O8EdyGNPaNHSGn_w" name="stroke" type="_6UUjnOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjaOO8EdyGNPaNHSGn_w" name="getArrowDecorator" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUjaeO8EdyGNPaNHSGn_w" name="return" type="_6UUiduO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjauO8EdyGNPaNHSGn_w" name="setArrowDecorator" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUja-O8EdyGNPaNHSGn_w" name="arrowDecoratorStyle" type="_6UUiduO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjbOO8EdyGNPaNHSGn_w" name="getOffset" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUjbeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjbuO8EdyGNPaNHSGn_w" name="setOffset" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUjb-O8EdyGNPaNHSGn_w" name="offset" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UUjcOO8EdyGNPaNHSGn_w" name="IMask">
+                  <generalization xmi:id="_6UUjceO8EdyGNPaNHSGn_w" general="_6UUjUOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUjcuO8EdyGNPaNHSGn_w" name="getSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUjc-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjdOO8EdyGNPaNHSGn_w" name="setSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUjdeO8EdyGNPaNHSGn_w" name="size" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjduO8EdyGNPaNHSGn_w" name="getFillSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUjd-O8EdyGNPaNHSGn_w" name="return" type="_6UUlDeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjeOO8EdyGNPaNHSGn_w" name="setFillSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUjeeO8EdyGNPaNHSGn_w" name="fill" type="_6UUlDeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjeuO8EdyGNPaNHSGn_w" name="getHaloShape" visibility="public">
+                    <ownedParameter xmi:id="_6UUje-O8EdyGNPaNHSGn_w" name="shp" type="_6UUrPuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjfOO8EdyGNPaNHSGn_w" name="return" type="_6UUrNuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUjfeO8EdyGNPaNHSGn_w" name="BasicMask" clientDependency="_6UUjgeO8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6UUjfuO8EdyGNPaNHSGn_w" general="_6UUi5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjf-O8EdyGNPaNHSGn_w" name="size" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjgOO8EdyGNPaNHSGn_w" name="fill" visibility="private" type="_6UUlDeO8EdyGNPaNHSGn_w" association="_6UUjoeO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUjgeO8EdyGNPaNHSGn_w" name="IMask" supplier="_6UUjcOO8EdyGNPaNHSGn_w" client="_6UUjfeO8EdyGNPaNHSGn_w" contract="_6UUjcOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUjguO8EdyGNPaNHSGn_w" name="getSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUjg-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjhOO8EdyGNPaNHSGn_w" name="setSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUjheO8EdyGNPaNHSGn_w" name="size" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjhuO8EdyGNPaNHSGn_w" name="getFillSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUjh-O8EdyGNPaNHSGn_w" name="return" type="_6UUlDeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjiOO8EdyGNPaNHSGn_w" name="setFillSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUjieO8EdyGNPaNHSGn_w" name="fill" type="_6UUlDeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjiuO8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                    <ownedParameter xmi:id="_6UUji-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjjOO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjjeO8EdyGNPaNHSGn_w" name="getHaloShape" visibility="public">
+                    <ownedParameter xmi:id="_6UUjjuO8EdyGNPaNHSGn_w" name="shp" type="_6UUrPuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjj-O8EdyGNPaNHSGn_w" name="return" type="_6UUrNuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjkOO8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public">
+                    <ownedParameter xmi:id="_6UUjkeO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjkuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjk-O8EdyGNPaNHSGn_w" name="drawOutline" visibility="public">
+                    <ownedParameter xmi:id="_6UUjlOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjleO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjluO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                    <ownedParameter xmi:id="_6UUjl-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjmOO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUjmeO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjmuO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUjm-O8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUjnOO8EdyGNPaNHSGn_w" name="Stroke"/>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUjneO8EdyGNPaNHSGn_w" memberEnd="_6UUie-O8EdyGNPaNHSGn_w _6UUjnuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUjnuO8EdyGNPaNHSGn_w" name="target" type="_6UUiduO8EdyGNPaNHSGn_w" association="_6UUjneO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUjn-O8EdyGNPaNHSGn_w" memberEnd="_6UUjGeO8EdyGNPaNHSGn_w _6UUjoOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUjoOO8EdyGNPaNHSGn_w" name="target" type="_6UUjCOO8EdyGNPaNHSGn_w" association="_6UUjn-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUjoeO8EdyGNPaNHSGn_w" memberEnd="_6UUjgOO8EdyGNPaNHSGn_w _6UUjouO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUjouO8EdyGNPaNHSGn_w" name="target" type="_6UUjfeO8EdyGNPaNHSGn_w" association="_6UUjoeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UUjo-O8EdyGNPaNHSGn_w" name="symbols">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUjpOO8EdyGNPaNHSGn_w" name="MultiLayerMarkerSymbol" clientDependency="_6UUjquO8EdyGNPaNHSGn_w _6UUjq-O8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6UUjpeO8EdyGNPaNHSGn_w" general="_6UUkcOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjpuO8EdyGNPaNHSGn_w" name="layers" visibility="private" type="_6UUkzuO8EdyGNPaNHSGn_w" association="_6UUn_uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjp-O8EdyGNPaNHSGn_w" name="selectionSymbol" visibility="private" type="_6UUjpOO8EdyGNPaNHSGn_w" association="_6UUoAOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjqOO8EdyGNPaNHSGn_w" name="offset" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUjqeO8EdyGNPaNHSGn_w" name="rotation" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUjquO8EdyGNPaNHSGn_w" name="IMarkerSymbol" supplier="_6UUkzuO8EdyGNPaNHSGn_w" client="_6UUjpOO8EdyGNPaNHSGn_w" contract="_6UUkzuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUjq-O8EdyGNPaNHSGn_w" name="IMultiLayerSymbol" supplier="_6UUk5eO8EdyGNPaNHSGn_w" client="_6UUjpOO8EdyGNPaNHSGn_w" contract="_6UUk5eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUjrOO8EdyGNPaNHSGn_w" name="getColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUjreO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjruO8EdyGNPaNHSGn_w" name="getOffset" visibility="public">
+                    <ownedParameter xmi:id="_6UUjr-O8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjsOO8EdyGNPaNHSGn_w" name="getRotation" visibility="public">
+                    <ownedParameter xmi:id="_6UUjseO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjsuO8EdyGNPaNHSGn_w" name="setColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUjs-O8EdyGNPaNHSGn_w" name="color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjtOO8EdyGNPaNHSGn_w" name="setOffset" visibility="public">
+                    <ownedParameter xmi:id="_6UUjteO8EdyGNPaNHSGn_w" name="offset" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjtuO8EdyGNPaNHSGn_w" name="setRotation" visibility="public">
+                    <ownedParameter xmi:id="_6UUjt-O8EdyGNPaNHSGn_w" name="rotation" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjuOO8EdyGNPaNHSGn_w" name="setSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUjueO8EdyGNPaNHSGn_w" name="size" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjuuO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUju-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjvOO8EdyGNPaNHSGn_w" name="affineTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjveO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjvuO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjv-O8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                    <ownedParameter xmi:id="_6UUjwOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjweO8EdyGNPaNHSGn_w" name="scaleInstance" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjwuO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjw-O8EdyGNPaNHSGn_w" name="getOnePointRgb" visibility="public">
+                    <ownedParameter xmi:id="_6UUjxOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjxeO8EdyGNPaNHSGn_w" name="getPixExtentPlus" visibility="public">
+                    <ownedParameter xmi:id="_6UUjxuO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjx-O8EdyGNPaNHSGn_w" name="distances" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjyOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUjyeO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjyuO8EdyGNPaNHSGn_w" name="getSymbolForSelection" visibility="public">
+                    <ownedParameter xmi:id="_6UUjy-O8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjzOO8EdyGNPaNHSGn_w" name="getSymbolType" visibility="public">
+                    <ownedParameter xmi:id="_6UUjzeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUjzuO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUjz-O8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUj0OO8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public">
+                    <ownedParameter xmi:id="_6UUj0eO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUj0uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUj0-O8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                    <ownedParameter xmi:id="_6UUj1OO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUj1eO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUj1uO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUj1-O8EdyGNPaNHSGn_w" name="print" visibility="public">
+                    <ownedParameter xmi:id="_6UUj2OO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUj2eO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUj2uO8EdyGNPaNHSGn_w" name="shape" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUj2-O8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUj3OO8EdyGNPaNHSGn_w" name="setLayer" visibility="public">
+                    <ownedParameter xmi:id="_6UUj3eO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUj3uO8EdyGNPaNHSGn_w" name="layer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUj3-O8EdyGNPaNHSGn_w" name="swapLayers" visibility="public">
+                    <ownedParameter xmi:id="_6UUj4OO8EdyGNPaNHSGn_w" name="index1" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUj4eO8EdyGNPaNHSGn_w" name="index2" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUj4uO8EdyGNPaNHSGn_w" name="getLayer" visibility="public">
+                    <ownedParameter xmi:id="_6UUj4-O8EdyGNPaNHSGn_w" name="layerIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUj5OO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUj5eO8EdyGNPaNHSGn_w" name="getLayerCount" visibility="public">
+                    <ownedParameter xmi:id="_6UUj5uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUj5-O8EdyGNPaNHSGn_w" name="addLayer" visibility="public">
+                    <ownedParameter xmi:id="_6UUj6OO8EdyGNPaNHSGn_w" name="newLayer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUj6eO8EdyGNPaNHSGn_w" name="addLayer" visibility="public">
+                    <ownedParameter xmi:id="_6UUj6uO8EdyGNPaNHSGn_w" name="newLayer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUj6-O8EdyGNPaNHSGn_w" name="layerIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUj7OO8EdyGNPaNHSGn_w" name="removeLayer" visibility="public">
+                    <ownedParameter xmi:id="_6UUj7eO8EdyGNPaNHSGn_w" name="layer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUj7uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUj7-O8EdyGNPaNHSGn_w" name="setUnit" visibility="public">
+                    <ownedParameter xmi:id="_6UUj8OO8EdyGNPaNHSGn_w" name="unit" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUj8eO8EdyGNPaNHSGn_w" name="setReferenceSystem" visibility="public">
+                    <ownedParameter xmi:id="_6UUj8uO8EdyGNPaNHSGn_w" name="system" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUj8-O8EdyGNPaNHSGn_w" name="setAlpha" visibility="public">
+                    <ownedParameter xmi:id="_6UUj9OO8EdyGNPaNHSGn_w" name="alpha" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUj9eO8EdyGNPaNHSGn_w" name="SimpleMarkerSymbol">
+                  <generalization xmi:id="_6UUj9uO8EdyGNPaNHSGn_w" general="_6UUkcOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUj9-O8EdyGNPaNHSGn_w" name="CIRCLE_STYLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUj-OO8EdyGNPaNHSGn_w" name="SQUARE_STYLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUj-eO8EdyGNPaNHSGn_w" name="CROSS_STYLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUj-uO8EdyGNPaNHSGn_w" name="DIAMOND_STYLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUj--O8EdyGNPaNHSGn_w" name="X_STYLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUj_OO8EdyGNPaNHSGn_w" name="TRIANGLE_STYLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUj_eO8EdyGNPaNHSGn_w" name="STAR_STYLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUj_uO8EdyGNPaNHSGn_w" name="outlined" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUj_-O8EdyGNPaNHSGn_w" name="outlineColor" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUkAOO8EdyGNPaNHSGn_w" name="outlineSize" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUkAeO8EdyGNPaNHSGn_w" name="selectionSymbol" visibility="private" type="_6UUlkuO8EdyGNPaNHSGn_w" association="_6UUoAuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUkAuO8EdyGNPaNHSGn_w" name="markerStyle" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUkA-O8EdyGNPaNHSGn_w" name="getSymbolForSelection" visibility="public">
+                    <ownedParameter xmi:id="_6UUkBOO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkBeO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUkBuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkB-O8EdyGNPaNHSGn_w" name="affineTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkCOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkCeO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkCuO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUkC-O8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkDOO8EdyGNPaNHSGn_w" name="getSymbolType" visibility="public">
+                    <ownedParameter xmi:id="_6UUkDeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkDuO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                    <ownedParameter xmi:id="_6UUkD-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkEOO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUkEeO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkEuO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                    <ownedParameter xmi:id="_6UUkE-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkFOO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkFeO8EdyGNPaNHSGn_w" name="shape" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkFuO8EdyGNPaNHSGn_w" name="hasOutline" visibility="public">
+                    <ownedParameter xmi:id="_6UUkF-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkGOO8EdyGNPaNHSGn_w" name="setOutlined" visibility="public">
+                    <ownedParameter xmi:id="_6UUkGeO8EdyGNPaNHSGn_w" name="outlined" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkGuO8EdyGNPaNHSGn_w" name="getOutlineColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUkG-O8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkHOO8EdyGNPaNHSGn_w" name="setOutlineColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUkHeO8EdyGNPaNHSGn_w" name="outlineColor" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkHuO8EdyGNPaNHSGn_w" name="getOutlineSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUkH-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkIOO8EdyGNPaNHSGn_w" name="setOutlineSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUkIeO8EdyGNPaNHSGn_w" name="outlineSize" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkIuO8EdyGNPaNHSGn_w" name="getSelectionSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUkI-O8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkJOO8EdyGNPaNHSGn_w" name="setSelectionSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUkJeO8EdyGNPaNHSGn_w" name="selectionSymbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkJuO8EdyGNPaNHSGn_w" name="setStyle" visibility="public">
+                    <ownedParameter xmi:id="_6UUkJ-O8EdyGNPaNHSGn_w" name="style" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkKOO8EdyGNPaNHSGn_w" name="getStyle" visibility="public">
+                    <ownedParameter xmi:id="_6UUkKeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUkKuO8EdyGNPaNHSGn_w" name="AbstractLineSymbol" clientDependency="_6UUkLuO8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6UUkK-O8EdyGNPaNHSGn_w" general="_6UUle-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUkLOO8EdyGNPaNHSGn_w" name="color" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUkLeO8EdyGNPaNHSGn_w" name="lineStyle" visibility="private" type="_6UUjXuO8EdyGNPaNHSGn_w" association="_6UUoBOO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUkLuO8EdyGNPaNHSGn_w" name="ILineSymbol" supplier="_6UUk-uO8EdyGNPaNHSGn_w" client="_6UUkKuO8EdyGNPaNHSGn_w" contract="_6UUk-uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUkL-O8EdyGNPaNHSGn_w" name="getColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUkMOO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkMeO8EdyGNPaNHSGn_w" name="setLineColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUkMuO8EdyGNPaNHSGn_w" name="color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkM-O8EdyGNPaNHSGn_w" name="getOnePointRgb" visibility="public">
+                    <ownedParameter xmi:id="_6UUkNOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkNeO8EdyGNPaNHSGn_w" name="getSymbolType" visibility="public">
+                    <ownedParameter xmi:id="_6UUkNuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkN-O8EdyGNPaNHSGn_w" name="getPixExtentPlus" visibility="public">
+                    <ownedParameter xmi:id="_6UUkOOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkOeO8EdyGNPaNHSGn_w" name="distances" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkOuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkO-O8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkPOO8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public">
+                    <ownedParameter xmi:id="_6UUkPeO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkPuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkP-O8EdyGNPaNHSGn_w" name="getLineStyle" visibility="public">
+                    <ownedParameter xmi:id="_6UUkQOO8EdyGNPaNHSGn_w" name="return" type="_6UUjXuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkQeO8EdyGNPaNHSGn_w" name="setLineStyle" visibility="public">
+                    <ownedParameter xmi:id="_6UUkQuO8EdyGNPaNHSGn_w" name="lineStyle" type="_6UUjXuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkQ-O8EdyGNPaNHSGn_w" name="getAlpha" visibility="public">
+                    <ownedParameter xmi:id="_6UUkROO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkReO8EdyGNPaNHSGn_w" name="setAlpha" visibility="public">
+                    <ownedParameter xmi:id="_6UUkRuO8EdyGNPaNHSGn_w" name="outlineAlpha" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkR-O8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                    <ownedParameter xmi:id="_6UUkSOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkSeO8EdyGNPaNHSGn_w" name="scaleInstance" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkSuO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkS-O8EdyGNPaNHSGn_w" name="setCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUkTOO8EdyGNPaNHSGn_w" name="cartographicSize" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkTeO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkTuO8EdyGNPaNHSGn_w" name="toCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUkT-O8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkUOO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkUeO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkUuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkU-O8EdyGNPaNHSGn_w" name="getCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUkVOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkVeO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkVuO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkV-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkWOO8EdyGNPaNHSGn_w" name="offsetFShape" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUkWeO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkWuO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkW-O8EdyGNPaNHSGn_w" name="return" type="_6UUrNuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkXOO8EdyGNPaNHSGn_w" name="getParallel" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UUkXeO8EdyGNPaNHSGn_w" name="p1" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkXuO8EdyGNPaNHSGn_w" name="p2" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkX-O8EdyGNPaNHSGn_w" name="distance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkYOO8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkYeO8EdyGNPaNHSGn_w" name="getPerpendicularPoint" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UUkYuO8EdyGNPaNHSGn_w" name="p1" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkY-O8EdyGNPaNHSGn_w" name="p2" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkZOO8EdyGNPaNHSGn_w" name="perpPoint" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkZeO8EdyGNPaNHSGn_w" name="dist" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkZuO8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkZ-O8EdyGNPaNHSGn_w" name="getPerpendicular" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UUkaOO8EdyGNPaNHSGn_w" name="p1" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkaeO8EdyGNPaNHSGn_w" name="p2" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkauO8EdyGNPaNHSGn_w" name="perp" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUka-O8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkbOO8EdyGNPaNHSGn_w" name="getUnitVector" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UUkbeO8EdyGNPaNHSGn_w" name="p1" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkbuO8EdyGNPaNHSGn_w" name="p2" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkb-O8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUkcOO8EdyGNPaNHSGn_w" name="AbstractMarkerSymbol" clientDependency="_6UUkeeO8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6UUkceO8EdyGNPaNHSGn_w" general="_6UUle-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUkcuO8EdyGNPaNHSGn_w" name="color" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUkc-O8EdyGNPaNHSGn_w" name="rotation" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUkdOO8EdyGNPaNHSGn_w" name="offset" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUkdeO8EdyGNPaNHSGn_w" name="size" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUkduO8EdyGNPaNHSGn_w" name="mask" visibility="private" type="_6UUjcOO8EdyGNPaNHSGn_w" association="_6UUoBuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUkd-O8EdyGNPaNHSGn_w" name="unit" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUkeOO8EdyGNPaNHSGn_w" name="referenceSystem" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUkeeO8EdyGNPaNHSGn_w" name="IMarkerSymbol" supplier="_6UUkzuO8EdyGNPaNHSGn_w" client="_6UUkcOO8EdyGNPaNHSGn_w" contract="_6UUkzuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUkeuO8EdyGNPaNHSGn_w" name="getRotation" visibility="public">
+                    <ownedParameter xmi:id="_6UUke-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkfOO8EdyGNPaNHSGn_w" name="setRotation" visibility="public">
+                    <ownedParameter xmi:id="_6UUkfeO8EdyGNPaNHSGn_w" name="r" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkfuO8EdyGNPaNHSGn_w" name="getOffset" visibility="public">
+                    <ownedParameter xmi:id="_6UUkf-O8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkgOO8EdyGNPaNHSGn_w" name="setOffset" visibility="public">
+                    <ownedParameter xmi:id="_6UUkgeO8EdyGNPaNHSGn_w" name="offset" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkguO8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public">
+                    <ownedParameter xmi:id="_6UUkg-O8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkhOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkheO8EdyGNPaNHSGn_w" name="getOnePointRgb" visibility="public">
+                    <ownedParameter xmi:id="_6UUkhuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkh-O8EdyGNPaNHSGn_w" name="getSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUkiOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkieO8EdyGNPaNHSGn_w" name="setSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUkiuO8EdyGNPaNHSGn_w" name="size" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUki-O8EdyGNPaNHSGn_w" name="getColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUkjOO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkjeO8EdyGNPaNHSGn_w" name="setColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUkjuO8EdyGNPaNHSGn_w" name="color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkj-O8EdyGNPaNHSGn_w" name="getPixExtentPlus" visibility="public">
+                    <ownedParameter xmi:id="_6UUkkOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkkeO8EdyGNPaNHSGn_w" name="distances" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkkuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkk-O8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUklOO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                    <ownedParameter xmi:id="_6UUkleO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkluO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkl-O8EdyGNPaNHSGn_w" name="shape" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkmOO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkmeO8EdyGNPaNHSGn_w" name="getMask" visibility="public">
+                    <ownedParameter xmi:id="_6UUkmuO8EdyGNPaNHSGn_w" name="return" type="_6UUjcOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkm-O8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                    <ownedParameter xmi:id="_6UUknOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkneO8EdyGNPaNHSGn_w" name="scaleInstance" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUknuO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkn-O8EdyGNPaNHSGn_w" name="setMask" visibility="public">
+                    <ownedParameter xmi:id="_6UUkoOO8EdyGNPaNHSGn_w" name="mask" type="_6UUjcOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkoeO8EdyGNPaNHSGn_w" name="setCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUkouO8EdyGNPaNHSGn_w" name="cartographicSize" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUko-O8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkpOO8EdyGNPaNHSGn_w" name="toCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUkpeO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkpuO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkp-O8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkqOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkqeO8EdyGNPaNHSGn_w" name="getCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUkquO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkq-O8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkrOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkreO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkruO8EdyGNPaNHSGn_w" name="setUnit" visibility="public">
+                    <ownedParameter xmi:id="_6UUkr-O8EdyGNPaNHSGn_w" name="unitIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUksOO8EdyGNPaNHSGn_w" name="getUnit" visibility="public">
+                    <ownedParameter xmi:id="_6UUkseO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUksuO8EdyGNPaNHSGn_w" name="getReferenceSystem" visibility="public">
+                    <ownedParameter xmi:id="_6UUks-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUktOO8EdyGNPaNHSGn_w" name="setReferenceSystem" visibility="public">
+                    <ownedParameter xmi:id="_6UUkteO8EdyGNPaNHSGn_w" name="system" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUktuO8EdyGNPaNHSGn_w" name="ArrowMarkerSymbol" clientDependency="_6UUkuuO8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6UUkt-O8EdyGNPaNHSGn_w" general="_6UUkcOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUkuOO8EdyGNPaNHSGn_w" name="symSel" visibility="private" type="_6UUktuO8EdyGNPaNHSGn_w" association="_6UUoCOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUkueO8EdyGNPaNHSGn_w" name="sharpeness" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUkuuO8EdyGNPaNHSGn_w" name="CartographicSupport" supplier="_6UUenuO8EdyGNPaNHSGn_w" client="_6UUktuO8EdyGNPaNHSGn_w" contract="_6UUenuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUku-O8EdyGNPaNHSGn_w" name="getSymbolForSelection" visibility="public">
+                    <ownedParameter xmi:id="_6UUkvOO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkveO8EdyGNPaNHSGn_w" name="getSymbolType" visibility="public">
+                    <ownedParameter xmi:id="_6UUkvuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkv-O8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUkwOO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkweO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUkwuO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkw-O8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                    <ownedParameter xmi:id="_6UUkxOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkxeO8EdyGNPaNHSGn_w" name="getSharpness" visibility="public">
+                    <ownedParameter xmi:id="_6UUkxuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkx-O8EdyGNPaNHSGn_w" name="setSharpness" visibility="public">
+                    <ownedParameter xmi:id="_6UUkyOO8EdyGNPaNHSGn_w" name="sharpeness" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUkyeO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUkyuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUky-O8EdyGNPaNHSGn_w" name="affineTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkzOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUkzeO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UUkzuO8EdyGNPaNHSGn_w" name="IMarkerSymbol">
+                  <generalization xmi:id="_6UUkz-O8EdyGNPaNHSGn_w" general="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <generalization xmi:id="_6UUk0OO8EdyGNPaNHSGn_w" general="_6UUenuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUk0eO8EdyGNPaNHSGn_w" name="getRotation" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk0uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk0-O8EdyGNPaNHSGn_w" name="setRotation" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk1OO8EdyGNPaNHSGn_w" name="rotation" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk1eO8EdyGNPaNHSGn_w" name="getOffset" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk1uO8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk1-O8EdyGNPaNHSGn_w" name="setOffset" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk2OO8EdyGNPaNHSGn_w" name="offset" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk2eO8EdyGNPaNHSGn_w" name="getSize" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk2uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk2-O8EdyGNPaNHSGn_w" name="setSize" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk3OO8EdyGNPaNHSGn_w" name="size" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk3eO8EdyGNPaNHSGn_w" name="getColor" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk3uO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk3-O8EdyGNPaNHSGn_w" name="setColor" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk4OO8EdyGNPaNHSGn_w" name="color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk4eO8EdyGNPaNHSGn_w" name="getMask" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk4uO8EdyGNPaNHSGn_w" name="return" type="_6UUjcOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk4-O8EdyGNPaNHSGn_w" name="setMask" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk5OO8EdyGNPaNHSGn_w" name="mask" type="_6UUjcOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UUk5eO8EdyGNPaNHSGn_w" name="IMultiLayerSymbol">
+                  <generalization xmi:id="_6UUk5uO8EdyGNPaNHSGn_w" general="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUk5-O8EdyGNPaNHSGn_w" name="setLayer" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk6OO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUk6eO8EdyGNPaNHSGn_w" name="layer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk6uO8EdyGNPaNHSGn_w" name="swapLayers" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk6-O8EdyGNPaNHSGn_w" name="index1" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUk7OO8EdyGNPaNHSGn_w" name="index2" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk7eO8EdyGNPaNHSGn_w" name="getLayer" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk7uO8EdyGNPaNHSGn_w" name="layerIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUk7-O8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk8OO8EdyGNPaNHSGn_w" name="getLayerCount" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk8eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk8uO8EdyGNPaNHSGn_w" name="addLayer" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk8-O8EdyGNPaNHSGn_w" name="newLayer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk9OO8EdyGNPaNHSGn_w" name="addLayer" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk9eO8EdyGNPaNHSGn_w" name="newLayer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUk9uO8EdyGNPaNHSGn_w" name="layerIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk9-O8EdyGNPaNHSGn_w" name="removeLayer" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk-OO8EdyGNPaNHSGn_w" name="layer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUk-eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UUk-uO8EdyGNPaNHSGn_w" name="ILineSymbol">
+                  <generalization xmi:id="_6UUk--O8EdyGNPaNHSGn_w" general="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <generalization xmi:id="_6UUk_OO8EdyGNPaNHSGn_w" general="_6UUenuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUk_eO8EdyGNPaNHSGn_w" name="getColor" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUk_uO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUk_-O8EdyGNPaNHSGn_w" name="setLineColor" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlAOO8EdyGNPaNHSGn_w" name="color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlAeO8EdyGNPaNHSGn_w" name="getLineStyle" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlAuO8EdyGNPaNHSGn_w" name="return" type="_6UUjXuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlA-O8EdyGNPaNHSGn_w" name="setLineStyle" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlBOO8EdyGNPaNHSGn_w" name="lineStyle" type="_6UUjXuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlBeO8EdyGNPaNHSGn_w" name="setLineWidth" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlBuO8EdyGNPaNHSGn_w" name="width" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlB-O8EdyGNPaNHSGn_w" name="getLineWidth" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlCOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlCeO8EdyGNPaNHSGn_w" name="getAlpha" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlCuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlC-O8EdyGNPaNHSGn_w" name="setAlpha" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlDOO8EdyGNPaNHSGn_w" name="outlineAlpha" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UUlDeO8EdyGNPaNHSGn_w" name="IFillSymbol">
+                  <generalization xmi:id="_6UUlDuO8EdyGNPaNHSGn_w" general="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <generalization xmi:id="_6UUlD-O8EdyGNPaNHSGn_w" general="_6UUenuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUlEOO8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlEeO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlEuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlE-O8EdyGNPaNHSGn_w" name="getOnePointRgb" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlFOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlFeO8EdyGNPaNHSGn_w" name="setFillColor" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlFuO8EdyGNPaNHSGn_w" name="color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlF-O8EdyGNPaNHSGn_w" name="setOutline" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlGOO8EdyGNPaNHSGn_w" name="outline" type="_6UUk-uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlGeO8EdyGNPaNHSGn_w" name="getFillColor" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlGuO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlG-O8EdyGNPaNHSGn_w" name="getOutline" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlHOO8EdyGNPaNHSGn_w" name="return" type="_6UUk-uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlHeO8EdyGNPaNHSGn_w" name="getFillAlpha" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlHuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlH-O8EdyGNPaNHSGn_w" name="hasFill" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlIOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlIeO8EdyGNPaNHSGn_w" name="setHasFill" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlIuO8EdyGNPaNHSGn_w" name="hasFill" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlI-O8EdyGNPaNHSGn_w" name="hasOutline" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlJOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlJeO8EdyGNPaNHSGn_w" name="setHasOutline" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUlJuO8EdyGNPaNHSGn_w" name="hasOutline" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUlJ-O8EdyGNPaNHSGn_w" name="SimpleTextSymbol" clientDependency="_6UUlLuO8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6UUlKOO8EdyGNPaNHSGn_w" general="_6UUle-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUlKeO8EdyGNPaNHSGn_w" name="text" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUlKuO8EdyGNPaNHSGn_w" name="font" visibility="private" type="_6UUrN-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUlK-O8EdyGNPaNHSGn_w" name="textColor" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUlLOO8EdyGNPaNHSGn_w" name="rotation" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUlLeO8EdyGNPaNHSGn_w" name="frc" visibility="private" type="_6UUn_OO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUlLuO8EdyGNPaNHSGn_w" name="ITextSymbol" supplier="_6UUmTOO8EdyGNPaNHSGn_w" client="_6UUlJ-O8EdyGNPaNHSGn_w" contract="_6UUmTOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUlL-O8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUlMOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlMeO8EdyGNPaNHSGn_w" name="affineTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlMuO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlM-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlNOO8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                    <ownedParameter xmi:id="_6UUlNeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlNuO8EdyGNPaNHSGn_w" name="scaleInstance" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlN-O8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlOOO8EdyGNPaNHSGn_w" name="getOnePointRgb" visibility="public">
+                    <ownedParameter xmi:id="_6UUlOeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlOuO8EdyGNPaNHSGn_w" name="getPixExtentPlus" visibility="public">
+                    <ownedParameter xmi:id="_6UUlO-O8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlPOO8EdyGNPaNHSGn_w" name="distances" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlPeO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlPuO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlP-O8EdyGNPaNHSGn_w" name="getSymbolForSelection" visibility="public">
+                    <ownedParameter xmi:id="_6UUlQOO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlQeO8EdyGNPaNHSGn_w" name="getSymbolType" visibility="public">
+                    <ownedParameter xmi:id="_6UUlQuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlQ-O8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUlROO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlReO8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public">
+                    <ownedParameter xmi:id="_6UUlRuO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlR-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlSOO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUlSeO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlSuO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                    <ownedParameter xmi:id="_6UUlS-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlTOO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                    <ownedParameter xmi:id="_6UUlTeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlTuO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlT-O8EdyGNPaNHSGn_w" name="shape" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlUOO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlUeO8EdyGNPaNHSGn_w" name="getText" visibility="public">
+                    <ownedParameter xmi:id="_6UUlUuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlU-O8EdyGNPaNHSGn_w" name="getFont" visibility="public">
+                    <ownedParameter xmi:id="_6UUlVOO8EdyGNPaNHSGn_w" name="return" type="_6UUrN-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlVeO8EdyGNPaNHSGn_w" name="getTextColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUlVuO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlV-O8EdyGNPaNHSGn_w" name="setText" visibility="public">
+                    <ownedParameter xmi:id="_6UUlWOO8EdyGNPaNHSGn_w" name="text" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlWeO8EdyGNPaNHSGn_w" name="setFont" visibility="public">
+                    <ownedParameter xmi:id="_6UUlWuO8EdyGNPaNHSGn_w" name="font" type="_6UUrN-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlW-O8EdyGNPaNHSGn_w" name="setTextColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUlXOO8EdyGNPaNHSGn_w" name="color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlXeO8EdyGNPaNHSGn_w" name="setFontSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUlXuO8EdyGNPaNHSGn_w" name="size" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlX-O8EdyGNPaNHSGn_w" name="setRotation" visibility="public">
+                    <ownedParameter xmi:id="_6UUlYOO8EdyGNPaNHSGn_w" name="rotation" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlYeO8EdyGNPaNHSGn_w" name="getTextWrappingShape" visibility="public">
+                    <ownedParameter xmi:id="_6UUlYuO8EdyGNPaNHSGn_w" name="p" type="_6UUn_eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlY-O8EdyGNPaNHSGn_w" name="return" type="_6UUrNuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlZOO8EdyGNPaNHSGn_w" name="getBounds" visibility="public">
+                    <ownedParameter xmi:id="_6UUlZeO8EdyGNPaNHSGn_w" name="return" type="_6UUrOeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlZuO8EdyGNPaNHSGn_w" name="_getTextWrappingShape" visibility="private">
+                    <ownedParameter xmi:id="_6UUlZ-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlaOO8EdyGNPaNHSGn_w" name="p" type="_6UUn_eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlaeO8EdyGNPaNHSGn_w" name="return" type="_6UUrNuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlauO8EdyGNPaNHSGn_w" name="_getTextWrappingShape" visibility="private">
+                    <ownedParameter xmi:id="_6UUla-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlbOO8EdyGNPaNHSGn_w" name="targetSymbolShape" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlbeO8EdyGNPaNHSGn_w" name="return" type="_6UUrNuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlbuO8EdyGNPaNHSGn_w" name="setCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUlb-O8EdyGNPaNHSGn_w" name="cartographicSize" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlcOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlceO8EdyGNPaNHSGn_w" name="toCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUlcuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlc-O8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUldOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUldeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlduO8EdyGNPaNHSGn_w" name="getCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUld-O8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUleOO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUleeO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUleuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUle-O8EdyGNPaNHSGn_w" name="AbstractSymbol" clientDependency="_6UUlgOO8EdyGNPaNHSGn_w _6UUlgeO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UUlfOO8EdyGNPaNHSGn_w" name="desc" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUlfeO8EdyGNPaNHSGn_w" name="unit" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUlfuO8EdyGNPaNHSGn_w" name="referenceSystem" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUlf-O8EdyGNPaNHSGn_w" name="isShapeVisible" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUlgOO8EdyGNPaNHSGn_w" name="ISymbol" supplier="_6UUlkuO8EdyGNPaNHSGn_w" client="_6UUle-O8EdyGNPaNHSGn_w" contract="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUlgeO8EdyGNPaNHSGn_w" name="CartographicSupport" supplier="_6UUenuO8EdyGNPaNHSGn_w" client="_6UUle-O8EdyGNPaNHSGn_w" contract="_6UUenuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUlguO8EdyGNPaNHSGn_w" name="setDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UUlg-O8EdyGNPaNHSGn_w" name="desc" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlhOO8EdyGNPaNHSGn_w" name="getDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UUlheO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlhuO8EdyGNPaNHSGn_w" name="isShapeVisible" visibility="public">
+                    <ownedParameter xmi:id="_6UUlh-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUliOO8EdyGNPaNHSGn_w" name="setIsShapeVisible" visibility="public">
+                    <ownedParameter xmi:id="_6UUlieO8EdyGNPaNHSGn_w" name="isShapeVisible" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUliuO8EdyGNPaNHSGn_w" name="setUnit" visibility="public">
+                    <ownedParameter xmi:id="_6UUli-O8EdyGNPaNHSGn_w" name="unitIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUljOO8EdyGNPaNHSGn_w" name="getUnit" visibility="public">
+                    <ownedParameter xmi:id="_6UUljeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUljuO8EdyGNPaNHSGn_w" name="getReferenceSystem" visibility="public">
+                    <ownedParameter xmi:id="_6UUlj-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlkOO8EdyGNPaNHSGn_w" name="setReferenceSystem" visibility="public">
+                    <ownedParameter xmi:id="_6UUlkeO8EdyGNPaNHSGn_w" name="system" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UUlkuO8EdyGNPaNHSGn_w" name="ISymbol">
+                  <generalization xmi:id="_6UUlk-O8EdyGNPaNHSGn_w" general="_6UUfHuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUllOO8EdyGNPaNHSGn_w" name="SELECTION_COLOR" visibility="public" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUlleO8EdyGNPaNHSGn_w" name="getSymbolForSelection" visibility="public">
+                    <ownedParameter xmi:id="_6UUlluO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUll-O8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUlmOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlmeO8EdyGNPaNHSGn_w" name="affineTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlmuO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlm-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlnOO8EdyGNPaNHSGn_w" name="getPixExtentPlus" visibility="public">
+                    <ownedParameter xmi:id="_6UUlneO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlnuO8EdyGNPaNHSGn_w" name="distances" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUln-O8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUloOO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUloeO8EdyGNPaNHSGn_w" name="getOnePointRgb" visibility="public">
+                    <ownedParameter xmi:id="_6UUlouO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlo-O8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUlpOO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlpeO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUlpuO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlp-O8EdyGNPaNHSGn_w" name="getDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UUlqOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlqeO8EdyGNPaNHSGn_w" name="isShapeVisible" visibility="public">
+                    <ownedParameter xmi:id="_6UUlquO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlq-O8EdyGNPaNHSGn_w" name="setDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UUlrOO8EdyGNPaNHSGn_w" name="desc" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlreO8EdyGNPaNHSGn_w" name="getSymbolType" visibility="public">
+                    <ownedParameter xmi:id="_6UUlruO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlr-O8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public">
+                    <ownedParameter xmi:id="_6UUlsOO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlseO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlsuO8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                    <ownedParameter xmi:id="_6UUls-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUltOO8EdyGNPaNHSGn_w" name="scaleInstance" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlteO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUltuO8EdyGNPaNHSGn_w" name="SymbolDrawingException">
+                  <generalization xmi:id="_6UUlt-O8EdyGNPaNHSGn_w" general="_6UnhhOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUluOO8EdyGNPaNHSGn_w" name="serialVersionUID" visibility="private" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUlueO8EdyGNPaNHSGn_w" name="UNSUPPORTED_SET_OF_SETTINGS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUluuO8EdyGNPaNHSGn_w" name="SHAPETYPE_MISMATCH" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUlu-O8EdyGNPaNHSGn_w" name="STR_UNSUPPORTED_SET_OF_SETTINGS" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUlvOO8EdyGNPaNHSGn_w" name="type" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUlveO8EdyGNPaNHSGn_w" name="getType" visibility="public">
+                    <ownedParameter xmi:id="_6UUlvuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUlv-O8EdyGNPaNHSGn_w" name="SimpleFillSymbol">
+                  <generalization xmi:id="_6UUlwOO8EdyGNPaNHSGn_w" general="_6UUmYeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUlweO8EdyGNPaNHSGn_w" name="symbolForSelection" visibility="private" type="_6UUlv-O8EdyGNPaNHSGn_w" association="_6UUoCuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUlwuO8EdyGNPaNHSGn_w" name="getSymbolForSelection" visibility="public">
+                    <ownedParameter xmi:id="_6UUlw-O8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlxOO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUlxeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlxuO8EdyGNPaNHSGn_w" name="affineTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlx-O8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlyOO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlyeO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUlyuO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUly-O8EdyGNPaNHSGn_w" name="getSymbolType" visibility="public">
+                    <ownedParameter xmi:id="_6UUlzOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUlzeO8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                    <ownedParameter xmi:id="_6UUlzuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUlz-O8EdyGNPaNHSGn_w" name="scaleInstance" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUl0OO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUl0eO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                    <ownedParameter xmi:id="_6UUl0uO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUl0-O8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUl1OO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUl1eO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                    <ownedParameter xmi:id="_6UUl1uO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUl1-O8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUl2OO8EdyGNPaNHSGn_w" name="shape" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUl2eO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUl2uO8EdyGNPaNHSGn_w" name="SimpleLineSymbol">
+                  <generalization xmi:id="_6UUl2-O8EdyGNPaNHSGn_w" general="_6UUkKuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUl3OO8EdyGNPaNHSGn_w" name="symbolForSelection" type="_6UUl2uO8EdyGNPaNHSGn_w" association="_6UUoDOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUl3eO8EdyGNPaNHSGn_w" name="width" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUl3uO8EdyGNPaNHSGn_w" name="getSymbolForSelection" visibility="public">
+                    <ownedParameter xmi:id="_6UUl3-O8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUl4OO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUl4eO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUl4uO8EdyGNPaNHSGn_w" name="affineTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUl4-O8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUl5OO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUl5eO8EdyGNPaNHSGn_w" name="getOnePointRgb" visibility="public">
+                    <ownedParameter xmi:id="_6UUl5uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUl5-O8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUl6OO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUl6eO8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                    <ownedParameter xmi:id="_6UUl6uO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUl6-O8EdyGNPaNHSGn_w" name="scaleInstance" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUl7OO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUl7eO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                    <ownedParameter xmi:id="_6UUl7uO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUl7-O8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUl8OO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUl8eO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                    <ownedParameter xmi:id="_6UUl8uO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUl8-O8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUl9OO8EdyGNPaNHSGn_w" name="shape" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUl9eO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUl9uO8EdyGNPaNHSGn_w" name="setLineWidth" visibility="public">
+                    <ownedParameter xmi:id="_6UUl9-O8EdyGNPaNHSGn_w" name="width" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUl-OO8EdyGNPaNHSGn_w" name="getLineWidth" visibility="public">
+                    <ownedParameter xmi:id="_6UUl-eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUl-uO8EdyGNPaNHSGn_w" name="MultiLayerFillSymbol" clientDependency="_6UUmAOO8EdyGNPaNHSGn_w _6UUmAeO8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6UUl--O8EdyGNPaNHSGn_w" general="_6UUmYeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUl_OO8EdyGNPaNHSGn_w" name="OPACITY_SELECTION_FACTOR" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUl_eO8EdyGNPaNHSGn_w" name="layers" visibility="private" type="_6UUlDeO8EdyGNPaNHSGn_w" association="_6UUoDuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUl_uO8EdyGNPaNHSGn_w" name="selectionSymbol" visibility="private" type="_6UUl-uO8EdyGNPaNHSGn_w" association="_6UUoEOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUl_-O8EdyGNPaNHSGn_w" name="symbolType" visibility="private" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUmAOO8EdyGNPaNHSGn_w" name="IFillSymbol" supplier="_6UUlDeO8EdyGNPaNHSGn_w" client="_6UUl-uO8EdyGNPaNHSGn_w" contract="_6UUlDeO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUmAeO8EdyGNPaNHSGn_w" name="IMultiLayerSymbol" supplier="_6UUk5eO8EdyGNPaNHSGn_w" client="_6UUl-uO8EdyGNPaNHSGn_w" contract="_6UUk5eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUmAuO8EdyGNPaNHSGn_w" name="getFillColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUmA-O8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmBOO8EdyGNPaNHSGn_w" name="getOnePointRgb" visibility="public">
+                    <ownedParameter xmi:id="_6UUmBeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmBuO8EdyGNPaNHSGn_w" name="getOutline" visibility="public">
+                    <ownedParameter xmi:id="_6UUmB-O8EdyGNPaNHSGn_w" name="return" type="_6UUk-uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmCOO8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public">
+                    <ownedParameter xmi:id="_6UUmCeO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmCuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmC-O8EdyGNPaNHSGn_w" name="setFillColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUmDOO8EdyGNPaNHSGn_w" name="color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmDeO8EdyGNPaNHSGn_w" name="setOutline" visibility="public">
+                    <ownedParameter xmi:id="_6UUmDuO8EdyGNPaNHSGn_w" name="outline" type="_6UUk-uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmD-O8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUmEOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmEeO8EdyGNPaNHSGn_w" name="affineTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmEuO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmE-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmFOO8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                    <ownedParameter xmi:id="_6UUmFeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmFuO8EdyGNPaNHSGn_w" name="scaleInstance" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmF-O8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmGOO8EdyGNPaNHSGn_w" name="getPixExtentPlus" visibility="public">
+                    <ownedParameter xmi:id="_6UUmGeO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmGuO8EdyGNPaNHSGn_w" name="distances" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmG-O8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmHOO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmHeO8EdyGNPaNHSGn_w" name="getSymbolForSelection" visibility="public">
+                    <ownedParameter xmi:id="_6UUmHuO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmH-O8EdyGNPaNHSGn_w" name="getSymbolType" visibility="public">
+                    <ownedParameter xmi:id="_6UUmIOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmIeO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUmIuO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmI-O8EdyGNPaNHSGn_w" name="setPrintingProperties" visibility="public">
+                    <ownedParameter xmi:id="_6UUmJOO8EdyGNPaNHSGn_w" name="printProperties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmJeO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                    <ownedParameter xmi:id="_6UUmJuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmJ-O8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUmKOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmKeO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                    <ownedParameter xmi:id="_6UUmKuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmK-O8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmLOO8EdyGNPaNHSGn_w" name="shape" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmLeO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmLuO8EdyGNPaNHSGn_w" name="setLayer" visibility="public">
+                    <ownedParameter xmi:id="_6UUmL-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmMOO8EdyGNPaNHSGn_w" name="layer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmMeO8EdyGNPaNHSGn_w" name="swapLayers" visibility="public">
+                    <ownedParameter xmi:id="_6UUmMuO8EdyGNPaNHSGn_w" name="index1" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmM-O8EdyGNPaNHSGn_w" name="index2" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmNOO8EdyGNPaNHSGn_w" name="getLayer" visibility="public">
+                    <ownedParameter xmi:id="_6UUmNeO8EdyGNPaNHSGn_w" name="layerIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmNuO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmN-O8EdyGNPaNHSGn_w" name="getLayerCount" visibility="public">
+                    <ownedParameter xmi:id="_6UUmOOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmOeO8EdyGNPaNHSGn_w" name="addLayer" visibility="public">
+                    <ownedParameter xmi:id="_6UUmOuO8EdyGNPaNHSGn_w" name="newLayer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmO-O8EdyGNPaNHSGn_w" name="addLayer" visibility="public">
+                    <ownedParameter xmi:id="_6UUmPOO8EdyGNPaNHSGn_w" name="newLayer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmPeO8EdyGNPaNHSGn_w" name="layerIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmPuO8EdyGNPaNHSGn_w" name="removeLayer" visibility="public">
+                    <ownedParameter xmi:id="_6UUmP-O8EdyGNPaNHSGn_w" name="layer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmQOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmQeO8EdyGNPaNHSGn_w" name="setUnit" visibility="public">
+                    <ownedParameter xmi:id="_6UUmQuO8EdyGNPaNHSGn_w" name="unitIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmQ-O8EdyGNPaNHSGn_w" name="setReferenceSystem" visibility="public">
+                    <ownedParameter xmi:id="_6UUmROO8EdyGNPaNHSGn_w" name="system" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmReO8EdyGNPaNHSGn_w" name="getFillAlpha" visibility="public">
+                    <ownedParameter xmi:id="_6UUmRuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmR-O8EdyGNPaNHSGn_w" name="toCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUmSOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmSeO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmSuO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmS-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UUmTOO8EdyGNPaNHSGn_w" name="ITextSymbol">
+                  <generalization xmi:id="_6UUmTeO8EdyGNPaNHSGn_w" general="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUmTuO8EdyGNPaNHSGn_w" name="setFont" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUmT-O8EdyGNPaNHSGn_w" name="font" type="_6UUrN-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmUOO8EdyGNPaNHSGn_w" name="getFont" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUmUeO8EdyGNPaNHSGn_w" name="return" type="_6UUrN-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmUuO8EdyGNPaNHSGn_w" name="getTextColor" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUmU-O8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmVOO8EdyGNPaNHSGn_w" name="setTextColor" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUmVeO8EdyGNPaNHSGn_w" name="color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmVuO8EdyGNPaNHSGn_w" name="getText" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUmV-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmWOO8EdyGNPaNHSGn_w" name="setText" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUmWeO8EdyGNPaNHSGn_w" name="text" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmWuO8EdyGNPaNHSGn_w" name="setFontSize" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUmW-O8EdyGNPaNHSGn_w" name="d" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmXOO8EdyGNPaNHSGn_w" name="getTextWrappingShape" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUmXeO8EdyGNPaNHSGn_w" name="p" type="_6UUn_eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmXuO8EdyGNPaNHSGn_w" name="return" type="_6UUrNuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmX-O8EdyGNPaNHSGn_w" name="getBounds" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UUmYOO8EdyGNPaNHSGn_w" name="return" type="_6UUrOeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUmYeO8EdyGNPaNHSGn_w" name="AbstractFillSymbol" clientDependency="_6UUmZ-O8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6UUmYuO8EdyGNPaNHSGn_w" general="_6UUle-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUmY-O8EdyGNPaNHSGn_w" name="hasFill" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUmZOO8EdyGNPaNHSGn_w" name="hasOutline" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUmZeO8EdyGNPaNHSGn_w" name="color" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUmZuO8EdyGNPaNHSGn_w" name="outline" visibility="private" type="_6UUk-uO8EdyGNPaNHSGn_w" association="_6UUoEuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUmZ-O8EdyGNPaNHSGn_w" name="IFillSymbol" supplier="_6UUlDeO8EdyGNPaNHSGn_w" client="_6UUmYeO8EdyGNPaNHSGn_w" contract="_6UUlDeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUmaOO8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public">
+                    <ownedParameter xmi:id="_6UUmaeO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmauO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUma-O8EdyGNPaNHSGn_w" name="getOnePointRgb" visibility="public">
+                    <ownedParameter xmi:id="_6UUmbOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmbeO8EdyGNPaNHSGn_w" name="getPixExtentPlus" visibility="public">
+                    <ownedParameter xmi:id="_6UUmbuO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmb-O8EdyGNPaNHSGn_w" name="distances" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmcOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmceO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmcuO8EdyGNPaNHSGn_w" name="setFillColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUmc-O8EdyGNPaNHSGn_w" name="color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmdOO8EdyGNPaNHSGn_w" name="setOutline" visibility="public">
+                    <ownedParameter xmi:id="_6UUmdeO8EdyGNPaNHSGn_w" name="outline" type="_6UUk-uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmduO8EdyGNPaNHSGn_w" name="getFillColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUmd-O8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmeOO8EdyGNPaNHSGn_w" name="getOutline" visibility="public">
+                    <ownedParameter xmi:id="_6UUmeeO8EdyGNPaNHSGn_w" name="return" type="_6UUk-uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmeuO8EdyGNPaNHSGn_w" name="getFillAlpha" visibility="public">
+                    <ownedParameter xmi:id="_6UUme-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmfOO8EdyGNPaNHSGn_w" name="setCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUmfeO8EdyGNPaNHSGn_w" name="cartographicSize" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmfuO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmf-O8EdyGNPaNHSGn_w" name="toCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUmgOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmgeO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmguO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmg-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmhOO8EdyGNPaNHSGn_w" name="hasFill" visibility="public">
+                    <ownedParameter xmi:id="_6UUmheO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmhuO8EdyGNPaNHSGn_w" name="setHasFill" visibility="public">
+                    <ownedParameter xmi:id="_6UUmh-O8EdyGNPaNHSGn_w" name="hasFill" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmiOO8EdyGNPaNHSGn_w" name="hasOutline" visibility="public">
+                    <ownedParameter xmi:id="_6UUmieO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmiuO8EdyGNPaNHSGn_w" name="setHasOutline" visibility="public">
+                    <ownedParameter xmi:id="_6UUmi-O8EdyGNPaNHSGn_w" name="hasOutline" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmjOO8EdyGNPaNHSGn_w" name="getCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUmjeO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmjuO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmj-O8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmkOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmkeO8EdyGNPaNHSGn_w" name="setUnit" visibility="public">
+                    <ownedParameter xmi:id="_6UUmkuO8EdyGNPaNHSGn_w" name="unitIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUmk-O8EdyGNPaNHSGn_w" name="MultiLayerLineSymbol" clientDependency="_6UUmmOO8EdyGNPaNHSGn_w _6UUmmeO8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6UUmlOO8EdyGNPaNHSGn_w" general="_6UUkKuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUmleO8EdyGNPaNHSGn_w" name="layers" visibility="private" type="_6UUk-uO8EdyGNPaNHSGn_w" association="_6UUoFOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUmluO8EdyGNPaNHSGn_w" name="selectionSymbol" visibility="private" type="_6UUk-uO8EdyGNPaNHSGn_w" association="_6UUoFuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUml-O8EdyGNPaNHSGn_w" name="lineWidth" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUmmOO8EdyGNPaNHSGn_w" name="ILineSymbol" supplier="_6UUk-uO8EdyGNPaNHSGn_w" client="_6UUmk-O8EdyGNPaNHSGn_w" contract="_6UUk-uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUmmeO8EdyGNPaNHSGn_w" name="IMultiLayerSymbol" supplier="_6UUk5eO8EdyGNPaNHSGn_w" client="_6UUmk-O8EdyGNPaNHSGn_w" contract="_6UUk5eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUmmuO8EdyGNPaNHSGn_w" name="getColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUmm-O8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmnOO8EdyGNPaNHSGn_w" name="getLineStyle" visibility="public">
+                    <ownedParameter xmi:id="_6UUmneO8EdyGNPaNHSGn_w" name="return" type="_6UUjXuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmnuO8EdyGNPaNHSGn_w" name="getLineWidth" visibility="public">
+                    <ownedParameter xmi:id="_6UUmn-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmoOO8EdyGNPaNHSGn_w" name="setLineColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUmoeO8EdyGNPaNHSGn_w" name="color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmouO8EdyGNPaNHSGn_w" name="setLineStyle" visibility="public">
+                    <ownedParameter xmi:id="_6UUmo-O8EdyGNPaNHSGn_w" name="lineStyle" type="_6UUjXuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmpOO8EdyGNPaNHSGn_w" name="setLineWidth" visibility="public">
+                    <ownedParameter xmi:id="_6UUmpeO8EdyGNPaNHSGn_w" name="width" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmpuO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUmp-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmqOO8EdyGNPaNHSGn_w" name="affineTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmqeO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmquO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmq-O8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                    <ownedParameter xmi:id="_6UUmrOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmreO8EdyGNPaNHSGn_w" name="scaleInstance" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmruO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmr-O8EdyGNPaNHSGn_w" name="getOnePointRgb" visibility="public">
+                    <ownedParameter xmi:id="_6UUmsOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmseO8EdyGNPaNHSGn_w" name="getPixExtentPlus" visibility="public">
+                    <ownedParameter xmi:id="_6UUmsuO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUms-O8EdyGNPaNHSGn_w" name="distances" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmtOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmteO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmtuO8EdyGNPaNHSGn_w" name="getSymbolForSelection" visibility="public">
+                    <ownedParameter xmi:id="_6UUmt-O8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmuOO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUmueO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmuuO8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public">
+                    <ownedParameter xmi:id="_6UUmu-O8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmvOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmveO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                    <ownedParameter xmi:id="_6UUmvuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmv-O8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUmwOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmweO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                    <ownedParameter xmi:id="_6UUmwuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmw-O8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmxOO8EdyGNPaNHSGn_w" name="shape" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmxeO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmxuO8EdyGNPaNHSGn_w" name="setLayer" visibility="public">
+                    <ownedParameter xmi:id="_6UUmx-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmyOO8EdyGNPaNHSGn_w" name="layer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmyeO8EdyGNPaNHSGn_w" name="swapLayers" visibility="public">
+                    <ownedParameter xmi:id="_6UUmyuO8EdyGNPaNHSGn_w" name="index1" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmy-O8EdyGNPaNHSGn_w" name="index2" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmzOO8EdyGNPaNHSGn_w" name="getLayer" visibility="public">
+                    <ownedParameter xmi:id="_6UUmzeO8EdyGNPaNHSGn_w" name="layerIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUmzuO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUmz-O8EdyGNPaNHSGn_w" name="getLayerCount" visibility="public">
+                    <ownedParameter xmi:id="_6UUm0OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm0eO8EdyGNPaNHSGn_w" name="addLayer" visibility="public">
+                    <ownedParameter xmi:id="_6UUm0uO8EdyGNPaNHSGn_w" name="newLayer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm0-O8EdyGNPaNHSGn_w" name="addLayer" visibility="public">
+                    <ownedParameter xmi:id="_6UUm1OO8EdyGNPaNHSGn_w" name="newLayer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUm1eO8EdyGNPaNHSGn_w" name="layerIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm1uO8EdyGNPaNHSGn_w" name="removeLayer" visibility="public">
+                    <ownedParameter xmi:id="_6UUm1-O8EdyGNPaNHSGn_w" name="layer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUm2OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm2eO8EdyGNPaNHSGn_w" name="getAlpha" visibility="public">
+                    <ownedParameter xmi:id="_6UUm2uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm2-O8EdyGNPaNHSGn_w" name="setAlpha" visibility="public">
+                    <ownedParameter xmi:id="_6UUm3OO8EdyGNPaNHSGn_w" name="outlineAlpha" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm3eO8EdyGNPaNHSGn_w" name="setUnit" visibility="public">
+                    <ownedParameter xmi:id="_6UUm3uO8EdyGNPaNHSGn_w" name="unitIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm3-O8EdyGNPaNHSGn_w" name="setReferenceSystem" visibility="public">
+                    <ownedParameter xmi:id="_6UUm4OO8EdyGNPaNHSGn_w" name="system" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm4eO8EdyGNPaNHSGn_w" name="setCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUm4uO8EdyGNPaNHSGn_w" name="cartographicSize" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUm4-O8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUm5OO8EdyGNPaNHSGn_w" name="MultiShapeSymbol" clientDependency="_6UUm7OO8EdyGNPaNHSGn_w _6UUm7eO8EdyGNPaNHSGn_w _6UUm7uO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UUm5eO8EdyGNPaNHSGn_w" name="marker" visibility="private" type="_6UUkzuO8EdyGNPaNHSGn_w" association="_6UUoGOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUm5uO8EdyGNPaNHSGn_w" name="line" visibility="private" type="_6UUk-uO8EdyGNPaNHSGn_w" association="_6UUoGuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUm5-O8EdyGNPaNHSGn_w" name="fill" visibility="private" type="_6UUlDeO8EdyGNPaNHSGn_w" association="_6UUoHOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUm6OO8EdyGNPaNHSGn_w" name="mask" visibility="private" type="_6UUjcOO8EdyGNPaNHSGn_w" association="_6UUoHuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUm6eO8EdyGNPaNHSGn_w" name="desc" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUm6uO8EdyGNPaNHSGn_w" name="referenceSystem" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUm6-O8EdyGNPaNHSGn_w" name="symSelect" visibility="private" type="_6UUm5OO8EdyGNPaNHSGn_w" association="_6UUoIOO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUm7OO8EdyGNPaNHSGn_w" name="ILineSymbol" supplier="_6UUk-uO8EdyGNPaNHSGn_w" client="_6UUm5OO8EdyGNPaNHSGn_w" contract="_6UUk-uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUm7eO8EdyGNPaNHSGn_w" name="IMarkerSymbol" supplier="_6UUkzuO8EdyGNPaNHSGn_w" client="_6UUm5OO8EdyGNPaNHSGn_w" contract="_6UUkzuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUm7uO8EdyGNPaNHSGn_w" name="IFillSymbol" supplier="_6UUlDeO8EdyGNPaNHSGn_w" client="_6UUm5OO8EdyGNPaNHSGn_w" contract="_6UUlDeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUm7-O8EdyGNPaNHSGn_w" name="getLineColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUm8OO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm8eO8EdyGNPaNHSGn_w" name="setLineColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUm8uO8EdyGNPaNHSGn_w" name="color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm8-O8EdyGNPaNHSGn_w" name="getLineStyle" visibility="public">
+                    <ownedParameter xmi:id="_6UUm9OO8EdyGNPaNHSGn_w" name="return" type="_6UUjXuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm9eO8EdyGNPaNHSGn_w" name="setLineStyle" visibility="public">
+                    <ownedParameter xmi:id="_6UUm9uO8EdyGNPaNHSGn_w" name="lineStyle" type="_6UUjXuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm9-O8EdyGNPaNHSGn_w" name="setLineWidth" visibility="public">
+                    <ownedParameter xmi:id="_6UUm-OO8EdyGNPaNHSGn_w" name="width" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm-eO8EdyGNPaNHSGn_w" name="getLineWidth" visibility="public">
+                    <ownedParameter xmi:id="_6UUm-uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm--O8EdyGNPaNHSGn_w" name="getAlpha" visibility="public">
+                    <ownedParameter xmi:id="_6UUm_OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm_eO8EdyGNPaNHSGn_w" name="setAlpha" visibility="public">
+                    <ownedParameter xmi:id="_6UUm_uO8EdyGNPaNHSGn_w" name="outlineAlpha" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUm_-O8EdyGNPaNHSGn_w" name="getSymbolForSelection" visibility="public">
+                    <ownedParameter xmi:id="_6UUnAOO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnAeO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUnAuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnA-O8EdyGNPaNHSGn_w" name="affineTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnBOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnBeO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnBuO8EdyGNPaNHSGn_w" name="getPixExtentPlus" visibility="public">
+                    <ownedParameter xmi:id="_6UUnB-O8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnCOO8EdyGNPaNHSGn_w" name="distances" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnCeO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnCuO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnC-O8EdyGNPaNHSGn_w" name="getOnePointRgb" visibility="public">
+                    <ownedParameter xmi:id="_6UUnDOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnDeO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUnDuO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnD-O8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUnEOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnEeO8EdyGNPaNHSGn_w" name="getDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UUnEuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnE-O8EdyGNPaNHSGn_w" name="isShapeVisible" visibility="public">
+                    <ownedParameter xmi:id="_6UUnFOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnFeO8EdyGNPaNHSGn_w" name="setDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UUnFuO8EdyGNPaNHSGn_w" name="desc" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnF-O8EdyGNPaNHSGn_w" name="getSymbolType" visibility="public">
+                    <ownedParameter xmi:id="_6UUnGOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnGeO8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public">
+                    <ownedParameter xmi:id="_6UUnGuO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnG-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnHOO8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                    <ownedParameter xmi:id="_6UUnHeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnHuO8EdyGNPaNHSGn_w" name="scaleInstance" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnH-O8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnIOO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                    <ownedParameter xmi:id="_6UUnIeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnIuO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                    <ownedParameter xmi:id="_6UUnI-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnJOO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnJeO8EdyGNPaNHSGn_w" name="shape" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnJuO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnJ-O8EdyGNPaNHSGn_w" name="getRotation" visibility="public">
+                    <ownedParameter xmi:id="_6UUnKOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnKeO8EdyGNPaNHSGn_w" name="setRotation" visibility="public">
+                    <ownedParameter xmi:id="_6UUnKuO8EdyGNPaNHSGn_w" name="rotation" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnK-O8EdyGNPaNHSGn_w" name="getOffset" visibility="public">
+                    <ownedParameter xmi:id="_6UUnLOO8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnLeO8EdyGNPaNHSGn_w" name="setOffset" visibility="public">
+                    <ownedParameter xmi:id="_6UUnLuO8EdyGNPaNHSGn_w" name="offset" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnL-O8EdyGNPaNHSGn_w" name="getSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUnMOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnMeO8EdyGNPaNHSGn_w" name="setSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUnMuO8EdyGNPaNHSGn_w" name="size" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnM-O8EdyGNPaNHSGn_w" name="getColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUnNOO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnNeO8EdyGNPaNHSGn_w" name="setColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUnNuO8EdyGNPaNHSGn_w" name="color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnN-O8EdyGNPaNHSGn_w" name="setFillColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUnOOO8EdyGNPaNHSGn_w" name="color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnOeO8EdyGNPaNHSGn_w" name="setOutline" visibility="public">
+                    <ownedParameter xmi:id="_6UUnOuO8EdyGNPaNHSGn_w" name="outline" type="_6UUk-uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnO-O8EdyGNPaNHSGn_w" name="getFillColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUnPOO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnPeO8EdyGNPaNHSGn_w" name="getOutline" visibility="public">
+                    <ownedParameter xmi:id="_6UUnPuO8EdyGNPaNHSGn_w" name="return" type="_6UUk-uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnP-O8EdyGNPaNHSGn_w" name="getFillAlpha" visibility="public">
+                    <ownedParameter xmi:id="_6UUnQOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnQeO8EdyGNPaNHSGn_w" name="getMask" visibility="public">
+                    <ownedParameter xmi:id="_6UUnQuO8EdyGNPaNHSGn_w" name="return" type="_6UUjcOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnQ-O8EdyGNPaNHSGn_w" name="setUnit" visibility="public">
+                    <ownedParameter xmi:id="_6UUnROO8EdyGNPaNHSGn_w" name="unitIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnReO8EdyGNPaNHSGn_w" name="getUnit" visibility="public">
+                    <ownedParameter xmi:id="_6UUnRuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnR-O8EdyGNPaNHSGn_w" name="setMask" visibility="public">
+                    <ownedParameter xmi:id="_6UUnSOO8EdyGNPaNHSGn_w" name="mask" type="_6UUjcOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnSeO8EdyGNPaNHSGn_w" name="getReferenceSystem" visibility="public">
+                    <ownedParameter xmi:id="_6UUnSuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnS-O8EdyGNPaNHSGn_w" name="setReferenceSystem" visibility="public">
+                    <ownedParameter xmi:id="_6UUnTOO8EdyGNPaNHSGn_w" name="system" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnTeO8EdyGNPaNHSGn_w" name="toCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUnTuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnT-O8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnUOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnUeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnUuO8EdyGNPaNHSGn_w" name="setCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUnU-O8EdyGNPaNHSGn_w" name="cartographicSize" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnVOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnVeO8EdyGNPaNHSGn_w" name="getCartographicSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUnVuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnV-O8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnWOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnWeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnWuO8EdyGNPaNHSGn_w" name="getMarkerSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUnW-O8EdyGNPaNHSGn_w" name="return" type="_6UUkzuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnXOO8EdyGNPaNHSGn_w" name="getLineSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUnXeO8EdyGNPaNHSGn_w" name="return" type="_6UUk-uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnXuO8EdyGNPaNHSGn_w" name="getFillSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUnX-O8EdyGNPaNHSGn_w" name="return" type="_6UUlDeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnYOO8EdyGNPaNHSGn_w" name="setMarkerSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUnYeO8EdyGNPaNHSGn_w" name="markerSymbol" type="_6UUkzuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnYuO8EdyGNPaNHSGn_w" name="setLineSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUnY-O8EdyGNPaNHSGn_w" name="lineSymbol" type="_6UUk-uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnZOO8EdyGNPaNHSGn_w" name="setFillSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUnZeO8EdyGNPaNHSGn_w" name="fillFillSymbol" type="_6UUlDeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnZuO8EdyGNPaNHSGn_w" name="hasFill" visibility="public">
+                    <ownedParameter xmi:id="_6UUnZ-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnaOO8EdyGNPaNHSGn_w" name="setHasFill" visibility="public">
+                    <ownedParameter xmi:id="_6UUnaeO8EdyGNPaNHSGn_w" name="hasFill" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnauO8EdyGNPaNHSGn_w" name="hasOutline" visibility="public">
+                    <ownedParameter xmi:id="_6UUna-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnbOO8EdyGNPaNHSGn_w" name="setHasOutline" visibility="public">
+                    <ownedParameter xmi:id="_6UUnbeO8EdyGNPaNHSGn_w" name="hasOutline" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUnbuO8EdyGNPaNHSGn_w" name="TestMultiLayerSymbol">
+                  <generalization xmi:id="_6UUnb-O8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUncOO8EdyGNPaNHSGn_w" name="symbols" type="_6UUlkuO8EdyGNPaNHSGn_w" association="_6UUoIuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUnceO8EdyGNPaNHSGn_w" name="setUp" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUncuO8EdyGNPaNHSGn_w" name="testLayerTypeAdditionFor_MARKERS" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUnc-O8EdyGNPaNHSGn_w" name="testLayerTypeAdditionFor_LINES" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUndOO8EdyGNPaNHSGn_w" name="testLayerTypeAdditionFor_FILL" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUndeO8EdyGNPaNHSGn_w" name="testLayerAdditionPositionConsistencyMultiLayer_MARKER_Symbol" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUnduO8EdyGNPaNHSGn_w" name="testLayerAdditionPositionConsistencyMultiLayer_LINE_Symbol" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUnd-O8EdyGNPaNHSGn_w" name="testLayerAdditionPositionConsistencyMultiLayer_FILL_Symbol" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUneOO8EdyGNPaNHSGn_w" name="testMultiLayer_MARKER_SymbolLayerSwapping" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUneeO8EdyGNPaNHSGn_w" name="testMultiLayer_LINE_SymbolLayerSwapping" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUneuO8EdyGNPaNHSGn_w" name="testMultiLayer_FILL_SymbolLayerSwapping" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUne-O8EdyGNPaNHSGn_w" name="testMultiLayer_MARKER_IndexOutOfBounds" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUnfOO8EdyGNPaNHSGn_w" name="testMultiLayer_LINE_IndexOutOfBounds" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUnfeO8EdyGNPaNHSGn_w" name="testMultiLayer_FILL_IndexOutOfBounds" visibility="public"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUnfuO8EdyGNPaNHSGn_w" name="SimpleLineSymbolTest">
+                  <generalization xmi:id="_6UUnf-O8EdyGNPaNHSGn_w" general="_6UUnn-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUngOO8EdyGNPaNHSGn_w" name="SimpleTextSymbolTest">
+                  <generalization xmi:id="_6UUngeO8EdyGNPaNHSGn_w" general="_6UUnn-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUnguO8EdyGNPaNHSGn_w" name="TestDrawLines">
+                  <generalization xmi:id="_6UUng-O8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnhOO8EdyGNPaNHSGn_w" name="symbols" visibility="private" type="_6UUk-uO8EdyGNPaNHSGn_w" association="_6UUoJOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnheO8EdyGNPaNHSGn_w" name="sz" visibility="private" type="_6UnhhuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnhuO8EdyGNPaNHSGn_w" name="centerL" visibility="private" type="_6UdsOuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnh-O8EdyGNPaNHSGn_w" name="sizes" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUniOO8EdyGNPaNHSGn_w" name="INNER_TOLERANCE" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnieO8EdyGNPaNHSGn_w" name="OUTTER_TOLERANCE" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUniuO8EdyGNPaNHSGn_w" name="setUp" visibility="protected"/>
+                  <ownedOperation xmi:id="_6UUni-O8EdyGNPaNHSGn_w" name="testDrawingSize" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUnjOO8EdyGNPaNHSGn_w" name="isOutsideRect" visibility="private">
+                    <ownedParameter xmi:id="_6UUnjeO8EdyGNPaNHSGn_w" name="bi" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnjuO8EdyGNPaNHSGn_w" name="upper" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnj-O8EdyGNPaNHSGn_w" name="lower" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnkOO8EdyGNPaNHSGn_w" name="outterTolerance" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnkeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnkuO8EdyGNPaNHSGn_w" name="fitsInsideRect" visibility="private">
+                    <ownedParameter xmi:id="_6UUnk-O8EdyGNPaNHSGn_w" name="bi" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnlOO8EdyGNPaNHSGn_w" name="upper" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnleO8EdyGNPaNHSGn_w" name="lower" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnluO8EdyGNPaNHSGn_w" name="innerTolerance" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnl-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UUnmOO8EdyGNPaNHSGn_w" name="IDrawFillSymbol">
+                  <ownedOperation xmi:id="_6UUnmeO8EdyGNPaNHSGn_w" name="makeSymbolTransparent">
+                    <ownedParameter xmi:id="_6UUnmuO8EdyGNPaNHSGn_w" name="newSymbol" type="_6UUlDeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnm-O8EdyGNPaNHSGn_w" name="return" type="_6UUlDeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnnOO8EdyGNPaNHSGn_w" name="isSuitableFor">
+                    <ownedParameter xmi:id="_6UUnneO8EdyGNPaNHSGn_w" name="newSymbol" type="_6UUlDeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnnuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUnn-O8EdyGNPaNHSGn_w" name="AbstractSymbolTestCase">
+                  <generalization xmi:id="_6UUnoOO8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnoeO8EdyGNPaNHSGn_w" name="symClazz" visibility="protected" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUnouO8EdyGNPaNHSGn_w" name="newInstance" visibility="public">
+                    <ownedParameter xmi:id="_6UUno-O8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUnpOO8EdyGNPaNHSGn_w" name="SimpleMarkerSymbolTest">
+                  <generalization xmi:id="_6UUnpeO8EdyGNPaNHSGn_w" general="_6UUnn-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUnpuO8EdyGNPaNHSGn_w" name="TestDrawFills">
+                  <generalization xmi:id="_6UUnp-O8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnqOO8EdyGNPaNHSGn_w" name="sz" visibility="private" type="_6UnhhuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnqeO8EdyGNPaNHSGn_w" name="centerP" visibility="private" type="_6UUn_eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnquO8EdyGNPaNHSGn_w" name="OUTTER_TOLERANCE" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnq-O8EdyGNPaNHSGn_w" name="INNER_TOLERANCE" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnrOO8EdyGNPaNHSGn_w" name="symbols" visibility="private" type="_6UUlDeO8EdyGNPaNHSGn_w" association="_6UUoJuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnreO8EdyGNPaNHSGn_w" name="drawFillSymbols" visibility="private" type="_6UUnmOO8EdyGNPaNHSGn_w" association="_6UUoKOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnruO8EdyGNPaNHSGn_w" name="classesToTest" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnr-O8EdyGNPaNHSGn_w" name="sizes" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUnsOO8EdyGNPaNHSGn_w" name="getClassesToTest" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UUnseO8EdyGNPaNHSGn_w" name="return" type="_6UnhiOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnsuO8EdyGNPaNHSGn_w" name="addSymbolToTest" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUns-O8EdyGNPaNHSGn_w" name="symbolClass" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUntOO8EdyGNPaNHSGn_w" name="setUp" visibility="protected"/>
+                  <ownedOperation xmi:id="_6UUnteO8EdyGNPaNHSGn_w" name="testDraw" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUntuO8EdyGNPaNHSGn_w" name="testNullColorAvoidsFilling" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUnt-O8EdyGNPaNHSGn_w" name="isInsideShape" visibility="private">
+                    <ownedParameter xmi:id="_6UUnuOO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnueO8EdyGNPaNHSGn_w" name="x" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnuuO8EdyGNPaNHSGn_w" name="y" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUnu-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUnvOO8EdyGNPaNHSGn_w" name="TestISymbol">
+                  <generalization xmi:id="_6UUnveO8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnvuO8EdyGNPaNHSGn_w" name="classesToTest" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUnv-O8EdyGNPaNHSGn_w" name="symbols" visibility="private" type="_6UUlkuO8EdyGNPaNHSGn_w" association="_6UUoKuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUnwOO8EdyGNPaNHSGn_w" name="suite" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUnweO8EdyGNPaNHSGn_w" name="return" type="_6UUrP-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnwuO8EdyGNPaNHSGn_w" name="addSymbolTest" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUnw-O8EdyGNPaNHSGn_w" name="symbolTestClass" type="_6UUnn-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnxOO8EdyGNPaNHSGn_w" name="getNewSymbolInstances" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUnxeO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUnxuO8EdyGNPaNHSGn_w" name="setUp" visibility="protected"/>
+                  <ownedOperation xmi:id="_6UUnx-O8EdyGNPaNHSGn_w" name="testPointSuitability" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUnyOO8EdyGNPaNHSGn_w" name="testLineSuitability" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUnyeO8EdyGNPaNHSGn_w" name="testPolygonSuitability" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUnyuO8EdyGNPaNHSGn_w" name="testGeneralSuitability" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUny-O8EdyGNPaNHSGn_w" name="testSymbolTypeDefinition" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUnzOO8EdyGNPaNHSGn_w" name="testMarkerSymbolTypeDefinition" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUnzeO8EdyGNPaNHSGn_w" name="testLineSymbolTypeDefinition" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUnzuO8EdyGNPaNHSGn_w" name="testFillSymbolTypeDefinition" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUnz-O8EdyGNPaNHSGn_w" name="testDescription" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUn0OO8EdyGNPaNHSGn_w" name="testIsShapeVisible" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUn0eO8EdyGNPaNHSGn_w" name="testSymbolSelfDefinition" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUn0uO8EdyGNPaNHSGn_w" name="testOnePointRGB" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUn0-O8EdyGNPaNHSGn_w" name="testSymbolForSelection" visibility="public"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUn1OO8EdyGNPaNHSGn_w" name="TestILegend">
+                  <generalization xmi:id="_6UUn1eO8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUn1uO8EdyGNPaNHSGn_w" name="classesToTest" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUn1-O8EdyGNPaNHSGn_w" name="legends" visibility="private" type="_6UnbUOO8EdyGNPaNHSGn_w" association="_6UUoLOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUn2OO8EdyGNPaNHSGn_w" name="getClassesToTest" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UUn2eO8EdyGNPaNHSGn_w" name="return" type="_6UnhiOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUn2uO8EdyGNPaNHSGn_w" name="fillthelegend" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UUn2-O8EdyGNPaNHSGn_w" name="le" type="_6UnbUOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUn3OO8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUn3eO8EdyGNPaNHSGn_w" name="addLegendToTest" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUn3uO8EdyGNPaNHSGn_w" name="legendClass" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUn3-O8EdyGNPaNHSGn_w" name="getNewLegendInstances" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUn4OO8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUn4eO8EdyGNPaNHSGn_w" name="setUp" visibility="protected"/>
+                  <ownedOperation xmi:id="_6UUn4uO8EdyGNPaNHSGn_w" name="testILegendSelfDefinition" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUn4-O8EdyGNPaNHSGn_w" name="testSymbolAvailability" visibility="public"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUn5OO8EdyGNPaNHSGn_w" name="SimpleFillSymbolTest">
+                  <generalization xmi:id="_6UUn5eO8EdyGNPaNHSGn_w" general="_6UUnn-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUn5uO8EdyGNPaNHSGn_w" name="TestDrawMarkers">
+                  <generalization xmi:id="_6UUn5-O8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUn6OO8EdyGNPaNHSGn_w" name="symbols" visibility="private" type="_6UUkzuO8EdyGNPaNHSGn_w" association="_6UUoLuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUn6eO8EdyGNPaNHSGn_w" name="sz" visibility="private" type="_6UnhhuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUn6uO8EdyGNPaNHSGn_w" name="centerP" visibility="private" type="_6UUn_eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUn6-O8EdyGNPaNHSGn_w" name="OUTTER_TOLERANCE" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUn7OO8EdyGNPaNHSGn_w" name="INNER_TOLERANCE" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUn7eO8EdyGNPaNHSGn_w" name="sizes" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUn7uO8EdyGNPaNHSGn_w" name="setUp" visibility="protected"/>
+                  <ownedOperation xmi:id="_6UUn7-O8EdyGNPaNHSGn_w" name="testDrawingSize" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUn8OO8EdyGNPaNHSGn_w" name="testDrawingOffset" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUn8eO8EdyGNPaNHSGn_w" name="testDrawingRotation" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUn8uO8EdyGNPaNHSGn_w" name="fitsInsideRect" visibility="private">
+                    <ownedParameter xmi:id="_6UUn8-O8EdyGNPaNHSGn_w" name="bi" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUn9OO8EdyGNPaNHSGn_w" name="wrappingRect" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUn9eO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUn9uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUn9-O8EdyGNPaNHSGn_w" name="isOutsideRect" visibility="private">
+                    <ownedParameter xmi:id="_6UUn-OO8EdyGNPaNHSGn_w" name="bi" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUn-eO8EdyGNPaNHSGn_w" name="wrappingRect" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUn-uO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUn--O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUn_OO8EdyGNPaNHSGn_w" name="FontRenderContext"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUn_eO8EdyGNPaNHSGn_w" name="FPoint2D"/>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUn_uO8EdyGNPaNHSGn_w" memberEnd="_6UUjpuO8EdyGNPaNHSGn_w _6UUn_-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUn_-O8EdyGNPaNHSGn_w" name="target" type="_6UUjpOO8EdyGNPaNHSGn_w" association="_6UUn_uO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoAOO8EdyGNPaNHSGn_w" memberEnd="_6UUjp-O8EdyGNPaNHSGn_w _6UUoAeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoAeO8EdyGNPaNHSGn_w" name="target" type="_6UUjpOO8EdyGNPaNHSGn_w" association="_6UUoAOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoAuO8EdyGNPaNHSGn_w" memberEnd="_6UUkAeO8EdyGNPaNHSGn_w _6UUoA-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoA-O8EdyGNPaNHSGn_w" name="target" type="_6UUj9eO8EdyGNPaNHSGn_w" association="_6UUoAuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoBOO8EdyGNPaNHSGn_w" memberEnd="_6UUkLeO8EdyGNPaNHSGn_w _6UUoBeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoBeO8EdyGNPaNHSGn_w" name="target" type="_6UUkKuO8EdyGNPaNHSGn_w" association="_6UUoBOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoBuO8EdyGNPaNHSGn_w" memberEnd="_6UUkduO8EdyGNPaNHSGn_w _6UUoB-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoB-O8EdyGNPaNHSGn_w" name="target" type="_6UUkcOO8EdyGNPaNHSGn_w" association="_6UUoBuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoCOO8EdyGNPaNHSGn_w" memberEnd="_6UUkuOO8EdyGNPaNHSGn_w _6UUoCeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoCeO8EdyGNPaNHSGn_w" name="target" type="_6UUktuO8EdyGNPaNHSGn_w" association="_6UUoCOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoCuO8EdyGNPaNHSGn_w" memberEnd="_6UUlweO8EdyGNPaNHSGn_w _6UUoC-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoC-O8EdyGNPaNHSGn_w" name="target" type="_6UUlv-O8EdyGNPaNHSGn_w" association="_6UUoCuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoDOO8EdyGNPaNHSGn_w" memberEnd="_6UUl3OO8EdyGNPaNHSGn_w _6UUoDeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoDeO8EdyGNPaNHSGn_w" name="target" type="_6UUl2uO8EdyGNPaNHSGn_w" association="_6UUoDOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoDuO8EdyGNPaNHSGn_w" memberEnd="_6UUl_eO8EdyGNPaNHSGn_w _6UUoD-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoD-O8EdyGNPaNHSGn_w" name="target" type="_6UUl-uO8EdyGNPaNHSGn_w" association="_6UUoDuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoEOO8EdyGNPaNHSGn_w" memberEnd="_6UUl_uO8EdyGNPaNHSGn_w _6UUoEeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoEeO8EdyGNPaNHSGn_w" name="target" type="_6UUl-uO8EdyGNPaNHSGn_w" association="_6UUoEOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoEuO8EdyGNPaNHSGn_w" memberEnd="_6UUmZuO8EdyGNPaNHSGn_w _6UUoE-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoE-O8EdyGNPaNHSGn_w" name="target" type="_6UUmYeO8EdyGNPaNHSGn_w" association="_6UUoEuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoFOO8EdyGNPaNHSGn_w" memberEnd="_6UUmleO8EdyGNPaNHSGn_w _6UUoFeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoFeO8EdyGNPaNHSGn_w" name="target" type="_6UUmk-O8EdyGNPaNHSGn_w" association="_6UUoFOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoFuO8EdyGNPaNHSGn_w" memberEnd="_6UUmluO8EdyGNPaNHSGn_w _6UUoF-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoF-O8EdyGNPaNHSGn_w" name="target" type="_6UUmk-O8EdyGNPaNHSGn_w" association="_6UUoFuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoGOO8EdyGNPaNHSGn_w" memberEnd="_6UUm5eO8EdyGNPaNHSGn_w _6UUoGeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoGeO8EdyGNPaNHSGn_w" name="target" type="_6UUm5OO8EdyGNPaNHSGn_w" association="_6UUoGOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoGuO8EdyGNPaNHSGn_w" memberEnd="_6UUm5uO8EdyGNPaNHSGn_w _6UUoG-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoG-O8EdyGNPaNHSGn_w" name="target" type="_6UUm5OO8EdyGNPaNHSGn_w" association="_6UUoGuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoHOO8EdyGNPaNHSGn_w" memberEnd="_6UUm5-O8EdyGNPaNHSGn_w _6UUoHeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoHeO8EdyGNPaNHSGn_w" name="target" type="_6UUm5OO8EdyGNPaNHSGn_w" association="_6UUoHOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoHuO8EdyGNPaNHSGn_w" memberEnd="_6UUm6OO8EdyGNPaNHSGn_w _6UUoH-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoH-O8EdyGNPaNHSGn_w" name="target" type="_6UUm5OO8EdyGNPaNHSGn_w" association="_6UUoHuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoIOO8EdyGNPaNHSGn_w" memberEnd="_6UUm6-O8EdyGNPaNHSGn_w _6UUoIeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoIeO8EdyGNPaNHSGn_w" name="target" type="_6UUm5OO8EdyGNPaNHSGn_w" association="_6UUoIOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoIuO8EdyGNPaNHSGn_w" memberEnd="_6UUncOO8EdyGNPaNHSGn_w _6UUoI-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoI-O8EdyGNPaNHSGn_w" name="target" type="_6UUnbuO8EdyGNPaNHSGn_w" association="_6UUoIuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoJOO8EdyGNPaNHSGn_w" memberEnd="_6UUnhOO8EdyGNPaNHSGn_w _6UUoJeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoJeO8EdyGNPaNHSGn_w" name="target" type="_6UUnguO8EdyGNPaNHSGn_w" association="_6UUoJOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoJuO8EdyGNPaNHSGn_w" memberEnd="_6UUnrOO8EdyGNPaNHSGn_w _6UUoJ-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoJ-O8EdyGNPaNHSGn_w" name="target" type="_6UUnpuO8EdyGNPaNHSGn_w" association="_6UUoJuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoKOO8EdyGNPaNHSGn_w" memberEnd="_6UUnreO8EdyGNPaNHSGn_w _6UUoKeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoKeO8EdyGNPaNHSGn_w" name="target" type="_6UUnpuO8EdyGNPaNHSGn_w" association="_6UUoKOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoKuO8EdyGNPaNHSGn_w" memberEnd="_6UUnv-O8EdyGNPaNHSGn_w _6UUoK-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoK-O8EdyGNPaNHSGn_w" name="target" type="_6UUnvOO8EdyGNPaNHSGn_w" association="_6UUoKuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoLOO8EdyGNPaNHSGn_w" memberEnd="_6UUn1-O8EdyGNPaNHSGn_w _6UUoLeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoLeO8EdyGNPaNHSGn_w" name="target" type="_6UUn1OO8EdyGNPaNHSGn_w" association="_6UUoLOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUoLuO8EdyGNPaNHSGn_w" memberEnd="_6UUn6OO8EdyGNPaNHSGn_w _6UUoL-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUoL-O8EdyGNPaNHSGn_w" name="target" type="_6UUn5uO8EdyGNPaNHSGn_w" association="_6UUoLuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UUoMOO8EdyGNPaNHSGn_w" name="v02">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUoMeO8EdyGNPaNHSGn_w" name="FGraphicUtilities">
+                  <ownedOperation xmi:id="_6UUoMuO8EdyGNPaNHSGn_w" name="DrawSymbol" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUoM-O8EdyGNPaNHSGn_w" name="g2" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoNOO8EdyGNPaNHSGn_w" name="mT2" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoNeO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoNuO8EdyGNPaNHSGn_w" name="symbol" type="_6UUoV-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoN-O8EdyGNPaNHSGn_w" name="DrawShape" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUoOOO8EdyGNPaNHSGn_w" name="g2" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoOeO8EdyGNPaNHSGn_w" name="mT" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoOuO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoO-O8EdyGNPaNHSGn_w" name="theSymbol" type="_6UUoV-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoPOO8EdyGNPaNHSGn_w" name="DrawLabel" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUoPeO8EdyGNPaNHSGn_w" name="g2" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoPuO8EdyGNPaNHSGn_w" name="mT" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoP-O8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoQOO8EdyGNPaNHSGn_w" name="theSymbol" type="_6UUoV-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoQeO8EdyGNPaNHSGn_w" name="theLabel" type="_6UUpfOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoQuO8EdyGNPaNHSGn_w" name="DrawAnnotation" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUoQ-O8EdyGNPaNHSGn_w" name="g2" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoROO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoReO8EdyGNPaNHSGn_w" name="theSymbol" type="_6UUoV-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoRuO8EdyGNPaNHSGn_w" name="theLabel" type="_6UUpfOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoR-O8EdyGNPaNHSGn_w" name="metrics" type="_6UUpy-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoSOO8EdyGNPaNHSGn_w" name="isSelected" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoSeO8EdyGNPaNHSGn_w" name="drawSymbolPoint" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UUoSuO8EdyGNPaNHSGn_w" name="g2" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoS-O8EdyGNPaNHSGn_w" name="mT" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoTOO8EdyGNPaNHSGn_w" name="pAux" type="_6UUn_eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoTeO8EdyGNPaNHSGn_w" name="theSymbol" type="_6UUoV-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoTuO8EdyGNPaNHSGn_w" name="DrawHandlers" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUoT-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoUOO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoUeO8EdyGNPaNHSGn_w" name="handlers" type="_6UUrPeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoUuO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoU-O8EdyGNPaNHSGn_w" name="DrawVertex" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUoVOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoVeO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoVuO8EdyGNPaNHSGn_w" name="handlers" type="_6UUrPeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUoV-O8EdyGNPaNHSGn_w" name="FSymbol" clientDependency="_6UUodOO8EdyGNPaNHSGn_w _6UUodeO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UUoWOO8EdyGNPaNHSGn_w" name="img" visibility="private" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoWeO8EdyGNPaNHSGn_w" name="rect" visibility="private" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoWuO8EdyGNPaNHSGn_w" name="m_symbolType" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoW-O8EdyGNPaNHSGn_w" name="m_Style" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoXOO8EdyGNPaNHSGn_w" name="m_useOutline" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoXeO8EdyGNPaNHSGn_w" name="m_Color" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoXuO8EdyGNPaNHSGn_w" name="m_outlineColor" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoX-O8EdyGNPaNHSGn_w" name="m_Font" visibility="private" type="_6UUrN-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoYOO8EdyGNPaNHSGn_w" name="m_FontColor" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoYeO8EdyGNPaNHSGn_w" name="m_FontSize" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoYuO8EdyGNPaNHSGn_w" name="rgb" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoY-O8EdyGNPaNHSGn_w" name="imgObserver" visibility="private" type="_6UUpzOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoZOO8EdyGNPaNHSGn_w" name="m_bUseFontSizeInPixels" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoZeO8EdyGNPaNHSGn_w" name="m_bDrawShape" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoZuO8EdyGNPaNHSGn_w" name="m_Size" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoZ-O8EdyGNPaNHSGn_w" name="m_Icon" visibility="private" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoaOO8EdyGNPaNHSGn_w" name="m_IconURI" visibility="private" type="_6UUpzuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoaeO8EdyGNPaNHSGn_w" name="m_Rotation" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoauO8EdyGNPaNHSGn_w" name="m_Fill" visibility="private" type="_6UUpz-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoa-O8EdyGNPaNHSGn_w" name="m_LinePattern" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUobOO8EdyGNPaNHSGn_w" name="m_Stroke" visibility="private" type="_6UUjnOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUobeO8EdyGNPaNHSGn_w" name="m_bUseSize" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUobuO8EdyGNPaNHSGn_w" name="m_AlingVert" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUob-O8EdyGNPaNHSGn_w" name="m_AlingHoriz" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUocOO8EdyGNPaNHSGn_w" name="m_Descrip" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoceO8EdyGNPaNHSGn_w" name="m_BackColor" visibility="public" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUocuO8EdyGNPaNHSGn_w" name="m_BackFill" visibility="public" type="_6UUpz-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUoc-O8EdyGNPaNHSGn_w" name="resolutionPrinting" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUodOO8EdyGNPaNHSGn_w" name="ISymbol" supplier="_6UUlkuO8EdyGNPaNHSGn_w" client="_6UUoV-O8EdyGNPaNHSGn_w" contract="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUodeO8EdyGNPaNHSGn_w" name="ISLDCompatible" supplier="_6UUfJOO8EdyGNPaNHSGn_w" client="_6UUoV-O8EdyGNPaNHSGn_w" contract="_6UUfJOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUoduO8EdyGNPaNHSGn_w" name="toArray" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUod-O8EdyGNPaNHSGn_w" name="linePattern" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoeOO8EdyGNPaNHSGn_w" name="lineWidth" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoeeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoeuO8EdyGNPaNHSGn_w" name="getSymbolForSelection" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUoe-O8EdyGNPaNHSGn_w" name="sym" type="_6UUoV-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUofOO8EdyGNPaNHSGn_w" name="return" type="_6UUoV-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUofeO8EdyGNPaNHSGn_w" name="cloneSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUofuO8EdyGNPaNHSGn_w" name="return" type="_6UUoV-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUof-O8EdyGNPaNHSGn_w" name="fastCloneSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUogOO8EdyGNPaNHSGn_w" name="return" type="_6UUoV-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUogeO8EdyGNPaNHSGn_w" name="createSymbol" visibility="private">
+                    <ownedParameter xmi:id="_6UUoguO8EdyGNPaNHSGn_w" name="tipoSymbol" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUog-O8EdyGNPaNHSGn_w" name="c" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUohOO8EdyGNPaNHSGn_w" name="calculateRgb" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUoheO8EdyGNPaNHSGn_w" name="getOnePointRgb" visibility="public">
+                    <ownedParameter xmi:id="_6UUohuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoh-O8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUoiOO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoieO8EdyGNPaNHSGn_w" name="createFromXML03" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUoiuO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUoi-O8EdyGNPaNHSGn_w" name="return" type="_6UUoV-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUojOO8EdyGNPaNHSGn_w" name="createFromXML" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUojeO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUojuO8EdyGNPaNHSGn_w" name="return" type="_6UUoV-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoj-O8EdyGNPaNHSGn_w" name="setStyle" visibility="public">
+                    <ownedParameter xmi:id="_6UUokOO8EdyGNPaNHSGn_w" name="m_Style" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUokeO8EdyGNPaNHSGn_w" name="getStyle" visibility="public">
+                    <ownedParameter xmi:id="_6UUokuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUok-O8EdyGNPaNHSGn_w" name="setSymbolType" visibility="public">
+                    <ownedParameter xmi:id="_6UUolOO8EdyGNPaNHSGn_w" name="m_symbolType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoleO8EdyGNPaNHSGn_w" name="getSymbolType" visibility="public">
+                    <ownedParameter xmi:id="_6UUoluO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUol-O8EdyGNPaNHSGn_w" name="setOutlined" visibility="public">
+                    <ownedParameter xmi:id="_6UUomOO8EdyGNPaNHSGn_w" name="m_useOutline" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUomeO8EdyGNPaNHSGn_w" name="isOutlined" visibility="public">
+                    <ownedParameter xmi:id="_6UUomuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUom-O8EdyGNPaNHSGn_w" name="setColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUonOO8EdyGNPaNHSGn_w" name="m_Color" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoneO8EdyGNPaNHSGn_w" name="getColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUonuO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUon-O8EdyGNPaNHSGn_w" name="setOutlineColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUooOO8EdyGNPaNHSGn_w" name="m_outlineColor" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUooeO8EdyGNPaNHSGn_w" name="getOutlineColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUoouO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoo-O8EdyGNPaNHSGn_w" name="setFont" visibility="public">
+                    <ownedParameter xmi:id="_6UUopOO8EdyGNPaNHSGn_w" name="m_Font" type="_6UUrN-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUopeO8EdyGNPaNHSGn_w" name="getFont" visibility="public">
+                    <ownedParameter xmi:id="_6UUopuO8EdyGNPaNHSGn_w" name="return" type="_6UUrN-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUop-O8EdyGNPaNHSGn_w" name="setFontColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUoqOO8EdyGNPaNHSGn_w" name="m_FontColor" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoqeO8EdyGNPaNHSGn_w" name="getFontColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUoquO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoq-O8EdyGNPaNHSGn_w" name="setFontSizeInPixels" visibility="public">
+                    <ownedParameter xmi:id="_6UUorOO8EdyGNPaNHSGn_w" name="m_bUseFontSize" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoreO8EdyGNPaNHSGn_w" name="isFontSizeInPixels" visibility="public">
+                    <ownedParameter xmi:id="_6UUoruO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUor-O8EdyGNPaNHSGn_w" name="setShapeVisible" visibility="public">
+                    <ownedParameter xmi:id="_6UUosOO8EdyGNPaNHSGn_w" name="m_bDrawShape" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoseO8EdyGNPaNHSGn_w" name="isShapeVisible" visibility="public">
+                    <ownedParameter xmi:id="_6UUosuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUos-O8EdyGNPaNHSGn_w" name="setSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUotOO8EdyGNPaNHSGn_w" name="m_Size" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoteO8EdyGNPaNHSGn_w" name="getSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUotuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUot-O8EdyGNPaNHSGn_w" name="setIcon" visibility="public">
+                    <ownedParameter xmi:id="_6UUouOO8EdyGNPaNHSGn_w" name="m_Icon" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoueO8EdyGNPaNHSGn_w" name="getIcon" visibility="public">
+                    <ownedParameter xmi:id="_6UUouuO8EdyGNPaNHSGn_w" name="return" type="_6UUpzeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUou-O8EdyGNPaNHSGn_w" name="setRotation" visibility="public">
+                    <ownedParameter xmi:id="_6UUovOO8EdyGNPaNHSGn_w" name="m_Rotation" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoveO8EdyGNPaNHSGn_w" name="getRotation" visibility="public">
+                    <ownedParameter xmi:id="_6UUovuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUov-O8EdyGNPaNHSGn_w" name="setFill" visibility="public">
+                    <ownedParameter xmi:id="_6UUowOO8EdyGNPaNHSGn_w" name="m_Fill" type="_6UUpz-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoweO8EdyGNPaNHSGn_w" name="getFill" visibility="public">
+                    <ownedParameter xmi:id="_6UUowuO8EdyGNPaNHSGn_w" name="return" type="_6UUpz-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUow-O8EdyGNPaNHSGn_w" name="setStroke" visibility="public">
+                    <ownedParameter xmi:id="_6UUoxOO8EdyGNPaNHSGn_w" name="m_Stroke" type="_6UUjnOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoxeO8EdyGNPaNHSGn_w" name="getStroke" visibility="public">
+                    <ownedParameter xmi:id="_6UUoxuO8EdyGNPaNHSGn_w" name="return" type="_6UUjnOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUox-O8EdyGNPaNHSGn_w" name="setSizeInPixels" visibility="public">
+                    <ownedParameter xmi:id="_6UUoyOO8EdyGNPaNHSGn_w" name="m_bUseSize" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoyeO8EdyGNPaNHSGn_w" name="isSizeInPixels" visibility="public">
+                    <ownedParameter xmi:id="_6UUoyuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoy-O8EdyGNPaNHSGn_w" name="setDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UUozOO8EdyGNPaNHSGn_w" name="m_Descrip" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUozeO8EdyGNPaNHSGn_w" name="getDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UUozuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUoz-O8EdyGNPaNHSGn_w" name="setAlingVert" visibility="public">
+                    <ownedParameter xmi:id="_6UUo0OO8EdyGNPaNHSGn_w" name="m_AlingVert" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo0eO8EdyGNPaNHSGn_w" name="getAlingVert" visibility="public">
+                    <ownedParameter xmi:id="_6UUo0uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo0-O8EdyGNPaNHSGn_w" name="setAlingHoriz" visibility="public">
+                    <ownedParameter xmi:id="_6UUo1OO8EdyGNPaNHSGn_w" name="m_AlingHoriz" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo1eO8EdyGNPaNHSGn_w" name="getAlingHoriz" visibility="public">
+                    <ownedParameter xmi:id="_6UUo1uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo1-O8EdyGNPaNHSGn_w" name="setFontSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUo2OO8EdyGNPaNHSGn_w" name="m_FontSize" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo2eO8EdyGNPaNHSGn_w" name="getFontSize" visibility="public">
+                    <ownedParameter xmi:id="_6UUo2uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo2-O8EdyGNPaNHSGn_w" name="getIconURI" visibility="public">
+                    <ownedParameter xmi:id="_6UUo3OO8EdyGNPaNHSGn_w" name="return" type="_6UUpzuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo3eO8EdyGNPaNHSGn_w" name="setIconURI" visibility="public">
+                    <ownedParameter xmi:id="_6UUo3uO8EdyGNPaNHSGn_w" name="iconURI" type="_6UUpzuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo3-O8EdyGNPaNHSGn_w" name="toSLD" visibility="public">
+                    <ownedParameter xmi:id="_6UUo4OO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo4eO8EdyGNPaNHSGn_w" name="fromSLD" visibility="public">
+                    <ownedParameter xmi:id="_6UUo4uO8EdyGNPaNHSGn_w" name="sld" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUo4-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo5OO8EdyGNPaNHSGn_w" name="getImgObserver" visibility="public">
+                    <ownedParameter xmi:id="_6UUo5eO8EdyGNPaNHSGn_w" name="return" type="_6UUpzOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo5uO8EdyGNPaNHSGn_w" name="setImgObserver" visibility="public">
+                    <ownedParameter xmi:id="_6UUo5-O8EdyGNPaNHSGn_w" name="imgObserver" type="_6UUpzOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo6OO8EdyGNPaNHSGn_w" name="getSymbolForSelection" visibility="public">
+                    <ownedParameter xmi:id="_6UUo6eO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo6uO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUo6-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUo7OO8EdyGNPaNHSGn_w" name="affineTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUo7eO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUo7uO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo7-O8EdyGNPaNHSGn_w" name="getPixExtentPlus" visibility="public">
+                    <ownedParameter xmi:id="_6UUo8OO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUo8eO8EdyGNPaNHSGn_w" name="distances" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUo8uO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUo8-O8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo9OO8EdyGNPaNHSGn_w" name="isSuitableFor" visibility="public">
+                    <ownedParameter xmi:id="_6UUo9eO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUo9uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo9-O8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                    <ownedParameter xmi:id="_6UUo-OO8EdyGNPaNHSGn_w" name="g2" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUo-eO8EdyGNPaNHSGn_w" name="scaleInstance" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUo-uO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo--O8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                    <ownedParameter xmi:id="_6UUo_OO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo_eO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUo_uO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUo_-O8EdyGNPaNHSGn_w" name="print" visibility="public">
+                    <ownedParameter xmi:id="_6UUpAOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpAeO8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpAuO8EdyGNPaNHSGn_w" name="shape" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpA-O8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUpBOO8EdyGNPaNHSGn_w" name="FConstant">
+                  <ownedAttribute xmi:id="_6UUpBeO8EdyGNPaNHSGn_w" name="NAMES" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpBuO8EdyGNPaNHSGn_w" name="SHAPE_TYPE_NULL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpB-O8EdyGNPaNHSGn_w" name="SHAPE_TYPE_POINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpCOO8EdyGNPaNHSGn_w" name="SHAPE_TYPE_POLYLINE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpCeO8EdyGNPaNHSGn_w" name="SHAPE_TYPE_POLYGON" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpCuO8EdyGNPaNHSGn_w" name="SHAPE_TYPE_MULTIPOINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpC-O8EdyGNPaNHSGn_w" name="SHAPE_TYPE_POINTZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpDOO8EdyGNPaNHSGn_w" name="SHAPE_TYPE_POLYLINEZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpDeO8EdyGNPaNHSGn_w" name="SHAPE_TYPE_POLYGONZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpDuO8EdyGNPaNHSGn_w" name="SHAPE_TYPE_MULTIPOINTZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpD-O8EdyGNPaNHSGn_w" name="SHAPE_TYPE_POINTM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpEOO8EdyGNPaNHSGn_w" name="SHAPE_TYPE_POLYLINEM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpEeO8EdyGNPaNHSGn_w" name="SHAPE_TYPE_POLYGONM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpEuO8EdyGNPaNHSGn_w" name="SHAPE_TYPE_MULTIPOINTM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpE-O8EdyGNPaNHSGn_w" name="LAYER_TYPE_DGN" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpFOO8EdyGNPaNHSGn_w" name="LAYER_TYPE_DWG" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpFeO8EdyGNPaNHSGn_w" name="LAYER_TYPE_DXF" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpFuO8EdyGNPaNHSGn_w" name="LAYER_TYPE_JPEG2000" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpF-O8EdyGNPaNHSGn_w" name="LAYER_TYPE_SHP" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpGOO8EdyGNPaNHSGn_w" name="LAYER_TYPE_WMS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpGeO8EdyGNPaNHSGn_w" name="LEGEND_TYPE_BREAK" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpGuO8EdyGNPaNHSGn_w" name="LEGEND_TYPE_DEFAULT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpG-O8EdyGNPaNHSGn_w" name="LEGEND_TYPE_VALUE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpHOO8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_DEFAULT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpHeO8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_POINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpHuO8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_LINE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpH-O8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_FILL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpIOO8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_TEXT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpIeO8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_ICON" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpIuO8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_POINTZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpI-O8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_MULTIPOINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpJOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_POINTZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpJeO8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_POLYLINEZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpJuO8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_POLYGONZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpJ-O8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_SOLID" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpKOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_TRANSPARENT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpKeO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_HORIZONTAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpKuO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_VERTICAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpK-O8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_CROSS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpLOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_UPWARD_DIAGONAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpLeO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_DOWNWARD_DIAGONAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpLuO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_CROSS_DIAGONAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpL-O8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_GRAYFILL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpMOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_LIGHTGRAYFILL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpMeO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_DARKGRAYFILL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpMuO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_MARKER_CIRCLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpM-O8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_MARKER_SQUARE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpNOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_MARKER_TRIANGLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpNeO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_MARKER_CROSS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpNuO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_MARKER_TRUETYPE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpN-O8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_MARKER_IMAGEN" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpOOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_DGNSPECIAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpOeO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_LINE_SOLID" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpOuO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_LINE_DASH" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpO-O8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_LINE_DOT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpPOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_LINE_DASHDOT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpPeO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_LINE_DASHDOTDOT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpPuO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_LINE_RAIL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpP-O8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_LINE_ARROW" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpQOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_TEXT_NORMAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpQeO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_TEXT_CURSIVE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpQuO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_TEXT_BOLD" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpQ-O8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_TEXT_BOLDCURSIVE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpROO8EdyGNPaNHSGn_w" name="FONT_HEIGHT_SCALE_FACTOR" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpReO8EdyGNPaNHSGn_w" name="DEGREE_TO_RADIANS" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUpRuO8EdyGNPaNHSGn_w" name="FTextLayout">
+                  <ownedAttribute xmi:id="_6UUpR-O8EdyGNPaNHSGn_w" name="tl" visibility="private" type="_6UUp0OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpSOO8EdyGNPaNHSGn_w" name="s" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpSeO8EdyGNPaNHSGn_w" name="isSelected" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUpSuO8EdyGNPaNHSGn_w" name="getBoundBox" visibility="public">
+                    <ownedParameter xmi:id="_6UUpS-O8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpTOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpTeO8EdyGNPaNHSGn_w" name="justification" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpTuO8EdyGNPaNHSGn_w" name="vp" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpT-O8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpUOO8EdyGNPaNHSGn_w" name="justification" visibility="private">
+                    <ownedParameter xmi:id="_6UUpUeO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpUuO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpU-O8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpVOO8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpVeO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpVuO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUpV-O8EdyGNPaNHSGn_w" name="g2" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpWOO8EdyGNPaNHSGn_w" name="justification" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpWeO8EdyGNPaNHSGn_w" name="getNextRightHit" visibility="public">
+                    <ownedParameter xmi:id="_6UUpWuO8EdyGNPaNHSGn_w" name="insertionIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpW-O8EdyGNPaNHSGn_w" name="return" type="_6UUp0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpXOO8EdyGNPaNHSGn_w" name="getNextLeftHit" visibility="public">
+                    <ownedParameter xmi:id="_6UUpXeO8EdyGNPaNHSGn_w" name="insertionIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpXuO8EdyGNPaNHSGn_w" name="return" type="_6UUp0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpX-O8EdyGNPaNHSGn_w" name="setSelected" visibility="public">
+                    <ownedParameter xmi:id="_6UUpYOO8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpYeO8EdyGNPaNHSGn_w" name="getBoundingBox" visibility="public">
+                    <ownedParameter xmi:id="_6UUpYuO8EdyGNPaNHSGn_w" name="p1" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpY-O8EdyGNPaNHSGn_w" name="justification" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpZOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpZeO8EdyGNPaNHSGn_w" name="vp" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpZuO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpZ-O8EdyGNPaNHSGn_w" name="isSelected" visibility="public">
+                    <ownedParameter xmi:id="_6UUpaOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpaeO8EdyGNPaNHSGn_w" name="addChar" visibility="public">
+                    <ownedParameter xmi:id="_6UUpauO8EdyGNPaNHSGn_w" name="keyChar" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpa-O8EdyGNPaNHSGn_w" name="getCaretShapes" visibility="public">
+                    <ownedParameter xmi:id="_6UUpbOO8EdyGNPaNHSGn_w" name="insertionIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpbeO8EdyGNPaNHSGn_w" name="return" type="_6UUrPuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUpbuO8EdyGNPaNHSGn_w" name="FSymbolFactory">
+                  <ownedAttribute xmi:id="_6UUpb-O8EdyGNPaNHSGn_w" name="w" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpcOO8EdyGNPaNHSGn_w" name="h" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUpceO8EdyGNPaNHSGn_w" name="createG2" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UUpcuO8EdyGNPaNHSGn_w" name="cRef" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpc-O8EdyGNPaNHSGn_w" name="bi" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpdOO8EdyGNPaNHSGn_w" name="return" type="_6UnhjuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpdeO8EdyGNPaNHSGn_w" name="createPatternFill" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUpduO8EdyGNPaNHSGn_w" name="style" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpd-O8EdyGNPaNHSGn_w" name="cRef" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpeOO8EdyGNPaNHSGn_w" name="return" type="_6UUpz-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpeeO8EdyGNPaNHSGn_w" name="createPatternFills" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUpeuO8EdyGNPaNHSGn_w" name="cRef" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpe-O8EdyGNPaNHSGn_w" name="return" type="_6UUpz-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUpfOO8EdyGNPaNHSGn_w" name="FLabel">
+                  <ownedAttribute xmi:id="_6UUpfeO8EdyGNPaNHSGn_w" name="LEFT_TOP" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpfuO8EdyGNPaNHSGn_w" name="LEFT_CENTER" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpf-O8EdyGNPaNHSGn_w" name="LEFT_BOTTOM" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpgOO8EdyGNPaNHSGn_w" name="CENTER_TOP" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpgeO8EdyGNPaNHSGn_w" name="CENTER_CENTER" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpguO8EdyGNPaNHSGn_w" name="CENTER_BOTTOM" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpg-O8EdyGNPaNHSGn_w" name="RIGHT_TOP" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUphOO8EdyGNPaNHSGn_w" name="RIGHT_CENTER" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpheO8EdyGNPaNHSGn_w" name="RIGHT_BOTTOM" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUphuO8EdyGNPaNHSGn_w" name="m_Str" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUph-O8EdyGNPaNHSGn_w" name="m_Orig" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpiOO8EdyGNPaNHSGn_w" name="m_Height" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpieO8EdyGNPaNHSGn_w" name="SQUARE" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpiuO8EdyGNPaNHSGn_w" name="m_rotation" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpi-O8EdyGNPaNHSGn_w" name="m_Justification" visibility="private" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpjOO8EdyGNPaNHSGn_w" name="m_Style" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpjeO8EdyGNPaNHSGn_w" name="boundBox" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpjuO8EdyGNPaNHSGn_w" name="color" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUpj-O8EdyGNPaNHSGn_w" name="font" visibility="private" type="_6UUrN-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUpkOO8EdyGNPaNHSGn_w" name="setFLabel" visibility="public">
+                    <ownedParameter xmi:id="_6UUpkeO8EdyGNPaNHSGn_w" name="label" type="_6UUpfOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpkuO8EdyGNPaNHSGn_w" name="clone" visibility="public">
+                    <ownedParameter xmi:id="_6UUpk-O8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUplOO8EdyGNPaNHSGn_w" name="getHeight" visibility="public">
+                    <ownedParameter xmi:id="_6UUpleO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpluO8EdyGNPaNHSGn_w" name="getOrig" visibility="public">
+                    <ownedParameter xmi:id="_6UUpl-O8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpmOO8EdyGNPaNHSGn_w" name="getRotation" visibility="public">
+                    <ownedParameter xmi:id="_6UUpmeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpmuO8EdyGNPaNHSGn_w" name="getString" visibility="public">
+                    <ownedParameter xmi:id="_6UUpm-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpnOO8EdyGNPaNHSGn_w" name="setHeight" visibility="public">
+                    <ownedParameter xmi:id="_6UUpneO8EdyGNPaNHSGn_w" name="height" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpnuO8EdyGNPaNHSGn_w" name="setOrig" visibility="public">
+                    <ownedParameter xmi:id="_6UUpn-O8EdyGNPaNHSGn_w" name="orig" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpoOO8EdyGNPaNHSGn_w" name="setRotation" visibility="public">
+                    <ownedParameter xmi:id="_6UUpoeO8EdyGNPaNHSGn_w" name="m_rotation" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpouO8EdyGNPaNHSGn_w" name="setString" visibility="public">
+                    <ownedParameter xmi:id="_6UUpo-O8EdyGNPaNHSGn_w" name="str" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUppOO8EdyGNPaNHSGn_w" name="getJustification" visibility="public">
+                    <ownedParameter xmi:id="_6UUppeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUppuO8EdyGNPaNHSGn_w" name="setJustification" visibility="public">
+                    <ownedParameter xmi:id="_6UUpp-O8EdyGNPaNHSGn_w" name="justification" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpqOO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UUpqeO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpquO8EdyGNPaNHSGn_w" name="createFLabel" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUpq-O8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUprOO8EdyGNPaNHSGn_w" name="return" type="_6UUpfOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpreO8EdyGNPaNHSGn_w" name="createFLabel" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUpruO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpr-O8EdyGNPaNHSGn_w" name="return" type="_6UUpfOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpsOO8EdyGNPaNHSGn_w" name="createLabelPoint" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUpseO8EdyGNPaNHSGn_w" name="shp" type="_6UUrPuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpsuO8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUps-O8EdyGNPaNHSGn_w" name="setTypeFont" visibility="public">
+                    <ownedParameter xmi:id="_6UUptOO8EdyGNPaNHSGn_w" name="t" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpteO8EdyGNPaNHSGn_w" name="getStyle" visibility="public">
+                    <ownedParameter xmi:id="_6UUptuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpt-O8EdyGNPaNHSGn_w" name="setBoundBox" visibility="public">
+                    <ownedParameter xmi:id="_6UUpuOO8EdyGNPaNHSGn_w" name="boundBox" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpueO8EdyGNPaNHSGn_w" name="getBoundBox" visibility="public">
+                    <ownedParameter xmi:id="_6UUpuuO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpu-O8EdyGNPaNHSGn_w" name="getBoundingBox" visibility="public">
+                    <ownedParameter xmi:id="_6UUpvOO8EdyGNPaNHSGn_w" name="vp" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpveO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpvuO8EdyGNPaNHSGn_w" name="setColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUpv-O8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpwOO8EdyGNPaNHSGn_w" name="getColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUpweO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpwuO8EdyGNPaNHSGn_w" name="getFont" visibility="public">
+                    <ownedParameter xmi:id="_6UUpw-O8EdyGNPaNHSGn_w" name="at" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpxOO8EdyGNPaNHSGn_w" name="font" type="_6UUrN-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpxeO8EdyGNPaNHSGn_w" name="return" type="_6UUrN-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUpxuO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6UUpx-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpyOO8EdyGNPaNHSGn_w" name="affineTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpyeO8EdyGNPaNHSGn_w" name="theShape" type="_6UUrPuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUpyuO8EdyGNPaNHSGn_w" name="theSymbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUpy-O8EdyGNPaNHSGn_w" name="FontMetrics"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUpzOO8EdyGNPaNHSGn_w" name="ImageObserver"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUpzeO8EdyGNPaNHSGn_w" name="Image"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUpzuO8EdyGNPaNHSGn_w" name="URI"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUpz-O8EdyGNPaNHSGn_w" name="Paint"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUp0OO8EdyGNPaNHSGn_w" name="java.awt.font.TextLayout"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUp0eO8EdyGNPaNHSGn_w" name="TextHitInfo"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UUp0uO8EdyGNPaNHSGn_w" name="visitors">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUp0-O8EdyGNPaNHSGn_w" name="DrawIntsCartographicSupportVisitor">
+                  <ownedAttribute xmi:id="_6UUp1OO8EdyGNPaNHSGn_w" name="graphics2D" visibility="protected" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUp1eO8EdyGNPaNHSGn_w" name="viewPort" visibility="protected" type="_6UKtueO8EdyGNPaNHSGn_w" association="_6UUqDeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUp1uO8EdyGNPaNHSGn_w" name="dpi" visibility="protected" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUp1-O8EdyGNPaNHSGn_w" name="cartographicSymbol" visibility="protected" type="_6UUenuO8EdyGNPaNHSGn_w" association="_6UUqD-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUp2OO8EdyGNPaNHSGn_w" name="cancellable" visibility="protected" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUp2eO8EdyGNPaNHSGn_w" name="visit" visibility="public">
+                    <ownedParameter xmi:id="_6UUp2uO8EdyGNPaNHSGn_w" name="geometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUp2-O8EdyGNPaNHSGn_w" name="setGraphics2D" visibility="public">
+                    <ownedParameter xmi:id="_6UUp3OO8EdyGNPaNHSGn_w" name="graphics2D" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUp3eO8EdyGNPaNHSGn_w" name="setViewPort" visibility="public">
+                    <ownedParameter xmi:id="_6UUp3uO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUp3-O8EdyGNPaNHSGn_w" name="setDpi" visibility="public">
+                    <ownedParameter xmi:id="_6UUp4OO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUp4eO8EdyGNPaNHSGn_w" name="setCartographicSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUp4uO8EdyGNPaNHSGn_w" name="cartographicSymbol" type="_6UUenuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUp4-O8EdyGNPaNHSGn_w" name="setCancel" visibility="public">
+                    <ownedParameter xmi:id="_6UUp5OO8EdyGNPaNHSGn_w" name="cancellable" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUp5eO8EdyGNPaNHSGn_w" name="DrawIntsSymbolVisitor" clientDependency="_RIojJeO9EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UUp5uO8EdyGNPaNHSGn_w" name="graphics2D" visibility="protected" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUp5-O8EdyGNPaNHSGn_w" name="viewPort" visibility="protected" type="_6UKtueO8EdyGNPaNHSGn_w" association="_6UUqEeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUp6OO8EdyGNPaNHSGn_w" name="symbol" visibility="protected" type="_6UUlkuO8EdyGNPaNHSGn_w" association="_6UUqE-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUp6eO8EdyGNPaNHSGn_w" name="cancellable" visibility="protected" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_RIojJeO9EdyGNPaNHSGn_w" name="InterfaceRealization1" client="_6UUp5eO8EdyGNPaNHSGn_w">
+                    <supplier xmi:type="uml:Interface" href="model.uml#_wySg8OOSEdyLpcXsYAESEQ"/>
+                    <contract href="model.uml#_wySg8OOSEdyLpcXsYAESEQ"/>
+                  </interfaceRealization>
+                  <ownedOperation xmi:id="_6UUp6uO8EdyGNPaNHSGn_w" name="visit" visibility="public">
+                    <ownedParameter xmi:id="_6UUp6-O8EdyGNPaNHSGn_w" name="geometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUp7OO8EdyGNPaNHSGn_w" name="setGraphics2D" visibility="public">
+                    <ownedParameter xmi:id="_6UUp7eO8EdyGNPaNHSGn_w" name="graphics2D" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUp7uO8EdyGNPaNHSGn_w" name="setViewPort" visibility="public">
+                    <ownedParameter xmi:id="_6UUp7-O8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUp8OO8EdyGNPaNHSGn_w" name="setSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUp8eO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUp8uO8EdyGNPaNHSGn_w" name="setCancellable" visibility="public">
+                    <ownedParameter xmi:id="_6UUp8-O8EdyGNPaNHSGn_w" name="cancellable" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUp9OO8EdyGNPaNHSGn_w" name="FLabelVisitor" clientDependency="_Rhg9M-O9EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UUp9eO8EdyGNPaNHSGn_w" name="labels" visibility="protected" type="_6UUpfOO8EdyGNPaNHSGn_w" association="_6UUqFeO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_Rhg9M-O9EdyGNPaNHSGn_w" name="InterfaceRealization1" client="_6UUp9OO8EdyGNPaNHSGn_w">
+                    <supplier xmi:type="uml:Interface" href="model.uml#_wySg8OOSEdyLpcXsYAESEQ"/>
+                    <contract href="model.uml#_wySg8OOSEdyLpcXsYAESEQ"/>
+                  </interfaceRealization>
+                  <ownedOperation xmi:id="_6UUp9uO8EdyGNPaNHSGn_w" name="getLabels" visibility="public">
+                    <ownedParameter xmi:id="_6UUp9-O8EdyGNPaNHSGn_w" name="return" type="_6UUpfOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUp-OO8EdyGNPaNHSGn_w" name="visit" visibility="public">
+                    <ownedParameter xmi:id="_6UUp-eO8EdyGNPaNHSGn_w" name="geometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUp-uO8EdyGNPaNHSGn_w" name="DrawSymbolVisitor" clientDependency="_Rt4lROO9EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UUp--O8EdyGNPaNHSGn_w" name="viewPort" visibility="protected" type="_6UKtueO8EdyGNPaNHSGn_w" association="_6UUqF-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUp_OO8EdyGNPaNHSGn_w" name="graphics" visibility="protected" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUp_eO8EdyGNPaNHSGn_w" name="symbol" visibility="protected" type="_6UUlkuO8EdyGNPaNHSGn_w" association="_6UUqGeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUp_uO8EdyGNPaNHSGn_w" name="cancellable" visibility="protected" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_Rt4lROO9EdyGNPaNHSGn_w" name="InterfaceRealization1" client="_6UUp-uO8EdyGNPaNHSGn_w">
+                    <supplier xmi:type="uml:Interface" href="model.uml#_wySg8OOSEdyLpcXsYAESEQ"/>
+                    <contract href="model.uml#_wySg8OOSEdyLpcXsYAESEQ"/>
+                  </interfaceRealization>
+                  <ownedOperation xmi:id="_6UUp_-O8EdyGNPaNHSGn_w" name="setSymbol" visibility="public">
+                    <ownedParameter xmi:id="_6UUqAOO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqAeO8EdyGNPaNHSGn_w" name="visit" visibility="public">
+                    <ownedParameter xmi:id="_6UUqAuO8EdyGNPaNHSGn_w" name="geometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqA-O8EdyGNPaNHSGn_w" name="setViewPort" visibility="public">
+                    <ownedParameter xmi:id="_6UUqBOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqBeO8EdyGNPaNHSGn_w" name="setGraphics" visibility="public">
+                    <ownedParameter xmi:id="_6UUqBuO8EdyGNPaNHSGn_w" name="graphics" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqB-O8EdyGNPaNHSGn_w" name="setCancellable" visibility="public">
+                    <ownedParameter xmi:id="_6UUqCOO8EdyGNPaNHSGn_w" name="cancellable" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUqCeO8EdyGNPaNHSGn_w" name="GeometryVisitorFactory">
+                  <ownedAttribute xmi:id="_6UUqCuO8EdyGNPaNHSGn_w" name="flabelVisitor" visibility="private" type="_6UUp9OO8EdyGNPaNHSGn_w" association="_6UUqG-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUqC-O8EdyGNPaNHSGn_w" name="getFlabelVisitor" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUqDOO8EdyGNPaNHSGn_w" name="return" type="_6UUp9OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUqDeO8EdyGNPaNHSGn_w" memberEnd="_6UUp1eO8EdyGNPaNHSGn_w _6UUqDuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUqDuO8EdyGNPaNHSGn_w" name="target" type="_6UUp0-O8EdyGNPaNHSGn_w" association="_6UUqDeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUqD-O8EdyGNPaNHSGn_w" memberEnd="_6UUp1-O8EdyGNPaNHSGn_w _6UUqEOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUqEOO8EdyGNPaNHSGn_w" name="target" type="_6UUp0-O8EdyGNPaNHSGn_w" association="_6UUqD-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUqEeO8EdyGNPaNHSGn_w" memberEnd="_6UUp5-O8EdyGNPaNHSGn_w _6UUqEuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUqEuO8EdyGNPaNHSGn_w" name="target" type="_6UUp5eO8EdyGNPaNHSGn_w" association="_6UUqEeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUqE-O8EdyGNPaNHSGn_w" memberEnd="_6UUp6OO8EdyGNPaNHSGn_w _6UUqFOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUqFOO8EdyGNPaNHSGn_w" name="target" type="_6UUp5eO8EdyGNPaNHSGn_w" association="_6UUqE-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUqFeO8EdyGNPaNHSGn_w" memberEnd="_6UUp9eO8EdyGNPaNHSGn_w _6UUqFuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUqFuO8EdyGNPaNHSGn_w" name="target" type="_6UUp9OO8EdyGNPaNHSGn_w" association="_6UUqFeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUqF-O8EdyGNPaNHSGn_w" memberEnd="_6UUp--O8EdyGNPaNHSGn_w _6UUqGOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUqGOO8EdyGNPaNHSGn_w" name="target" type="_6UUp-uO8EdyGNPaNHSGn_w" association="_6UUqF-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUqGeO8EdyGNPaNHSGn_w" memberEnd="_6UUp_eO8EdyGNPaNHSGn_w _6UUqGuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUqGuO8EdyGNPaNHSGn_w" name="target" type="_6UUp-uO8EdyGNPaNHSGn_w" association="_6UUqGeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUqG-O8EdyGNPaNHSGn_w" memberEnd="_6UUqCuO8EdyGNPaNHSGn_w _6UUqHOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUqHOO8EdyGNPaNHSGn_w" name="target" type="_6UUqCeO8EdyGNPaNHSGn_w" association="_6UUqG-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUqHeO8EdyGNPaNHSGn_w" name="TestCartographySupport">
+                <generalization xmi:id="_6UUqHuO8EdyGNPaNHSGn_w" general="_6UUrP-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUqH-O8EdyGNPaNHSGn_w" name="suite" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUqIOO8EdyGNPaNHSGn_w" name="return" type="_6UnhouO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUqIeO8EdyGNPaNHSGn_w" name="TestCartographicSupportForSymbol">
+                <generalization xmi:id="_6UUqIuO8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUqI-O8EdyGNPaNHSGn_w" name="valenciaUTM30" visibility="public" type="_6UUn_eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUqJOO8EdyGNPaNHSGn_w" name="valenciaGeo" visibility="public" type="_6UUn_eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUqJeO8EdyGNPaNHSGn_w" name="TEST_UTM30_EXTENT" visibility="public" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUqJuO8EdyGNPaNHSGn_w" name="TEST_GEO_EXTENT" visibility="public" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUqJ-O8EdyGNPaNHSGn_w" name="TEST_EXTENT" visibility="public" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUqKOO8EdyGNPaNHSGn_w" name="TOL" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUqKeO8EdyGNPaNHSGn_w" name="symbol" visibility="private" type="_6UUenuO8EdyGNPaNHSGn_w" association="_6UUrROO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUqKuO8EdyGNPaNHSGn_w" name="zooms" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUqK-O8EdyGNPaNHSGn_w" name="setSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UUqLOO8EdyGNPaNHSGn_w" name="cs" type="_6UUenuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUqLeO8EdyGNPaNHSGn_w" name="setUp" visibility="public"/>
+                <ownedOperation xmi:id="_6UUqLuO8EdyGNPaNHSGn_w" name="testSymbolUnitDefinition" visibility="public"/>
+                <ownedOperation xmi:id="_6UUqL-O8EdyGNPaNHSGn_w" name="testSymbolReferenceSystemDefinition" visibility="public"/>
+                <ownedOperation xmi:id="_6UUqMOO8EdyGNPaNHSGn_w" name="testDegreesUnits_MapReferenceSystem" visibility="public"/>
+                <ownedOperation xmi:id="_6UUqMeO8EdyGNPaNHSGn_w" name="testKilometersUnits_MapReferenceSystem" visibility="public"/>
+                <ownedOperation xmi:id="_6UUqMuO8EdyGNPaNHSGn_w" name="testMapInKilometersSymbolInMeters_MapReferenceSystem" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UUqM-O8EdyGNPaNHSGn_w" name="rendering">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUqNOO8EdyGNPaNHSGn_w" name="TestILegend">
+                  <generalization xmi:id="_6UUqNeO8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqNuO8EdyGNPaNHSGn_w" name="classesToTest" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqN-O8EdyGNPaNHSGn_w" name="legends" visibility="private" type="_6UnbUOO8EdyGNPaNHSGn_w" association="_6UUrFeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUqOOO8EdyGNPaNHSGn_w" name="getClassesToTest" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UUqOeO8EdyGNPaNHSGn_w" name="return" type="_6UnhiOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqOuO8EdyGNPaNHSGn_w" name="fillthelegend" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UUqO-O8EdyGNPaNHSGn_w" name="le" type="_6UnbUOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqPOO8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqPeO8EdyGNPaNHSGn_w" name="addLegendToTest" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUqPuO8EdyGNPaNHSGn_w" name="legendClass" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqP-O8EdyGNPaNHSGn_w" name="getNewLegendInstances" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUqQOO8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqQeO8EdyGNPaNHSGn_w" name="setUp" visibility="protected"/>
+                  <ownedOperation xmi:id="_6UUqQuO8EdyGNPaNHSGn_w" name="testILegendSelfDefinition" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUqQ-O8EdyGNPaNHSGn_w" name="testSymbolAvailability" visibility="public"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUqROO8EdyGNPaNHSGn_w" name="TestIClassifiedLegend">
+                  <generalization xmi:id="_6UUqReO8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqRuO8EdyGNPaNHSGn_w" name="v0" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqR-O8EdyGNPaNHSGn_w" name="v1" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqSOO8EdyGNPaNHSGn_w" name="v2" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqSeO8EdyGNPaNHSGn_w" name="v3" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqSuO8EdyGNPaNHSGn_w" name="FIELD3" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqS-O8EdyGNPaNHSGn_w" name="FIELD2" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqTOO8EdyGNPaNHSGn_w" name="FIELD1" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqTeO8EdyGNPaNHSGn_w" name="FIELD0" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqTuO8EdyGNPaNHSGn_w" name="FIELDID" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqT-O8EdyGNPaNHSGn_w" name="feature0Values" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqUOO8EdyGNPaNHSGn_w" name="feature1Values" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqUeO8EdyGNPaNHSGn_w" name="feature2Values" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqUuO8EdyGNPaNHSGn_w" name="feature3Values" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqU-O8EdyGNPaNHSGn_w" name="featureValues" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqVOO8EdyGNPaNHSGn_w" name="fieldNames" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqVeO8EdyGNPaNHSGn_w" name="intervalLegends" visibility="private" type="_6UnZh-O8EdyGNPaNHSGn_w" association="_6UUrF-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqVuO8EdyGNPaNHSGn_w" name="mockDataSource" visibility="private" type="_6UUqYuO8EdyGNPaNHSGn_w" association="_6UUrGeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqV-O8EdyGNPaNHSGn_w" name="symTable" type="_6UdsL-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqWOO8EdyGNPaNHSGn_w" name="classifiedLegends" visibility="private" type="_6UnaVOO8EdyGNPaNHSGn_w" association="_6UUrG-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqWeO8EdyGNPaNHSGn_w" name="symbols" visibility="private" type="_6UUlkuO8EdyGNPaNHSGn_w" association="_6UUrHeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqWuO8EdyGNPaNHSGn_w" name="sampleValues" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUqW-O8EdyGNPaNHSGn_w" name="features" visibility="private" type="_6UUetuO8EdyGNPaNHSGn_w" association="_6UUrH-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUqXOO8EdyGNPaNHSGn_w" name="setUp" visibility="protected"/>
+                  <ownedOperation xmi:id="_6UUqXeO8EdyGNPaNHSGn_w" name="fillClassifiedLegend" visibility="private">
+                    <ownedParameter xmi:id="_6UUqXuO8EdyGNPaNHSGn_w" name="legend" type="_6UnaVOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqX-O8EdyGNPaNHSGn_w" name="values" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqYOO8EdyGNPaNHSGn_w" name="testICLAdittion" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUqYeO8EdyGNPaNHSGn_w" name="testICLCheckValueSymbols" visibility="public"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUqYuO8EdyGNPaNHSGn_w" name="MockDataSource" visibility="private">
+                  <ownedOperation xmi:id="_6UUqY-O8EdyGNPaNHSGn_w" name="start" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUqZOO8EdyGNPaNHSGn_w" name="stop" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUqZeO8EdyGNPaNHSGn_w" name="getWhereFilter" visibility="public">
+                    <ownedParameter xmi:id="_6UUqZuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqZ-O8EdyGNPaNHSGn_w" name="getDataSourceFactory" visibility="public">
+                    <ownedParameter xmi:id="_6UUqaOO8EdyGNPaNHSGn_w" name="return" type="_6UdsM-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqaeO8EdyGNPaNHSGn_w" name="getMemento" visibility="public">
+                    <ownedParameter xmi:id="_6UUqauO8EdyGNPaNHSGn_w" name="return" type="_6Ud75OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqa-O8EdyGNPaNHSGn_w" name="setDataSourceFactory" visibility="public">
+                    <ownedParameter xmi:id="_6UUqbOO8EdyGNPaNHSGn_w" name="dsf" type="_6UdsM-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqbeO8EdyGNPaNHSGn_w" name="setSourceInfo" visibility="public">
+                    <ownedParameter xmi:id="_6UUqbuO8EdyGNPaNHSGn_w" name="sourceInfo" type="_6Ud74-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqb-O8EdyGNPaNHSGn_w" name="getSourceInfo" visibility="public">
+                    <ownedParameter xmi:id="_6UUqcOO8EdyGNPaNHSGn_w" name="return" type="_6Ud74-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqceO8EdyGNPaNHSGn_w" name="getAsString" visibility="public">
+                    <ownedParameter xmi:id="_6UUqcuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqc-O8EdyGNPaNHSGn_w" name="remove" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUqdOO8EdyGNPaNHSGn_w" name="getPrimaryKeys" visibility="public">
+                    <ownedParameter xmi:id="_6UUqdeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqduO8EdyGNPaNHSGn_w" name="getPKValue" visibility="public">
+                    <ownedParameter xmi:id="_6UUqd-O8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqeOO8EdyGNPaNHSGn_w" name="return" type="_6Ud75eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqeeO8EdyGNPaNHSGn_w" name="getPKName" visibility="public">
+                    <ownedParameter xmi:id="_6UUqeuO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqe-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqfOO8EdyGNPaNHSGn_w" name="getPKNames" visibility="public">
+                    <ownedParameter xmi:id="_6UUqfeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqfuO8EdyGNPaNHSGn_w" name="getPKType" visibility="public">
+                    <ownedParameter xmi:id="_6UUqf-O8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqgOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqgeO8EdyGNPaNHSGn_w" name="getPKCardinality" visibility="public">
+                    <ownedParameter xmi:id="_6UUqguO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqg-O8EdyGNPaNHSGn_w" name="getRow" visibility="public">
+                    <ownedParameter xmi:id="_6UUqhOO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqheO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqhuO8EdyGNPaNHSGn_w" name="getDataWare" visibility="public">
+                    <ownedParameter xmi:id="_6UUqh-O8EdyGNPaNHSGn_w" name="mode" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqiOO8EdyGNPaNHSGn_w" name="return" type="_6UdsN-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqieO8EdyGNPaNHSGn_w" name="isVirtualField" visibility="public">
+                    <ownedParameter xmi:id="_6UUqiuO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqi-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqjOO8EdyGNPaNHSGn_w" name="getDriver" visibility="public">
+                    <ownedParameter xmi:id="_6UUqjeO8EdyGNPaNHSGn_w" name="return" type="_6UdzluO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqjuO8EdyGNPaNHSGn_w" name="reload" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUqj-O8EdyGNPaNHSGn_w" name="addDataSourceListener" visibility="public">
+                    <ownedParameter xmi:id="_6UUqkOO8EdyGNPaNHSGn_w" name="listener" type="_6Ud75uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqkeO8EdyGNPaNHSGn_w" name="removeDataSourceListener" visibility="public">
+                    <ownedParameter xmi:id="_6UUqkuO8EdyGNPaNHSGn_w" name="listener" type="_6Ud75uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqk-O8EdyGNPaNHSGn_w" name="getFieldValue" visibility="public">
+                    <ownedParameter xmi:id="_6UUqlOO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqleO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqluO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUql-O8EdyGNPaNHSGn_w" name="getFieldCount" visibility="public">
+                    <ownedParameter xmi:id="_6UUqmOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqmeO8EdyGNPaNHSGn_w" name="getRowCount" visibility="public">
+                    <ownedParameter xmi:id="_6UUqmuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqm-O8EdyGNPaNHSGn_w" name="getFieldWidth" visibility="public">
+                    <ownedParameter xmi:id="_6UUqnOO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqneO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqnuO8EdyGNPaNHSGn_w" name="getFieldName" visibility="public">
+                    <ownedParameter xmi:id="_6UUqn-O8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqoOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqoeO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                    <ownedParameter xmi:id="_6UUqouO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqo-O8EdyGNPaNHSGn_w" name="getFieldNames" visibility="public">
+                    <ownedParameter xmi:id="_6UUqpOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqpeO8EdyGNPaNHSGn_w" name="getFieldIndexByName" visibility="public">
+                    <ownedParameter xmi:id="_6UUqpuO8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqp-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqqOO8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                    <ownedParameter xmi:id="_6UUqqeO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqquO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqq-O8EdyGNPaNHSGn_w" name="start" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUqrOO8EdyGNPaNHSGn_w" name="stop" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUqreO8EdyGNPaNHSGn_w" name="getWhereFilter" visibility="public">
+                    <ownedParameter xmi:id="_6UUqruO8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqr-O8EdyGNPaNHSGn_w" name="getDataSourceFactory" visibility="public">
+                    <ownedParameter xmi:id="_6UUqsOO8EdyGNPaNHSGn_w" name="return" type="_6UdsM-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqseO8EdyGNPaNHSGn_w" name="getMemento" visibility="public">
+                    <ownedParameter xmi:id="_6UUqsuO8EdyGNPaNHSGn_w" name="return" type="_6Ud75OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqs-O8EdyGNPaNHSGn_w" name="setDataSourceFactory" visibility="public">
+                    <ownedParameter xmi:id="_6UUqtOO8EdyGNPaNHSGn_w" name="dsf" type="_6UdsM-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqteO8EdyGNPaNHSGn_w" name="setSourceInfo" visibility="public">
+                    <ownedParameter xmi:id="_6UUqtuO8EdyGNPaNHSGn_w" name="sourceInfo" type="_6Ud74-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqt-O8EdyGNPaNHSGn_w" name="getSourceInfo" visibility="public">
+                    <ownedParameter xmi:id="_6UUquOO8EdyGNPaNHSGn_w" name="return" type="_6Ud74-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqueO8EdyGNPaNHSGn_w" name="getAsString" visibility="public">
+                    <ownedParameter xmi:id="_6UUquuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqu-O8EdyGNPaNHSGn_w" name="remove" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUqvOO8EdyGNPaNHSGn_w" name="getPrimaryKeys" visibility="public">
+                    <ownedParameter xmi:id="_6UUqveO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqvuO8EdyGNPaNHSGn_w" name="getPKValue" visibility="public">
+                    <ownedParameter xmi:id="_6UUqv-O8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqwOO8EdyGNPaNHSGn_w" name="return" type="_6Ud75eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqweO8EdyGNPaNHSGn_w" name="getPKName" visibility="public">
+                    <ownedParameter xmi:id="_6UUqwuO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqw-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqxOO8EdyGNPaNHSGn_w" name="getPKNames" visibility="public">
+                    <ownedParameter xmi:id="_6UUqxeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqxuO8EdyGNPaNHSGn_w" name="getPKType" visibility="public">
+                    <ownedParameter xmi:id="_6UUqx-O8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqyOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqyeO8EdyGNPaNHSGn_w" name="getPKCardinality" visibility="public">
+                    <ownedParameter xmi:id="_6UUqyuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqy-O8EdyGNPaNHSGn_w" name="getRow" visibility="public">
+                    <ownedParameter xmi:id="_6UUqzOO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUqzeO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUqzuO8EdyGNPaNHSGn_w" name="getDataWare" visibility="public">
+                    <ownedParameter xmi:id="_6UUqz-O8EdyGNPaNHSGn_w" name="mode" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUq0OO8EdyGNPaNHSGn_w" name="return" type="_6UdsN-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUq0eO8EdyGNPaNHSGn_w" name="isVirtualField" visibility="public">
+                    <ownedParameter xmi:id="_6UUq0uO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUq0-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUq1OO8EdyGNPaNHSGn_w" name="getDriver" visibility="public">
+                    <ownedParameter xmi:id="_6UUq1eO8EdyGNPaNHSGn_w" name="return" type="_6UdzluO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUq1uO8EdyGNPaNHSGn_w" name="reload" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUq1-O8EdyGNPaNHSGn_w" name="addDataSourceListener" visibility="public">
+                    <ownedParameter xmi:id="_6UUq2OO8EdyGNPaNHSGn_w" name="listener" type="_6Ud75uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUq2eO8EdyGNPaNHSGn_w" name="removeDataSourceListener" visibility="public">
+                    <ownedParameter xmi:id="_6UUq2uO8EdyGNPaNHSGn_w" name="listener" type="_6Ud75uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUq2-O8EdyGNPaNHSGn_w" name="getFieldValue" visibility="public">
+                    <ownedParameter xmi:id="_6UUq3OO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUq3eO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUq3uO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUq3-O8EdyGNPaNHSGn_w" name="getFieldCount" visibility="public">
+                    <ownedParameter xmi:id="_6UUq4OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUq4eO8EdyGNPaNHSGn_w" name="getRowCount" visibility="public">
+                    <ownedParameter xmi:id="_6UUq4uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUq4-O8EdyGNPaNHSGn_w" name="getFieldWidth" visibility="public">
+                    <ownedParameter xmi:id="_6UUq5OO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUq5eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUq5uO8EdyGNPaNHSGn_w" name="getFieldName" visibility="public">
+                    <ownedParameter xmi:id="_6UUq5-O8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUq6OO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUq6eO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                    <ownedParameter xmi:id="_6UUq6uO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUq6-O8EdyGNPaNHSGn_w" name="getFieldNames" visibility="public">
+                    <ownedParameter xmi:id="_6UUq7OO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUq7eO8EdyGNPaNHSGn_w" name="getFieldIndexByName" visibility="public">
+                    <ownedParameter xmi:id="_6UUq7uO8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUq7-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUq8OO8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                    <ownedParameter xmi:id="_6UUq8eO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUq8uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUq8-O8EdyGNPaNHSGn_w" name="TestAbstractIntervalLegend">
+                  <generalization xmi:id="_6UUq9OO8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUq9eO8EdyGNPaNHSGn_w" name="v0" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUq9uO8EdyGNPaNHSGn_w" name="v1" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUq9-O8EdyGNPaNHSGn_w" name="v2" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUq-OO8EdyGNPaNHSGn_w" name="v3" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUq-eO8EdyGNPaNHSGn_w" name="FIELD3" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUq-uO8EdyGNPaNHSGn_w" name="FIELD2" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUq--O8EdyGNPaNHSGn_w" name="FIELD1" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUq_OO8EdyGNPaNHSGn_w" name="FIELD0" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUq_eO8EdyGNPaNHSGn_w" name="FIELDID" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUq_uO8EdyGNPaNHSGn_w" name="feature0Values" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUq_-O8EdyGNPaNHSGn_w" name="feature1Values" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUrAOO8EdyGNPaNHSGn_w" name="feature2Values" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUrAeO8EdyGNPaNHSGn_w" name="feature3Values" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUrAuO8EdyGNPaNHSGn_w" name="featureValues" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUrA-O8EdyGNPaNHSGn_w" name="fieldNames" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUrBOO8EdyGNPaNHSGn_w" name="intervalLegends" visibility="private" type="_6UnZh-O8EdyGNPaNHSGn_w" association="_6UUrIeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUrBeO8EdyGNPaNHSGn_w" name="mockDataSource" visibility="private" type="_6UUqYuO8EdyGNPaNHSGn_w" association="_6UUrI-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUrBuO8EdyGNPaNHSGn_w" name="interval0" visibility="private" type="_6UnZROO8EdyGNPaNHSGn_w" association="_6UUrJeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUrB-O8EdyGNPaNHSGn_w" name="interval1" visibility="private" type="_6UnZROO8EdyGNPaNHSGn_w" association="_6UUrJ-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUrCOO8EdyGNPaNHSGn_w" name="interval2" visibility="private" type="_6UnZROO8EdyGNPaNHSGn_w" association="_6UUrKeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUrCeO8EdyGNPaNHSGn_w" name="interval3" visibility="private" type="_6UnZROO8EdyGNPaNHSGn_w" association="_6UUrK-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUrCuO8EdyGNPaNHSGn_w" name="symTable" type="_6UdsL-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUrC-O8EdyGNPaNHSGn_w" name="symbols" visibility="private" type="_6UUlkuO8EdyGNPaNHSGn_w" association="_6UUrLeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUrDOO8EdyGNPaNHSGn_w" name="sampleIntervals" visibility="private" type="_6UnZROO8EdyGNPaNHSGn_w" association="_6UUrL-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUrDeO8EdyGNPaNHSGn_w" name="features" visibility="private" type="_6UUetuO8EdyGNPaNHSGn_w" association="_6UUrMeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUrDuO8EdyGNPaNHSGn_w" name="setUp" visibility="protected"/>
+                  <ownedOperation xmi:id="_6UUrD-O8EdyGNPaNHSGn_w" name="fillClassifiedLegend" visibility="private">
+                    <ownedParameter xmi:id="_6UUrEOO8EdyGNPaNHSGn_w" name="legend" type="_6UnZh-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUrEeO8EdyGNPaNHSGn_w" name="values" type="_6UnZROO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUrEuO8EdyGNPaNHSGn_w" name="testICLAdittion" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUrE-O8EdyGNPaNHSGn_w" name="testICLCheckValueSymbols" visibility="public"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUrFOO8EdyGNPaNHSGn_w" name="MockDataSource" visibility="private"/>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUrFeO8EdyGNPaNHSGn_w" memberEnd="_6UUqN-O8EdyGNPaNHSGn_w _6UUrFuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUrFuO8EdyGNPaNHSGn_w" name="target" type="_6UUqNOO8EdyGNPaNHSGn_w" association="_6UUrFeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUrF-O8EdyGNPaNHSGn_w" memberEnd="_6UUqVeO8EdyGNPaNHSGn_w _6UUrGOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUrGOO8EdyGNPaNHSGn_w" name="target" type="_6UUqROO8EdyGNPaNHSGn_w" association="_6UUrF-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUrGeO8EdyGNPaNHSGn_w" memberEnd="_6UUqVuO8EdyGNPaNHSGn_w _6UUrGuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUrGuO8EdyGNPaNHSGn_w" name="target" type="_6UUqROO8EdyGNPaNHSGn_w" association="_6UUrGeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUrG-O8EdyGNPaNHSGn_w" memberEnd="_6UUqWOO8EdyGNPaNHSGn_w _6UUrHOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUrHOO8EdyGNPaNHSGn_w" name="target" type="_6UUqROO8EdyGNPaNHSGn_w" association="_6UUrG-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUrHeO8EdyGNPaNHSGn_w" memberEnd="_6UUqWeO8EdyGNPaNHSGn_w _6UUrHuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUrHuO8EdyGNPaNHSGn_w" name="target" type="_6UUqROO8EdyGNPaNHSGn_w" association="_6UUrHeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUrH-O8EdyGNPaNHSGn_w" memberEnd="_6UUqW-O8EdyGNPaNHSGn_w _6UUrIOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUrIOO8EdyGNPaNHSGn_w" name="target" type="_6UUqROO8EdyGNPaNHSGn_w" association="_6UUrH-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUrIeO8EdyGNPaNHSGn_w" memberEnd="_6UUrBOO8EdyGNPaNHSGn_w _6UUrIuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUrIuO8EdyGNPaNHSGn_w" name="target" type="_6UUq8-O8EdyGNPaNHSGn_w" association="_6UUrIeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUrI-O8EdyGNPaNHSGn_w" memberEnd="_6UUrBeO8EdyGNPaNHSGn_w _6UUrJOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUrJOO8EdyGNPaNHSGn_w" name="target" type="_6UUq8-O8EdyGNPaNHSGn_w" association="_6UUrI-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUrJeO8EdyGNPaNHSGn_w" memberEnd="_6UUrBuO8EdyGNPaNHSGn_w _6UUrJuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUrJuO8EdyGNPaNHSGn_w" name="target" type="_6UUq8-O8EdyGNPaNHSGn_w" association="_6UUrJeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUrJ-O8EdyGNPaNHSGn_w" memberEnd="_6UUrB-O8EdyGNPaNHSGn_w _6UUrKOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUrKOO8EdyGNPaNHSGn_w" name="target" type="_6UUq8-O8EdyGNPaNHSGn_w" association="_6UUrJ-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUrKeO8EdyGNPaNHSGn_w" memberEnd="_6UUrCOO8EdyGNPaNHSGn_w _6UUrKuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUrKuO8EdyGNPaNHSGn_w" name="target" type="_6UUq8-O8EdyGNPaNHSGn_w" association="_6UUrKeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUrK-O8EdyGNPaNHSGn_w" memberEnd="_6UUrCeO8EdyGNPaNHSGn_w _6UUrLOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUrLOO8EdyGNPaNHSGn_w" name="target" type="_6UUq8-O8EdyGNPaNHSGn_w" association="_6UUrK-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUrLeO8EdyGNPaNHSGn_w" memberEnd="_6UUrC-O8EdyGNPaNHSGn_w _6UUrLuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUrLuO8EdyGNPaNHSGn_w" name="target" type="_6UUq8-O8EdyGNPaNHSGn_w" association="_6UUrLeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUrL-O8EdyGNPaNHSGn_w" memberEnd="_6UUrDOO8EdyGNPaNHSGn_w _6UUrMOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUrMOO8EdyGNPaNHSGn_w" name="target" type="_6UUq8-O8EdyGNPaNHSGn_w" association="_6UUrL-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUrMeO8EdyGNPaNHSGn_w" memberEnd="_6UUrDeO8EdyGNPaNHSGn_w _6UUrMuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUrMuO8EdyGNPaNHSGn_w" name="target" type="_6UUq8-O8EdyGNPaNHSGn_w" association="_6UUrMeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrM-O8EdyGNPaNHSGn_w" name="java.awt.Color"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrNOO8EdyGNPaNHSGn_w" name="Symbolizer"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrNeO8EdyGNPaNHSGn_w" name="Value"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrNuO8EdyGNPaNHSGn_w" name="FShape"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrN-O8EdyGNPaNHSGn_w" name="Font"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrOOO8EdyGNPaNHSGn_w" name="Logger"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrOeO8EdyGNPaNHSGn_w" name="Rectangle"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrOuO8EdyGNPaNHSGn_w" name="FGeometry"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrO-O8EdyGNPaNHSGn_w" name="Geometry"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrPOO8EdyGNPaNHSGn_w" name="PathIterator"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrPeO8EdyGNPaNHSGn_w" name="Handler"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrPuO8EdyGNPaNHSGn_w" name="Shape"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrP-O8EdyGNPaNHSGn_w" name="TestSuite"/>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UUrQOO8EdyGNPaNHSGn_w" memberEnd="_6UUexuO8EdyGNPaNHSGn_w _6UUrQeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UUrQeO8EdyGNPaNHSGn_w" name="target" type="_6UUevOO8EdyGNPaNHSGn_w" association="_6UUrQOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UUrQuO8EdyGNPaNHSGn_w" memberEnd="_6UUfqOO8EdyGNPaNHSGn_w _6UUrQ-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UUrQ-O8EdyGNPaNHSGn_w" name="target" type="_6UUfpeO8EdyGNPaNHSGn_w" association="_6UUrQuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UUrROO8EdyGNPaNHSGn_w" memberEnd="_6UUqKeO8EdyGNPaNHSGn_w _6UUrReO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UUrReO8EdyGNPaNHSGn_w" name="target" type="_6UUqIeO8EdyGNPaNHSGn_w" association="_6UUrROO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UUrRuO8EdyGNPaNHSGn_w" name="crs">
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUrR-O8EdyGNPaNHSGn_w" name="CRSFactory">
+                <ownedAttribute xmi:id="_6UUrSOO8EdyGNPaNHSGn_w" name="cp" visibility="public" type="_6UUrTOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUrSeO8EdyGNPaNHSGn_w" name="getCRS" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUrSuO8EdyGNPaNHSGn_w" name="code" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrS-O8EdyGNPaNHSGn_w" name="return" type="_6UnhiuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrTOO8EdyGNPaNHSGn_w" name="ICRSFactory"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UUrTeO8EdyGNPaNHSGn_w" name="demo">
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUrTuO8EdyGNPaNHSGn_w" name="MapImage">
+                <generalization xmi:id="_6UUrT-O8EdyGNPaNHSGn_w" general="_6UUrYOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUrUOO8EdyGNPaNHSGn_w" name="jContentPane" visibility="private" type="_6UUrYeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUrUeO8EdyGNPaNHSGn_w" name="newMapControl" visibility="private" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UUrYuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUrUuO8EdyGNPaNHSGn_w" name="initialize" visibility="private"/>
+                <ownedOperation xmi:id="_6UUrU-O8EdyGNPaNHSGn_w" name="getJContentPane" visibility="private">
+                  <ownedParameter xmi:id="_6UUrVOO8EdyGNPaNHSGn_w" name="return" type="_6UUrYeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrVeO8EdyGNPaNHSGn_w" name="getNewMapControl" visibility="private">
+                  <ownedParameter xmi:id="_6UUrVuO8EdyGNPaNHSGn_w" name="return" type="_6UKvhOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUrV-O8EdyGNPaNHSGn_w" name="ImageFrame">
+                <generalization xmi:id="_6UUrWOO8EdyGNPaNHSGn_w" general="_6UUrYOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUrWeO8EdyGNPaNHSGn_w" name="jContentPane" visibility="private" type="_6UUrYeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUrWuO8EdyGNPaNHSGn_w" name="initialize" visibility="private"/>
+                <ownedOperation xmi:id="_6UUrW-O8EdyGNPaNHSGn_w" name="getJContentPane" visibility="private">
+                  <ownedParameter xmi:id="_6UUrXOO8EdyGNPaNHSGn_w" name="return" type="_6UUrYeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUrXeO8EdyGNPaNHSGn_w" name="DrawImage">
+                <ownedOperation xmi:id="_6UUrXuO8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUrX-O8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrYOO8EdyGNPaNHSGn_w" name="JFrame"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UUrYeO8EdyGNPaNHSGn_w" name="javax.swing.JPanel"/>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UUrYuO8EdyGNPaNHSGn_w" memberEnd="_6UUrUeO8EdyGNPaNHSGn_w _6UUrY-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UUrY-O8EdyGNPaNHSGn_w" name="target" type="_6UUrTuO8EdyGNPaNHSGn_w" association="_6UUrYuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UUrZOO8EdyGNPaNHSGn_w" name="drivers">
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUrZeO8EdyGNPaNHSGn_w" name="BoundedShapes">
+                <ownedOperation xmi:id="_6UUrZuO8EdyGNPaNHSGn_w" name="getShapeBounds">
+                  <ownedParameter xmi:id="_6UUrZ-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUraOO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUraeO8EdyGNPaNHSGn_w" name="getShapeType">
+                  <ownedParameter xmi:id="_6UUrauO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUra-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUrbOO8EdyGNPaNHSGn_w" name="ITableDefinition">
+                <ownedOperation xmi:id="_6UUrbeO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                  <ownedParameter xmi:id="_6UUrbuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrb-O8EdyGNPaNHSGn_w" name="setName" visibility="public">
+                  <ownedParameter xmi:id="_6UUrcOO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrceO8EdyGNPaNHSGn_w" name="getFieldsDesc" visibility="public">
+                  <ownedParameter xmi:id="_6UUrcuO8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrc-O8EdyGNPaNHSGn_w" name="setFieldsDesc" visibility="public">
+                  <ownedParameter xmi:id="_6UUrdOO8EdyGNPaNHSGn_w" name="fieldsDesc" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUrdeO8EdyGNPaNHSGn_w" name="IVectorialDatabaseDriver">
+                <generalization xmi:id="_6UUrduO8EdyGNPaNHSGn_w" general="_6UUuxeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUrd-O8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6UUreOO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUreeO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UUreuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUre-O8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6UUrfOO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrfeO8EdyGNPaNHSGn_w" name="strEPSG" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrfuO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrf-O8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6UUrgOO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrgeO8EdyGNPaNHSGn_w" name="strEPSG" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrguO8EdyGNPaNHSGn_w" name="alphaNumericFieldsNeeded" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrg-O8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrhOO8EdyGNPaNHSGn_w" name="getFields" visibility="public">
+                  <ownedParameter xmi:id="_6UUrheO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrhuO8EdyGNPaNHSGn_w" name="getWhereClause" visibility="public">
+                  <ownedParameter xmi:id="_6UUrh-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUriOO8EdyGNPaNHSGn_w" name="getTableName" visibility="public">
+                  <ownedParameter xmi:id="_6UUrieO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUriuO8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                <ownedOperation xmi:id="_6UUri-O8EdyGNPaNHSGn_w" name="open" visibility="public"/>
+                <ownedOperation xmi:id="_6UUrjOO8EdyGNPaNHSGn_w" name="getRowIndexByFID" visibility="public">
+                  <ownedParameter xmi:id="_6UUrjeO8EdyGNPaNHSGn_w" name="FID" type="_6UUetuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrjuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrj-O8EdyGNPaNHSGn_w" name="getGeometryField" visibility="public">
+                  <ownedParameter xmi:id="_6UUrkOO8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrkeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrkuO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6UUrk-O8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrlOO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6UUrleO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrluO8EdyGNPaNHSGn_w" name="getLyrDef" visibility="public">
+                  <ownedParameter xmi:id="_6UUrl-O8EdyGNPaNHSGn_w" name="return" type="_6UUsSeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrmOO8EdyGNPaNHSGn_w" name="remove" visibility="public"/>
+                <ownedOperation xmi:id="_6UUrmeO8EdyGNPaNHSGn_w" name="load" visibility="public"/>
+                <ownedOperation xmi:id="_6UUrmuO8EdyGNPaNHSGn_w" name="getConnection" visibility="public">
+                  <ownedParameter xmi:id="_6UUrm-O8EdyGNPaNHSGn_w" name="return" type="_6UUto-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrnOO8EdyGNPaNHSGn_w" name="getConnectionString" visibility="public">
+                  <ownedParameter xmi:id="_6UUrneO8EdyGNPaNHSGn_w" name="_host" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrnuO8EdyGNPaNHSGn_w" name="_port" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrn-O8EdyGNPaNHSGn_w" name="_db" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUroOO8EdyGNPaNHSGn_w" name="_user" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUroeO8EdyGNPaNHSGn_w" name="_pw" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrouO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUro-O8EdyGNPaNHSGn_w" name="getDefaultPort" visibility="public">
+                  <ownedParameter xmi:id="_6UUrpOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrpeO8EdyGNPaNHSGn_w" name="getConnectionStringBeginning" visibility="public">
+                  <ownedParameter xmi:id="_6UUrpuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrp-O8EdyGNPaNHSGn_w" name="setData" visibility="public">
+                  <ownedParameter xmi:id="_6UUrqOO8EdyGNPaNHSGn_w" name="conn" type="_6UUto-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrqeO8EdyGNPaNHSGn_w" name="lyrDef" type="_6UUsSeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrquO8EdyGNPaNHSGn_w" name="getAllFields" visibility="public">
+                  <ownedParameter xmi:id="_6UUrq-O8EdyGNPaNHSGn_w" name="conn" type="_6UUto-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrrOO8EdyGNPaNHSGn_w" name="tableName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrreO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrruO8EdyGNPaNHSGn_w" name="getAllFieldTypeNames" visibility="public">
+                  <ownedParameter xmi:id="_6UUrr-O8EdyGNPaNHSGn_w" name="conn" type="_6UUto-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrsOO8EdyGNPaNHSGn_w" name="tableName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrseO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrsuO8EdyGNPaNHSGn_w" name="getIdFieldsCandidates" visibility="public">
+                  <ownedParameter xmi:id="_6UUrs-O8EdyGNPaNHSGn_w" name="conn" type="_6UUto-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrtOO8EdyGNPaNHSGn_w" name="tableName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrteO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrtuO8EdyGNPaNHSGn_w" name="getGeometryFieldsCandidates" visibility="public">
+                  <ownedParameter xmi:id="_6UUrt-O8EdyGNPaNHSGn_w" name="conn" type="_6UUto-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUruOO8EdyGNPaNHSGn_w" name="tableName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrueO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUruuO8EdyGNPaNHSGn_w" name="setWorkingArea" visibility="public">
+                  <ownedParameter xmi:id="_6UUru-O8EdyGNPaNHSGn_w" name="_wa" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrvOO8EdyGNPaNHSGn_w" name="getTableNames" visibility="public">
+                  <ownedParameter xmi:id="_6UUrveO8EdyGNPaNHSGn_w" name="conex" type="_6UUto-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrvuO8EdyGNPaNHSGn_w" name="dbName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUrv-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUrwOO8EdyGNPaNHSGn_w" name="getWorkingArea" visibility="public">
+                  <ownedParameter xmi:id="_6UUrweO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUrwuO8EdyGNPaNHSGn_w" name="DefaultJDBCDriver" clientDependency="_6UUr4OO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UUrw-O8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUrxOO8EdyGNPaNHSGn_w" name="poolPassw" visibility="protected" type="_6UdsL-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUrxeO8EdyGNPaNHSGn_w" name="conn" visibility="protected" type="_6UUto-O8EdyGNPaNHSGn_w" association="_6UdsP-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUrxuO8EdyGNPaNHSGn_w" name="lyrDef" visibility="protected" type="_6UUsSeO8EdyGNPaNHSGn_w" association="_6UdsQeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUrx-O8EdyGNPaNHSGn_w" name="rs" visibility="protected" type="_6UdsMOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUryOO8EdyGNPaNHSGn_w" name="bCursorActivo" visibility="protected" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUryeO8EdyGNPaNHSGn_w" name="st" visibility="protected" type="_6UdsMeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUryuO8EdyGNPaNHSGn_w" name="numReg" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUry-O8EdyGNPaNHSGn_w" name="fullExtent" visibility="protected" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUrzOO8EdyGNPaNHSGn_w" name="hashRelate" visibility="protected" type="_6UdsL-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUrzeO8EdyGNPaNHSGn_w" name="metaData" visibility="protected" type="_6UdsMuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUrzuO8EdyGNPaNHSGn_w" name="workingArea" visibility="protected" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUrz-O8EdyGNPaNHSGn_w" name="driverClass" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr0OO8EdyGNPaNHSGn_w" name="userName" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr0eO8EdyGNPaNHSGn_w" name="dbUrl" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr0uO8EdyGNPaNHSGn_w" name="className" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr0-O8EdyGNPaNHSGn_w" name="catalogName" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr1OO8EdyGNPaNHSGn_w" name="schema" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr1eO8EdyGNPaNHSGn_w" name="tableName" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr1uO8EdyGNPaNHSGn_w" name="fields" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr1-O8EdyGNPaNHSGn_w" name="FIDfield" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr2OO8EdyGNPaNHSGn_w" name="geometryField" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr2eO8EdyGNPaNHSGn_w" name="whereClause" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr2uO8EdyGNPaNHSGn_w" name="strSRID" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr2-O8EdyGNPaNHSGn_w" name="host" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr3OO8EdyGNPaNHSGn_w" name="port" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr3eO8EdyGNPaNHSGn_w" name="dbName" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr3uO8EdyGNPaNHSGn_w" name="connName" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUr3-O8EdyGNPaNHSGn_w" name="driverEventListeners" visibility="protected" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UUr4OO8EdyGNPaNHSGn_w" name="IVectorialJDBCDriver" supplier="_6UUuOeO8EdyGNPaNHSGn_w" client="_6UUrwuO8EdyGNPaNHSGn_w" contract="_6UUuOeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUr4eO8EdyGNPaNHSGn_w" name="getConnection" visibility="public">
+                  <ownedParameter xmi:id="_6UUr4uO8EdyGNPaNHSGn_w" name="return" type="_6UUto-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUr4-O8EdyGNPaNHSGn_w" name="getFields" visibility="public">
+                  <ownedParameter xmi:id="_6UUr5OO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUr5eO8EdyGNPaNHSGn_w" name="getTotalFields" visibility="public">
+                  <ownedParameter xmi:id="_6UUr5uO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUr5-O8EdyGNPaNHSGn_w" name="getWhereClause" visibility="public">
+                  <ownedParameter xmi:id="_6UUr6OO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUr6eO8EdyGNPaNHSGn_w" name="getTableName" visibility="public">
+                  <ownedParameter xmi:id="_6UUr6uO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUr6-O8EdyGNPaNHSGn_w" name="getShapeCount" visibility="public">
+                  <ownedParameter xmi:id="_6UUr7OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUr7eO8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6UUr7uO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUr7-O8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UUr8OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUr8eO8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                  <ownedParameter xmi:id="_6UUr8uO8EdyGNPaNHSGn_w" name="idField" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUr8-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUr9OO8EdyGNPaNHSGn_w" name="getFieldValue" visibility="public">
+                  <ownedParameter xmi:id="_6UUr9eO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUr9uO8EdyGNPaNHSGn_w" name="idField" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUr9-O8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUr-OO8EdyGNPaNHSGn_w" name="getFieldCount" visibility="public">
+                  <ownedParameter xmi:id="_6UUr-eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUr-uO8EdyGNPaNHSGn_w" name="getFieldName" visibility="public">
+                  <ownedParameter xmi:id="_6UUr--O8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUr_OO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUr_eO8EdyGNPaNHSGn_w" name="getRowCount" visibility="public">
+                  <ownedParameter xmi:id="_6UUr_uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUr_-O8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                <ownedOperation xmi:id="_6UUsAOO8EdyGNPaNHSGn_w" name="doRelateID_FID" visibility="protected"/>
+                <ownedOperation xmi:id="_6UUsAeO8EdyGNPaNHSGn_w" name="getRowIndexByFID" visibility="public">
+                  <ownedParameter xmi:id="_6UUsAuO8EdyGNPaNHSGn_w" name="FID" type="_6UUetuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsA-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsBOO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6UUsBeO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsBuO8EdyGNPaNHSGn_w" name="extractParamsFromDbUrl" visibility="private">
+                  <ownedParameter xmi:id="_6UUsB-O8EdyGNPaNHSGn_w" name="dbUrl2" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsCOO8EdyGNPaNHSGn_w" name="load" visibility="public"/>
+                <ownedOperation xmi:id="_6UUsCeO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6UUsCuO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsC-O8EdyGNPaNHSGn_w" name="setWorkingArea" visibility="public">
+                  <ownedParameter xmi:id="_6UUsDOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsDeO8EdyGNPaNHSGn_w" name="getWorkingArea" visibility="public">
+                  <ownedParameter xmi:id="_6UUsDuO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsD-O8EdyGNPaNHSGn_w" name="setDataSourceFactory" visibility="public">
+                  <ownedParameter xmi:id="_6UUsEOO8EdyGNPaNHSGn_w" name="arg0" type="_6UdsM-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsEeO8EdyGNPaNHSGn_w" name="getLyrDef" visibility="public">
+                  <ownedParameter xmi:id="_6UUsEuO8EdyGNPaNHSGn_w" name="return" type="_6UUsSeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsE-O8EdyGNPaNHSGn_w" name="setLyrDef" visibility="public">
+                  <ownedParameter xmi:id="_6UUsFOO8EdyGNPaNHSGn_w" name="lyrDef" type="_6UUsSeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsFeO8EdyGNPaNHSGn_w" name="getSqlTotal" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UUsFuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsF-O8EdyGNPaNHSGn_w" name="getCompleteWhere" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UUsGOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsGeO8EdyGNPaNHSGn_w" name="reload" visibility="public"/>
+                <ownedOperation xmi:id="_6UUsGuO8EdyGNPaNHSGn_w" name="getFieldWidth" visibility="public">
+                  <ownedParameter xmi:id="_6UUsG-O8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsHOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsHeO8EdyGNPaNHSGn_w" name="getConnectionString" visibility="public">
+                  <ownedParameter xmi:id="_6UUsHuO8EdyGNPaNHSGn_w" name="host" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsH-O8EdyGNPaNHSGn_w" name="port" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsIOO8EdyGNPaNHSGn_w" name="dbname" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsIeO8EdyGNPaNHSGn_w" name="user" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsIuO8EdyGNPaNHSGn_w" name="pw" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsI-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsJOO8EdyGNPaNHSGn_w" name="getTableNames" visibility="public">
+                  <ownedParameter xmi:id="_6UUsJeO8EdyGNPaNHSGn_w" name="conn" type="_6UUto-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsJuO8EdyGNPaNHSGn_w" name="catalog" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsJ-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsKOO8EdyGNPaNHSGn_w" name="getAllFields" visibility="public">
+                  <ownedParameter xmi:id="_6UUsKeO8EdyGNPaNHSGn_w" name="conn" type="_6UUto-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsKuO8EdyGNPaNHSGn_w" name="table_name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsK-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsLOO8EdyGNPaNHSGn_w" name="getAllFieldTypeNames" visibility="public">
+                  <ownedParameter xmi:id="_6UUsLeO8EdyGNPaNHSGn_w" name="conn" type="_6UUto-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsLuO8EdyGNPaNHSGn_w" name="table_name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsL-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsMOO8EdyGNPaNHSGn_w" name="getIdFieldsCandidates" visibility="public">
+                  <ownedParameter xmi:id="_6UUsMeO8EdyGNPaNHSGn_w" name="conn" type="_6UUto-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsMuO8EdyGNPaNHSGn_w" name="table_name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsM-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsNOO8EdyGNPaNHSGn_w" name="getGeometryFieldsCandidates" visibility="public">
+                  <ownedParameter xmi:id="_6UUsNeO8EdyGNPaNHSGn_w" name="conn" type="_6UUto-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsNuO8EdyGNPaNHSGn_w" name="table_name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsN-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsOOO8EdyGNPaNHSGn_w" name="isEmptyTable" visibility="public">
+                  <ownedParameter xmi:id="_6UUsOeO8EdyGNPaNHSGn_w" name="conn" type="_6UUto-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsOuO8EdyGNPaNHSGn_w" name="tableName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsO-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsPOO8EdyGNPaNHSGn_w" name="manageGeometryField" visibility="public">
+                  <ownedParameter xmi:id="_6UUsPeO8EdyGNPaNHSGn_w" name="flds" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsPuO8EdyGNPaNHSGn_w" name="geomField" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsP-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsQOO8EdyGNPaNHSGn_w" name="remove" visibility="public"/>
+                <ownedOperation xmi:id="_6UUsQeO8EdyGNPaNHSGn_w" name="addDriverEventListener" visibility="public">
+                  <ownedParameter xmi:id="_6UUsQuO8EdyGNPaNHSGn_w" name="listener" type="_6UdsNOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsQ-O8EdyGNPaNHSGn_w" name="removeDriverEventListener" visibility="public">
+                  <ownedParameter xmi:id="_6UUsROO8EdyGNPaNHSGn_w" name="listener" type="_6UdsNOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsReO8EdyGNPaNHSGn_w" name="notifyDriverEndLoaded" visibility="public"/>
+                <ownedOperation xmi:id="_6UUsRuO8EdyGNPaNHSGn_w" name="removePrefix" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUsR-O8EdyGNPaNHSGn_w" name="str" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsSOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUsSeO8EdyGNPaNHSGn_w" name="DBLayerDefinition">
+                <generalization xmi:id="_6UUsSuO8EdyGNPaNHSGn_w" general="_6UUuP-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsS-O8EdyGNPaNHSGn_w" name="conn" visibility="private" type="_6UUto-O8EdyGNPaNHSGn_w" association="_6UdsQ-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsTOO8EdyGNPaNHSGn_w" name="catalogName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsTeO8EdyGNPaNHSGn_w" name="schema" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsTuO8EdyGNPaNHSGn_w" name="tableName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsT-O8EdyGNPaNHSGn_w" name="fieldID" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsUOO8EdyGNPaNHSGn_w" name="fieldGeometry" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsUeO8EdyGNPaNHSGn_w" name="whereClause" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsUuO8EdyGNPaNHSGn_w" name="workingArea" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsU-O8EdyGNPaNHSGn_w" name="SRID_EPSG" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsVOO8EdyGNPaNHSGn_w" name="classToInstantiate" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsVeO8EdyGNPaNHSGn_w" name="idFieldID" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsVuO8EdyGNPaNHSGn_w" name="dimension" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsV-O8EdyGNPaNHSGn_w" name="host" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsWOO8EdyGNPaNHSGn_w" name="port" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsWeO8EdyGNPaNHSGn_w" name="database" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsWuO8EdyGNPaNHSGn_w" name="user" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsW-O8EdyGNPaNHSGn_w" name="password" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUsXOO8EdyGNPaNHSGn_w" name="connectionname" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUsXeO8EdyGNPaNHSGn_w" name="getCatalogName" visibility="public">
+                  <ownedParameter xmi:id="_6UUsXuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsX-O8EdyGNPaNHSGn_w" name="setCatalogName" visibility="public">
+                  <ownedParameter xmi:id="_6UUsYOO8EdyGNPaNHSGn_w" name="catalogName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsYeO8EdyGNPaNHSGn_w" name="getFieldGeometry" visibility="public">
+                  <ownedParameter xmi:id="_6UUsYuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsY-O8EdyGNPaNHSGn_w" name="setFieldGeometry" visibility="public">
+                  <ownedParameter xmi:id="_6UUsZOO8EdyGNPaNHSGn_w" name="fieldGeometry" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsZeO8EdyGNPaNHSGn_w" name="getFieldID" visibility="public">
+                  <ownedParameter xmi:id="_6UUsZuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsZ-O8EdyGNPaNHSGn_w" name="setFieldID" visibility="public">
+                  <ownedParameter xmi:id="_6UUsaOO8EdyGNPaNHSGn_w" name="fieldID" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsaeO8EdyGNPaNHSGn_w" name="getFieldNames" visibility="public">
+                  <ownedParameter xmi:id="_6UUsauO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsa-O8EdyGNPaNHSGn_w" name="setFieldNames" visibility="public">
+                  <ownedParameter xmi:id="_6UUsbOO8EdyGNPaNHSGn_w" name="fieldNames" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsbeO8EdyGNPaNHSGn_w" name="getTableName" visibility="public">
+                  <ownedParameter xmi:id="_6UUsbuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsb-O8EdyGNPaNHSGn_w" name="setTableName" visibility="public">
+                  <ownedParameter xmi:id="_6UUscOO8EdyGNPaNHSGn_w" name="tableName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsceO8EdyGNPaNHSGn_w" name="getWhereClause" visibility="public">
+                  <ownedParameter xmi:id="_6UUscuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsc-O8EdyGNPaNHSGn_w" name="setWhereClause" visibility="public">
+                  <ownedParameter xmi:id="_6UUsdOO8EdyGNPaNHSGn_w" name="whereClause" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsdeO8EdyGNPaNHSGn_w" name="getWorkingArea" visibility="public">
+                  <ownedParameter xmi:id="_6UUsduO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsd-O8EdyGNPaNHSGn_w" name="setWorkingArea" visibility="public">
+                  <ownedParameter xmi:id="_6UUseOO8EdyGNPaNHSGn_w" name="workingArea" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUseeO8EdyGNPaNHSGn_w" name="getIdField" visibility="public">
+                  <ownedParameter xmi:id="_6UUseuO8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUse-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsfOO8EdyGNPaNHSGn_w" name="getIdFieldID" visibility="public">
+                  <ownedParameter xmi:id="_6UUsfeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsfuO8EdyGNPaNHSGn_w" name="getSRID_EPSG" visibility="public">
+                  <ownedParameter xmi:id="_6UUsf-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsgOO8EdyGNPaNHSGn_w" name="setSRID_EPSG" visibility="public">
+                  <ownedParameter xmi:id="_6UUsgeO8EdyGNPaNHSGn_w" name="srid_epsg" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsguO8EdyGNPaNHSGn_w" name="getClassToInstantiate" visibility="public">
+                  <ownedParameter xmi:id="_6UUsg-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUshOO8EdyGNPaNHSGn_w" name="setClassToInstantiate" visibility="public">
+                  <ownedParameter xmi:id="_6UUsheO8EdyGNPaNHSGn_w" name="classToInstantiate" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUshuO8EdyGNPaNHSGn_w" name="getFieldIdByName" visibility="public">
+                  <ownedParameter xmi:id="_6UUsh-O8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsiOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsieO8EdyGNPaNHSGn_w" name="getConnection" visibility="public">
+                  <ownedParameter xmi:id="_6UUsiuO8EdyGNPaNHSGn_w" name="return" type="_6UUto-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsi-O8EdyGNPaNHSGn_w" name="setConnection" visibility="public">
+                  <ownedParameter xmi:id="_6UUsjOO8EdyGNPaNHSGn_w" name="connection" type="_6UUto-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsjeO8EdyGNPaNHSGn_w" name="getDimension" visibility="public">
+                  <ownedParameter xmi:id="_6UUsjuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsj-O8EdyGNPaNHSGn_w" name="setDimension" visibility="public">
+                  <ownedParameter xmi:id="_6UUskOO8EdyGNPaNHSGn_w" name="dim" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUskeO8EdyGNPaNHSGn_w" name="getHost" visibility="public">
+                  <ownedParameter xmi:id="_6UUskuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsk-O8EdyGNPaNHSGn_w" name="setHost" visibility="public">
+                  <ownedParameter xmi:id="_6UUslOO8EdyGNPaNHSGn_w" name="host" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsleO8EdyGNPaNHSGn_w" name="getPort" visibility="public">
+                  <ownedParameter xmi:id="_6UUsluO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsl-O8EdyGNPaNHSGn_w" name="setPort" visibility="public">
+                  <ownedParameter xmi:id="_6UUsmOO8EdyGNPaNHSGn_w" name="port" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsmeO8EdyGNPaNHSGn_w" name="getDataBase" visibility="public">
+                  <ownedParameter xmi:id="_6UUsmuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsm-O8EdyGNPaNHSGn_w" name="setDataBase" visibility="public">
+                  <ownedParameter xmi:id="_6UUsnOO8EdyGNPaNHSGn_w" name="database" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsneO8EdyGNPaNHSGn_w" name="getUser" visibility="public">
+                  <ownedParameter xmi:id="_6UUsnuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsn-O8EdyGNPaNHSGn_w" name="setUser" visibility="public">
+                  <ownedParameter xmi:id="_6UUsoOO8EdyGNPaNHSGn_w" name="user" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsoeO8EdyGNPaNHSGn_w" name="getPassword" visibility="public">
+                  <ownedParameter xmi:id="_6UUsouO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUso-O8EdyGNPaNHSGn_w" name="setPassword" visibility="public">
+                  <ownedParameter xmi:id="_6UUspOO8EdyGNPaNHSGn_w" name="password" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUspeO8EdyGNPaNHSGn_w" name="setConnectionName" visibility="public">
+                  <ownedParameter xmi:id="_6UUspuO8EdyGNPaNHSGn_w" name="stringProperty" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsp-O8EdyGNPaNHSGn_w" name="getConnectionName" visibility="public">
+                  <ownedParameter xmi:id="_6UUsqOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsqeO8EdyGNPaNHSGn_w" name="setSchema" visibility="public">
+                  <ownedParameter xmi:id="_6UUsquO8EdyGNPaNHSGn_w" name="schema" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsq-O8EdyGNPaNHSGn_w" name="getSchema" visibility="public">
+                  <ownedParameter xmi:id="_6UUsrOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsreO8EdyGNPaNHSGn_w" name="getComposedTableName" visibility="public">
+                  <ownedParameter xmi:id="_6UUsruO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsr-O8EdyGNPaNHSGn_w" name="setIdFieldID" visibility="public">
+                  <ownedParameter xmi:id="_6UUssOO8EdyGNPaNHSGn_w" name="idFieldID" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUsseO8EdyGNPaNHSGn_w" name="DBException">
+                <generalization xmi:id="_6UUssuO8EdyGNPaNHSGn_w" general="_6UnhhOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUss-O8EdyGNPaNHSGn_w" name="e" visibility="private" type="_6UnhhOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUstOO8EdyGNPaNHSGn_w" name="getCause" visibility="public">
+                  <ownedParameter xmi:id="_6UUsteO8EdyGNPaNHSGn_w" name="return" type="_6UnhnOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUstuO8EdyGNPaNHSGn_w" name="getMessage" visibility="public">
+                  <ownedParameter xmi:id="_6UUst-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsuOO8EdyGNPaNHSGn_w" name="printStackTrace" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUsueO8EdyGNPaNHSGn_w" name="ConnectionFactory">
+                <ownedAttribute xmi:id="_6UUsuuO8EdyGNPaNHSGn_w" name="connections" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUsu-O8EdyGNPaNHSGn_w" name="createConnection" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUsvOO8EdyGNPaNHSGn_w" name="connectionStr" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsveO8EdyGNPaNHSGn_w" name="user" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsvuO8EdyGNPaNHSGn_w" name="_pw" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUsv-O8EdyGNPaNHSGn_w" name="return" type="_6UUto-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUswOO8EdyGNPaNHSGn_w" name="refreshExtensionPointsConnections" visibility="private" isStatic="true"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUsweO8EdyGNPaNHSGn_w" name="ConnectionJDBC" clientDependency="_6UUsw-O8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UUswuO8EdyGNPaNHSGn_w" name="connection" visibility="private" type="_6UdsNeO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UUsw-O8EdyGNPaNHSGn_w" name="IConnection" supplier="_6UUto-O8EdyGNPaNHSGn_w" client="_6UUsweO8EdyGNPaNHSGn_w" contract="_6UUto-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUsxOO8EdyGNPaNHSGn_w" name="getConnection" visibility="public">
+                  <ownedParameter xmi:id="_6UUsxeO8EdyGNPaNHSGn_w" name="return" type="_6UdsNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsxuO8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                <ownedOperation xmi:id="_6UUsx-O8EdyGNPaNHSGn_w" name="isClosed" visibility="public">
+                  <ownedParameter xmi:id="_6UUsyOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsyeO8EdyGNPaNHSGn_w" name="getCatalogName" visibility="public">
+                  <ownedParameter xmi:id="_6UUsyuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsy-O8EdyGNPaNHSGn_w" name="getNameServer" visibility="public">
+                  <ownedParameter xmi:id="_6UUszOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUszeO8EdyGNPaNHSGn_w" name="getURL" visibility="public">
+                  <ownedParameter xmi:id="_6UUszuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUsz-O8EdyGNPaNHSGn_w" name="setDataConnection" visibility="public">
+                  <ownedParameter xmi:id="_6UUs0OO8EdyGNPaNHSGn_w" name="connectionStr" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUs0eO8EdyGNPaNHSGn_w" name="user" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUs0uO8EdyGNPaNHSGn_w" name="_pw" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUs0-O8EdyGNPaNHSGn_w" name="getTypeConnection" visibility="public">
+                  <ownedParameter xmi:id="_6UUs1OO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUs1eO8EdyGNPaNHSGn_w" name="DXFLayerDefinition">
+                <generalization xmi:id="_6UUs1uO8EdyGNPaNHSGn_w" general="_6UUuP-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUs1-O8EdyGNPaNHSGn_w" name="dxfFile" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUs2OO8EdyGNPaNHSGn_w" name="getFieldsDesc" visibility="public">
+                  <ownedParameter xmi:id="_6UUs2eO8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUs2uO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UUs2-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUs3OO8EdyGNPaNHSGn_w" name="setFile" visibility="public">
+                  <ownedParameter xmi:id="_6UUs3eO8EdyGNPaNHSGn_w" name="newFile" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUs3uO8EdyGNPaNHSGn_w" name="MemoryDriver" clientDependency="_6UUs5eO8EdyGNPaNHSGn_w _6UUs5uO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UUs3-O8EdyGNPaNHSGn_w" name="memShapeInfo" visibility="private" type="_6Ud8m-O8EdyGNPaNHSGn_w" association="_6UdsReO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUs4OO8EdyGNPaNHSGn_w" name="arrayGeometries" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUs4eO8EdyGNPaNHSGn_w" name="fullExtent" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUs4uO8EdyGNPaNHSGn_w" name="m_Position" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUs4-O8EdyGNPaNHSGn_w" name="m_TableModel" visibility="private" type="_6UdsNuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUs5OO8EdyGNPaNHSGn_w" name="fieldWidth" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UUs5eO8EdyGNPaNHSGn_w" name="VectorialDriver" supplier="_6UUuxeO8EdyGNPaNHSGn_w" client="_6UUs3uO8EdyGNPaNHSGn_w" contract="_6UUuxeO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UUs5uO8EdyGNPaNHSGn_w" name="BoundedShapes" supplier="_6UUrZeO8EdyGNPaNHSGn_w" client="_6UUs3uO8EdyGNPaNHSGn_w" contract="_6UUrZeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUs5-O8EdyGNPaNHSGn_w" name="getTableModel" visibility="public">
+                  <ownedParameter xmi:id="_6UUs6OO8EdyGNPaNHSGn_w" name="return" type="_6UdsNuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUs6eO8EdyGNPaNHSGn_w" name="addGeometry" visibility="public">
+                  <ownedParameter xmi:id="_6UUs6uO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUs6-O8EdyGNPaNHSGn_w" name="row" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUs7OO8EdyGNPaNHSGn_w" name="addShape" visibility="public">
+                  <ownedParameter xmi:id="_6UUs7eO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUs7uO8EdyGNPaNHSGn_w" name="row" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUs7-O8EdyGNPaNHSGn_w" name="getShapeBounds" visibility="public">
+                  <ownedParameter xmi:id="_6UUs8OO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUs8eO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUs8uO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UUs8-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUs9OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUs9eO8EdyGNPaNHSGn_w" name="getShape" visibility="public">
+                  <ownedParameter xmi:id="_6UUs9uO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUs9-O8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUs-OO8EdyGNPaNHSGn_w" name="getShapeCount" visibility="public">
+                  <ownedParameter xmi:id="_6UUs-eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUs-uO8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6UUs--O8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUs_OO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UUs_eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUs_uO8EdyGNPaNHSGn_w" name="getName" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UUs_-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtAOO8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                  <ownedParameter xmi:id="_6UUtAeO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtAuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtA-O8EdyGNPaNHSGn_w" name="getFieldValue" visibility="public">
+                  <ownedParameter xmi:id="_6UUtBOO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtBeO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtBuO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtB-O8EdyGNPaNHSGn_w" name="getFieldCount" visibility="public">
+                  <ownedParameter xmi:id="_6UUtCOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtCeO8EdyGNPaNHSGn_w" name="getFieldName" visibility="public">
+                  <ownedParameter xmi:id="_6UUtCuO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtC-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtDOO8EdyGNPaNHSGn_w" name="getRowCount" visibility="public">
+                  <ownedParameter xmi:id="_6UUtDeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtDuO8EdyGNPaNHSGn_w" name="setDataSourceFactory" visibility="public">
+                  <ownedParameter xmi:id="_6UUtD-O8EdyGNPaNHSGn_w" name="dsf" type="_6UdsM-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtEOO8EdyGNPaNHSGn_w" name="reload" visibility="public"/>
+                <ownedOperation xmi:id="_6UUtEeO8EdyGNPaNHSGn_w" name="initializeFieldWidth" visibility="private">
+                  <ownedParameter xmi:id="_6UUtEuO8EdyGNPaNHSGn_w" name="row" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtE-O8EdyGNPaNHSGn_w" name="actualizeFieldWidth" visibility="private">
+                  <ownedParameter xmi:id="_6UUtFOO8EdyGNPaNHSGn_w" name="row" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtFeO8EdyGNPaNHSGn_w" name="getFieldWidth" visibility="public">
+                  <ownedParameter xmi:id="_6UUtFuO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtF-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUtGOO8EdyGNPaNHSGn_w" name="AbstractCadMemoryDriver">
+                <generalization xmi:id="_6UUtGeO8EdyGNPaNHSGn_w" general="_6UUs3uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtGuO8EdyGNPaNHSGn_w" name="ID_FIELD_ID" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtG-O8EdyGNPaNHSGn_w" name="ID_FIELD_FSHAPE" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtHOO8EdyGNPaNHSGn_w" name="ID_FIELD_ENTITY" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtHeO8EdyGNPaNHSGn_w" name="ID_FIELD_LAYER" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtHuO8EdyGNPaNHSGn_w" name="ID_FIELD_COLOR" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtH-O8EdyGNPaNHSGn_w" name="ID_FIELD_ELEVATION" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtIOO8EdyGNPaNHSGn_w" name="ID_FIELD_THICKNESS" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtIeO8EdyGNPaNHSGn_w" name="ID_FIELD_TEXT" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtIuO8EdyGNPaNHSGn_w" name="ID_FIELD_HEIGHTTEXT" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtI-O8EdyGNPaNHSGn_w" name="ID_FIELD_ROTATIONTEXT" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtJOO8EdyGNPaNHSGn_w" name="fields" visibility="protected" type="_6UUuEOO8EdyGNPaNHSGn_w" association="_6UdsR-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtJeO8EdyGNPaNHSGn_w" name="rois" visibility="protected" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUtJuO8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                  <ownedParameter xmi:id="_6UUtJ-O8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtKOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtKeO8EdyGNPaNHSGn_w" name="getCadSource" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UUtKuO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtK-O8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtLOO8EdyGNPaNHSGn_w" name="addRegionOfInterest" visibility="public">
+                  <ownedParameter xmi:id="_6UUtLeO8EdyGNPaNHSGn_w" name="roi" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtLuO8EdyGNPaNHSGn_w" name="getRegionOfInterest" visibility="public">
+                  <ownedParameter xmi:id="_6UUtL-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtMOO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtMeO8EdyGNPaNHSGn_w" name="getRois" visibility="public">
+                  <ownedParameter xmi:id="_6UUtMuO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtM-O8EdyGNPaNHSGn_w" name="setRois" visibility="public">
+                  <ownedParameter xmi:id="_6UUtNOO8EdyGNPaNHSGn_w" name="rois" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtNeO8EdyGNPaNHSGn_w" name="getNumOfRois" visibility="public">
+                  <ownedParameter xmi:id="_6UUtNuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUtN-O8EdyGNPaNHSGn_w" name="FeatureCollectionMemoryDriver" clientDependency="_6UUtPuO8EdyGNPaNHSGn_w _6UUtP-O8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UUtOOO8EdyGNPaNHSGn_w" name="EMPTY_FULL_EXTENT" visibility="public" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtOeO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtOuO8EdyGNPaNHSGn_w" name="features" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtO-O8EdyGNPaNHSGn_w" name="layerDefinition" type="_6UUuP-O8EdyGNPaNHSGn_w" association="_6UdsSeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtPOO8EdyGNPaNHSGn_w" name="fullExtent" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtPeO8EdyGNPaNHSGn_w" name="attributes" type="_6UUtbuO8EdyGNPaNHSGn_w" association="_6UdsS-O8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UUtPuO8EdyGNPaNHSGn_w" name="VectorialDriver" supplier="_6UUuxeO8EdyGNPaNHSGn_w" client="_6UUtN-O8EdyGNPaNHSGn_w" contract="_6UUuxeO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UUtP-O8EdyGNPaNHSGn_w" name="BoundedShapes" supplier="_6UUrZeO8EdyGNPaNHSGn_w" client="_6UUtN-O8EdyGNPaNHSGn_w" contract="_6UUrZeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUtQOO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UUtQeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtQuO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                  <ownedParameter xmi:id="_6UUtQ-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtROO8EdyGNPaNHSGn_w" name="getShapeCount" visibility="public">
+                  <ownedParameter xmi:id="_6UUtReO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtRuO8EdyGNPaNHSGn_w" name="getDriverAttributes" visibility="public">
+                  <ownedParameter xmi:id="_6UUtR-O8EdyGNPaNHSGn_w" name="return" type="_6UUtbuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtSOO8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6UUtSeO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtSuO8EdyGNPaNHSGn_w" name="getShape" visibility="public">
+                  <ownedParameter xmi:id="_6UUtS-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtTOO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtTeO8EdyGNPaNHSGn_w" name="reload" visibility="public"/>
+                <ownedOperation xmi:id="_6UUtTuO8EdyGNPaNHSGn_w" name="isWritable" visibility="public">
+                  <ownedParameter xmi:id="_6UUtT-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtUOO8EdyGNPaNHSGn_w" name="getPrimaryKeys" visibility="public">
+                  <ownedParameter xmi:id="_6UUtUeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtUuO8EdyGNPaNHSGn_w" name="write" visibility="public">
+                  <ownedParameter xmi:id="_6UUtU-O8EdyGNPaNHSGn_w" name="dataWare" type="_6UdsN-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtVOO8EdyGNPaNHSGn_w" name="setDataSourceFactory" visibility="public">
+                  <ownedParameter xmi:id="_6UUtVeO8EdyGNPaNHSGn_w" name="dsf" type="_6UdsM-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtVuO8EdyGNPaNHSGn_w" name="getFieldValue" visibility="public">
+                  <ownedParameter xmi:id="_6UUtV-O8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtWOO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtWeO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtWuO8EdyGNPaNHSGn_w" name="getFieldCount" visibility="public">
+                  <ownedParameter xmi:id="_6UUtW-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtXOO8EdyGNPaNHSGn_w" name="getFieldName" visibility="public">
+                  <ownedParameter xmi:id="_6UUtXeO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtXuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtX-O8EdyGNPaNHSGn_w" name="getRowCount" visibility="public">
+                  <ownedParameter xmi:id="_6UUtYOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtYeO8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                  <ownedParameter xmi:id="_6UUtYuO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtY-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtZOO8EdyGNPaNHSGn_w" name="getFieldWidth" visibility="public">
+                  <ownedParameter xmi:id="_6UUtZeO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtZuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtZ-O8EdyGNPaNHSGn_w" name="getShapeBounds" visibility="public">
+                  <ownedParameter xmi:id="_6UUtaOO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtaeO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtauO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UUta-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtbOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtbeO8EdyGNPaNHSGn_w" name="computeFullExtent" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUtbuO8EdyGNPaNHSGn_w" name="DriverAttributes">
+                <ownedAttribute xmi:id="_6UUtb-O8EdyGNPaNHSGn_w" name="isLoadedInMemory" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUtcOO8EdyGNPaNHSGn_w" name="isLoadedInMemory" visibility="public">
+                  <ownedParameter xmi:id="_6UUtceO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtcuO8EdyGNPaNHSGn_w" name="setLoadedInMemory" visibility="public">
+                  <ownedParameter xmi:id="_6UUtc-O8EdyGNPaNHSGn_w" name="isLoadedInMemory" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUtdOO8EdyGNPaNHSGn_w" name="ExternalData">
+                <ownedOperation xmi:id="_6UUtdeO8EdyGNPaNHSGn_w" name="getDataFile">
+                  <ownedParameter xmi:id="_6UUtduO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtd-O8EdyGNPaNHSGn_w" name="return" type="_6UnhgeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUteOO8EdyGNPaNHSGn_w" name="getDataDriverName">
+                  <ownedParameter xmi:id="_6UUteeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUteuO8EdyGNPaNHSGn_w" name="SHPLayerDefinition">
+                <generalization xmi:id="_6UUte-O8EdyGNPaNHSGn_w" general="_6UUuP-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtfOO8EdyGNPaNHSGn_w" name="shpPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtfeO8EdyGNPaNHSGn_w" name="shxPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtfuO8EdyGNPaNHSGn_w" name="dbfPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtf-O8EdyGNPaNHSGn_w" name="shapeType" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtgOO8EdyGNPaNHSGn_w" name="fieldTypes" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtgeO8EdyGNPaNHSGn_w" name="fieldNames" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtguO8EdyGNPaNHSGn_w" name="fieldLenght" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtg-O8EdyGNPaNHSGn_w" name="decimalCount" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUthOO8EdyGNPaNHSGn_w" name="shpFile" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUtheO8EdyGNPaNHSGn_w" name="setFile" visibility="public">
+                  <ownedParameter xmi:id="_6UUthuO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUth-O8EdyGNPaNHSGn_w" name="getFile" visibility="public">
+                  <ownedParameter xmi:id="_6UUtiOO8EdyGNPaNHSGn_w" name="return" type="_6UnhgeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtieO8EdyGNPaNHSGn_w" name="getDbfPath" visibility="public">
+                  <ownedParameter xmi:id="_6UUtiuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUti-O8EdyGNPaNHSGn_w" name="getDecimalCount" visibility="public">
+                  <ownedParameter xmi:id="_6UUtjOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtjeO8EdyGNPaNHSGn_w" name="setDecimalCount" visibility="public">
+                  <ownedParameter xmi:id="_6UUtjuO8EdyGNPaNHSGn_w" name="decimalCount" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtj-O8EdyGNPaNHSGn_w" name="getFieldLenght" visibility="public">
+                  <ownedParameter xmi:id="_6UUtkOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtkeO8EdyGNPaNHSGn_w" name="setFieldLenght" visibility="public">
+                  <ownedParameter xmi:id="_6UUtkuO8EdyGNPaNHSGn_w" name="fieldLenght" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtk-O8EdyGNPaNHSGn_w" name="getFieldNames" visibility="public">
+                  <ownedParameter xmi:id="_6UUtlOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtleO8EdyGNPaNHSGn_w" name="setFieldNames" visibility="public">
+                  <ownedParameter xmi:id="_6UUtluO8EdyGNPaNHSGn_w" name="fieldNames" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtl-O8EdyGNPaNHSGn_w" name="getFieldTypes" visibility="public">
+                  <ownedParameter xmi:id="_6UUtmOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtmeO8EdyGNPaNHSGn_w" name="setFieldTypes" visibility="public">
+                  <ownedParameter xmi:id="_6UUtmuO8EdyGNPaNHSGn_w" name="fieldTypes" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtm-O8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UUtnOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtneO8EdyGNPaNHSGn_w" name="setShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UUtnuO8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtn-O8EdyGNPaNHSGn_w" name="getShpPath" visibility="public">
+                  <ownedParameter xmi:id="_6UUtoOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtoeO8EdyGNPaNHSGn_w" name="getShxPath" visibility="public">
+                  <ownedParameter xmi:id="_6UUtouO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUto-O8EdyGNPaNHSGn_w" name="IConnection">
+                <ownedOperation xmi:id="_6UUtpOO8EdyGNPaNHSGn_w" name="close"/>
+                <ownedOperation xmi:id="_6UUtpeO8EdyGNPaNHSGn_w" name="isClosed">
+                  <ownedParameter xmi:id="_6UUtpuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtp-O8EdyGNPaNHSGn_w" name="getCatalogName">
+                  <ownedParameter xmi:id="_6UUtqOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtqeO8EdyGNPaNHSGn_w" name="getNameServer">
+                  <ownedParameter xmi:id="_6UUtquO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtq-O8EdyGNPaNHSGn_w" name="getURL">
+                  <ownedParameter xmi:id="_6UUtrOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtreO8EdyGNPaNHSGn_w" name="setDataConnection">
+                  <ownedParameter xmi:id="_6UUtruO8EdyGNPaNHSGn_w" name="connectionStr" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtr-O8EdyGNPaNHSGn_w" name="user" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtsOO8EdyGNPaNHSGn_w" name="_pw" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtseO8EdyGNPaNHSGn_w" name="getTypeConnection">
+                  <ownedParameter xmi:id="_6UUtsuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUts-O8EdyGNPaNHSGn_w" name="WithDefaultLegend">
+                <ownedOperation xmi:id="_6UUttOO8EdyGNPaNHSGn_w" name="getDefaultLegend" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UUtteO8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUttuO8EdyGNPaNHSGn_w" name="getDefaultLabelingStrategy" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UUtt-O8EdyGNPaNHSGn_w" name="return" type="_6UncoOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUtuOO8EdyGNPaNHSGn_w" name="WKBParser2">
+                <ownedAttribute xmi:id="_6UUtueO8EdyGNPaNHSGn_w" name="gHaveM" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtuuO8EdyGNPaNHSGn_w" name="gHaveZ" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUtu-O8EdyGNPaNHSGn_w" name="gHaveS" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUtvOO8EdyGNPaNHSGn_w" name="parse" visibility="public">
+                  <ownedParameter xmi:id="_6UUtveO8EdyGNPaNHSGn_w" name="value" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtvuO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtv-O8EdyGNPaNHSGn_w" name="parseTypeAndSRID" visibility="protected">
+                  <ownedParameter xmi:id="_6UUtwOO8EdyGNPaNHSGn_w" name="data" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtweO8EdyGNPaNHSGn_w" name="parseGeometry" visibility="protected">
+                  <ownedParameter xmi:id="_6UUtwuO8EdyGNPaNHSGn_w" name="data" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtw-O8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtxOO8EdyGNPaNHSGn_w" name="parsePoint" visibility="private">
+                  <ownedParameter xmi:id="_6UUtxeO8EdyGNPaNHSGn_w" name="data" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtxuO8EdyGNPaNHSGn_w" name="haveZ" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtx-O8EdyGNPaNHSGn_w" name="haveM" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtyOO8EdyGNPaNHSGn_w" name="return" type="_6UUn_eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtyeO8EdyGNPaNHSGn_w" name="parseGeometryArray" visibility="private">
+                  <ownedParameter xmi:id="_6UUtyuO8EdyGNPaNHSGn_w" name="data" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUty-O8EdyGNPaNHSGn_w" name="container" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUtzOO8EdyGNPaNHSGn_w" name="parsePointArray" visibility="private">
+                  <ownedParameter xmi:id="_6UUtzeO8EdyGNPaNHSGn_w" name="data" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtzuO8EdyGNPaNHSGn_w" name="haveZ" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUtz-O8EdyGNPaNHSGn_w" name="haveM" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt0OO8EdyGNPaNHSGn_w" name="return" type="_6UUn_eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUt0eO8EdyGNPaNHSGn_w" name="parseMultiPoint" visibility="private">
+                  <ownedParameter xmi:id="_6UUt0uO8EdyGNPaNHSGn_w" name="data" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt0-O8EdyGNPaNHSGn_w" name="return" type="_6UdsOeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUt1OO8EdyGNPaNHSGn_w" name="parseLineString" visibility="private">
+                  <ownedParameter xmi:id="_6UUt1eO8EdyGNPaNHSGn_w" name="data" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt1uO8EdyGNPaNHSGn_w" name="haveZ" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt1-O8EdyGNPaNHSGn_w" name="haveM" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt2OO8EdyGNPaNHSGn_w" name="return" type="_6UdsOuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUt2eO8EdyGNPaNHSGn_w" name="parseLinearRing" visibility="private">
+                  <ownedParameter xmi:id="_6UUt2uO8EdyGNPaNHSGn_w" name="data" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt2-O8EdyGNPaNHSGn_w" name="haveZ" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt3OO8EdyGNPaNHSGn_w" name="haveM" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt3eO8EdyGNPaNHSGn_w" name="return" type="_6UdsO-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUt3uO8EdyGNPaNHSGn_w" name="parsePolygon" visibility="private">
+                  <ownedParameter xmi:id="_6UUt3-O8EdyGNPaNHSGn_w" name="data" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt4OO8EdyGNPaNHSGn_w" name="haveZ" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt4eO8EdyGNPaNHSGn_w" name="haveM" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt4uO8EdyGNPaNHSGn_w" name="return" type="_6UdsO-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUt4-O8EdyGNPaNHSGn_w" name="parseMultiLineString" visibility="private">
+                  <ownedParameter xmi:id="_6UUt5OO8EdyGNPaNHSGn_w" name="data" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt5eO8EdyGNPaNHSGn_w" name="return" type="_6UdsOuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUt5uO8EdyGNPaNHSGn_w" name="parseGeneralPath" visibility="private">
+                  <ownedParameter xmi:id="_6UUt5-O8EdyGNPaNHSGn_w" name="data" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt6OO8EdyGNPaNHSGn_w" name="return" type="_6UUgc-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUt6eO8EdyGNPaNHSGn_w" name="parseMultiPolygon" visibility="private">
+                  <ownedParameter xmi:id="_6UUt6uO8EdyGNPaNHSGn_w" name="data" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt6-O8EdyGNPaNHSGn_w" name="return" type="_6UdsO-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUt7OO8EdyGNPaNHSGn_w" name="parseCollection" visibility="private">
+                  <ownedParameter xmi:id="_6UUt7eO8EdyGNPaNHSGn_w" name="data" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt7uO8EdyGNPaNHSGn_w" name="return" type="_6UdsPOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUt7-O8EdyGNPaNHSGn_w" name="getGeneralPathX" visibility="private">
+                  <ownedParameter xmi:id="_6UUt8OO8EdyGNPaNHSGn_w" name="geometries" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUt8eO8EdyGNPaNHSGn_w" name="return" type="_6UUgc-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUt8uO8EdyGNPaNHSGn_w" name="ILayerDefinition">
+                <generalization xmi:id="_6UUt8-O8EdyGNPaNHSGn_w" general="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUt9OO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UUt9eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUt9uO8EdyGNPaNHSGn_w" name="setShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UUt9-O8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUt-OO8EdyGNPaNHSGn_w" name="getProjection" visibility="public">
+                  <ownedParameter xmi:id="_6UUt-eO8EdyGNPaNHSGn_w" name="return" type="_6UnhiuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUt-uO8EdyGNPaNHSGn_w" name="setProjection" visibility="public">
+                  <ownedParameter xmi:id="_6UUt--O8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUt_OO8EdyGNPaNHSGn_w" name="VectorialFileDriver">
+                <generalization xmi:id="_6UUt_eO8EdyGNPaNHSGn_w" general="_6UUuxeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUt_uO8EdyGNPaNHSGn_w" name="open">
+                  <ownedParameter xmi:id="_6UUt_-O8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuAOO8EdyGNPaNHSGn_w" name="close"/>
+                <ownedOperation xmi:id="_6UUuAeO8EdyGNPaNHSGn_w" name="initialize"/>
+                <ownedOperation xmi:id="_6UUuAuO8EdyGNPaNHSGn_w" name="accept">
+                  <ownedParameter xmi:id="_6UUuA-O8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuBOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuBeO8EdyGNPaNHSGn_w" name="getFile">
+                  <ownedParameter xmi:id="_6UUuBuO8EdyGNPaNHSGn_w" name="return" type="_6UnhgeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUuB-O8EdyGNPaNHSGn_w" name="RasterDBDriver">
+                <ownedOperation xmi:id="_6UUuCOO8EdyGNPaNHSGn_w" name="renderTo" visibility="public">
+                  <ownedParameter xmi:id="_6UUuCeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuCuO8EdyGNPaNHSGn_w" name="rectVisible" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuC-O8EdyGNPaNHSGn_w" name="queryByPoint" visibility="public">
+                  <ownedParameter xmi:id="_6UUuDOO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuDeO8EdyGNPaNHSGn_w" name="tolerancia" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuDuO8EdyGNPaNHSGn_w" name="return" type="_6Ud8jeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuD-O8EdyGNPaNHSGn_w" name="selectByPoint" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUuEOO8EdyGNPaNHSGn_w" name="FieldDescription">
+                <ownedAttribute xmi:id="_6UUuEeO8EdyGNPaNHSGn_w" name="fieldName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUuEuO8EdyGNPaNHSGn_w" name="fieldAlias" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUuE-O8EdyGNPaNHSGn_w" name="fieldType" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUuFOO8EdyGNPaNHSGn_w" name="defaultValue" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUuFeO8EdyGNPaNHSGn_w" name="fieldLength" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUuFuO8EdyGNPaNHSGn_w" name="fieldDecimalCount" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUuF-O8EdyGNPaNHSGn_w" name="toString" visibility="public">
+                  <ownedParameter xmi:id="_6UUuGOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuGeO8EdyGNPaNHSGn_w" name="stringToType" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUuGuO8EdyGNPaNHSGn_w" name="strType" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuG-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuHOO8EdyGNPaNHSGn_w" name="typeToString" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUuHeO8EdyGNPaNHSGn_w" name="sqlType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuHuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuH-O8EdyGNPaNHSGn_w" name="getFieldDecimalCount" visibility="public">
+                  <ownedParameter xmi:id="_6UUuIOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuIeO8EdyGNPaNHSGn_w" name="setFieldDecimalCount" visibility="public">
+                  <ownedParameter xmi:id="_6UUuIuO8EdyGNPaNHSGn_w" name="fieldDecimalCount" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuI-O8EdyGNPaNHSGn_w" name="getFieldLength" visibility="public">
+                  <ownedParameter xmi:id="_6UUuJOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuJeO8EdyGNPaNHSGn_w" name="setFieldLength" visibility="public">
+                  <ownedParameter xmi:id="_6UUuJuO8EdyGNPaNHSGn_w" name="fieldLength" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuJ-O8EdyGNPaNHSGn_w" name="getFieldName" visibility="public">
+                  <ownedParameter xmi:id="_6UUuKOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuKeO8EdyGNPaNHSGn_w" name="setFieldName" visibility="public">
+                  <ownedParameter xmi:id="_6UUuKuO8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuK-O8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                  <ownedParameter xmi:id="_6UUuLOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuLeO8EdyGNPaNHSGn_w" name="setFieldType" visibility="public">
+                  <ownedParameter xmi:id="_6UUuLuO8EdyGNPaNHSGn_w" name="fieldType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuL-O8EdyGNPaNHSGn_w" name="getFieldAlias" visibility="public">
+                  <ownedParameter xmi:id="_6UUuMOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuMeO8EdyGNPaNHSGn_w" name="setFieldAlias" visibility="public">
+                  <ownedParameter xmi:id="_6UUuMuO8EdyGNPaNHSGn_w" name="fieldAlias" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuM-O8EdyGNPaNHSGn_w" name="cloneField" visibility="public">
+                  <ownedParameter xmi:id="_6UUuNOO8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuNeO8EdyGNPaNHSGn_w" name="getDefaultValue" visibility="public">
+                  <ownedParameter xmi:id="_6UUuNuO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuN-O8EdyGNPaNHSGn_w" name="setDefaultValue" visibility="public">
+                  <ownedParameter xmi:id="_6UUuOOO8EdyGNPaNHSGn_w" name="defaultValue" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUuOeO8EdyGNPaNHSGn_w" name="IVectorialJDBCDriver">
+                <generalization xmi:id="_6UUuOuO8EdyGNPaNHSGn_w" general="_6UUrdeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUuO-O8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6UUuPOO8EdyGNPaNHSGn_w" name="sql" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuPeO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuPuO8EdyGNPaNHSGn_w" name="open" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUuP-O8EdyGNPaNHSGn_w" name="LayerDefinition" clientDependency="_6UUuQ-O8EdyGNPaNHSGn_w">
+                <generalization xmi:id="_6UUuQOO8EdyGNPaNHSGn_w" general="_6UUuTOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUuQeO8EdyGNPaNHSGn_w" name="shapeType" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUuQuO8EdyGNPaNHSGn_w" name="proj" visibility="protected" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UUuQ-O8EdyGNPaNHSGn_w" name="ILayerDefinition" supplier="_6UUt8uO8EdyGNPaNHSGn_w" client="_6UUuP-O8EdyGNPaNHSGn_w" contract="_6UUt8uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUuROO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UUuReO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuRuO8EdyGNPaNHSGn_w" name="setShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UUuR-O8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuSOO8EdyGNPaNHSGn_w" name="getProjection" visibility="public">
+                  <ownedParameter xmi:id="_6UUuSeO8EdyGNPaNHSGn_w" name="return" type="_6UnhiuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuSuO8EdyGNPaNHSGn_w" name="setProjection" visibility="public">
+                  <ownedParameter xmi:id="_6UUuS-O8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUuTOO8EdyGNPaNHSGn_w" name="TableDefinition" clientDependency="_6UUuT-O8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UUuTeO8EdyGNPaNHSGn_w" name="name" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUuTuO8EdyGNPaNHSGn_w" name="fieldsDesc" visibility="protected" type="_6UUuEOO8EdyGNPaNHSGn_w" association="_6UdsTeO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UUuT-O8EdyGNPaNHSGn_w" name="ITableDefinition" supplier="_6UUrbOO8EdyGNPaNHSGn_w" client="_6UUuTOO8EdyGNPaNHSGn_w" contract="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUuUOO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                  <ownedParameter xmi:id="_6UUuUeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuUuO8EdyGNPaNHSGn_w" name="setName" visibility="public">
+                  <ownedParameter xmi:id="_6UUuU-O8EdyGNPaNHSGn_w" name="Name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuVOO8EdyGNPaNHSGn_w" name="getFieldsDesc" visibility="public">
+                  <ownedParameter xmi:id="_6UUuVeO8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuVuO8EdyGNPaNHSGn_w" name="setFieldsDesc" visibility="public">
+                  <ownedParameter xmi:id="_6UUuV-O8EdyGNPaNHSGn_w" name="fieldsDesc" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUuWOO8EdyGNPaNHSGn_w" name="DriverIOException">
+                <generalization xmi:id="_6UUuWeO8EdyGNPaNHSGn_w" general="_6UnhhOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUuWuO8EdyGNPaNHSGn_w" name="BasicFileRasterDriver">
+                <ownedOperation xmi:id="_6UUuW-O8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6UUuXOO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuXeO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                  <ownedParameter xmi:id="_6UUuXuO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuX-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuYOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuYeO8EdyGNPaNHSGn_w" name="queryByPoint" visibility="public">
+                  <ownedParameter xmi:id="_6UUuYuO8EdyGNPaNHSGn_w" name="point" type="_6UUiRuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuY-O8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUuZOO8EdyGNPaNHSGn_w" name="ConcreteMemoryDriver">
+                <generalization xmi:id="_6UUuZeO8EdyGNPaNHSGn_w" general="_6UUs3uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUuZuO8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUuZ-O8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUuaOO8EdyGNPaNHSGn_w" name="setShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UUuaeO8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuauO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UUua-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUubOO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                  <ownedParameter xmi:id="_6UUubeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUubuO8EdyGNPaNHSGn_w" name="getDriverAttributes" visibility="public">
+                  <ownedParameter xmi:id="_6UUub-O8EdyGNPaNHSGn_w" name="return" type="_6UUtbuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUucOO8EdyGNPaNHSGn_w" name="getPrimaryKeys" visibility="public">
+                  <ownedParameter xmi:id="_6UUuceO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUucuO8EdyGNPaNHSGn_w" name="write" visibility="public">
+                  <ownedParameter xmi:id="_6UUuc-O8EdyGNPaNHSGn_w" name="dataWare" type="_6UdsN-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUudOO8EdyGNPaNHSGn_w" name="isWritable" visibility="public">
+                  <ownedParameter xmi:id="_6UUudeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUuduO8EdyGNPaNHSGn_w" name="WKTParser">
+                <ownedOperation xmi:id="_6UUud-O8EdyGNPaNHSGn_w" name="read" visibility="public">
+                  <ownedParameter xmi:id="_6UUueOO8EdyGNPaNHSGn_w" name="wellKnownText" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUueeO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUueuO8EdyGNPaNHSGn_w" name="read" visibility="public">
+                  <ownedParameter xmi:id="_6UUue-O8EdyGNPaNHSGn_w" name="reader" type="_6UdsPeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUufOO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUufeO8EdyGNPaNHSGn_w" name="getCoordinates" visibility="private">
+                  <ownedParameter xmi:id="_6UUufuO8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuf-O8EdyGNPaNHSGn_w" name="return" type="_6UUiSuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUugOO8EdyGNPaNHSGn_w" name="getPreciseCoordinate" visibility="private">
+                  <ownedParameter xmi:id="_6UUugeO8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuguO8EdyGNPaNHSGn_w" name="return" type="_6UUiSuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUug-O8EdyGNPaNHSGn_w" name="isNumberNext" visibility="private">
+                  <ownedParameter xmi:id="_6UUuhOO8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuheO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuhuO8EdyGNPaNHSGn_w" name="getNextNumber" visibility="private">
+                  <ownedParameter xmi:id="_6UUuh-O8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuiOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuieO8EdyGNPaNHSGn_w" name="getNextEmptyOrOpener" visibility="private">
+                  <ownedParameter xmi:id="_6UUuiuO8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUui-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUujOO8EdyGNPaNHSGn_w" name="getNextCloserOrComma" visibility="private">
+                  <ownedParameter xmi:id="_6UUujeO8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUujuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuj-O8EdyGNPaNHSGn_w" name="getNextCloser" visibility="private">
+                  <ownedParameter xmi:id="_6UUukOO8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUukeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUukuO8EdyGNPaNHSGn_w" name="getNextWord" visibility="private">
+                  <ownedParameter xmi:id="_6UUuk-O8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUulOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuleO8EdyGNPaNHSGn_w" name="readGeometryTaggedText" visibility="private">
+                  <ownedParameter xmi:id="_6UUuluO8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUul-O8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUumOO8EdyGNPaNHSGn_w" name="readPointText" visibility="private">
+                  <ownedParameter xmi:id="_6UUumeO8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUumuO8EdyGNPaNHSGn_w" name="return" type="_6UUrOuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUum-O8EdyGNPaNHSGn_w" name="readLineStringText" visibility="private">
+                  <ownedParameter xmi:id="_6UUunOO8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuneO8EdyGNPaNHSGn_w" name="return" type="_6UUrOuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUunuO8EdyGNPaNHSGn_w" name="readLinearRingText" visibility="private">
+                  <ownedParameter xmi:id="_6UUun-O8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuoOO8EdyGNPaNHSGn_w" name="return" type="_6UUrOuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuoeO8EdyGNPaNHSGn_w" name="readMultiPointText" visibility="private">
+                  <ownedParameter xmi:id="_6UUuouO8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuo-O8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUupOO8EdyGNPaNHSGn_w" name="readPolygonText" visibility="private">
+                  <ownedParameter xmi:id="_6UUupeO8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUupuO8EdyGNPaNHSGn_w" name="return" type="_6UUrOuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUup-O8EdyGNPaNHSGn_w" name="readMultiLineStringText" visibility="private">
+                  <ownedParameter xmi:id="_6UUuqOO8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuqeO8EdyGNPaNHSGn_w" name="return" type="_6UUrOuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuquO8EdyGNPaNHSGn_w" name="readMultiPolygonText" visibility="private">
+                  <ownedParameter xmi:id="_6UUuq-O8EdyGNPaNHSGn_w" name="tokenizer" type="_6UdsPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUurOO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUureO8EdyGNPaNHSGn_w" name="FeatureWithoutIdExceptionType">
+                <generalization xmi:id="_6UUuruO8EdyGNPaNHSGn_w" general="_6UnhgOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUur-O8EdyGNPaNHSGn_w" name="schema" type="_6UUsSeO8EdyGNPaNHSGn_w" association="_6UdsT-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUusOO8EdyGNPaNHSGn_w" name="setSchema" visibility="public">
+                  <ownedParameter xmi:id="_6UUuseO8EdyGNPaNHSGn_w" name="schema" type="_6UUsSeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUusuO8EdyGNPaNHSGn_w" name="getHtmlErrorMessage" visibility="public">
+                  <ownedParameter xmi:id="_6UUus-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UUutOO8EdyGNPaNHSGn_w" name="XTypes">
+                <ownedAttribute xmi:id="_6UUuteO8EdyGNPaNHSGn_w" name="NUM_msSecs2000" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUutuO8EdyGNPaNHSGn_w" name="POINT2D" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUut-O8EdyGNPaNHSGn_w" name="LINE2D" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUuuOO8EdyGNPaNHSGn_w" name="POLYGON2D" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UUuueO8EdyGNPaNHSGn_w" name="MULTI2D" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UUuuuO8EdyGNPaNHSGn_w" name="fieldTypeToString" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUuu-O8EdyGNPaNHSGn_w" name="fieldType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuvOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuveO8EdyGNPaNHSGn_w" name="getValue" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUuvuO8EdyGNPaNHSGn_w" name="rs" type="_6UdsMOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuv-O8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuwOO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuweO8EdyGNPaNHSGn_w" name="updateValue" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UUuwuO8EdyGNPaNHSGn_w" name="rs" type="_6UdsMOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuw-O8EdyGNPaNHSGn_w" name="fieldId_ceroBased" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUuxOO8EdyGNPaNHSGn_w" name="val" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUuxeO8EdyGNPaNHSGn_w" name="VectorialDriver">
+                <ownedOperation xmi:id="_6UUuxuO8EdyGNPaNHSGn_w" name="getShapeType">
+                  <ownedParameter xmi:id="_6UUux-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuyOO8EdyGNPaNHSGn_w" name="getShapeCount">
+                  <ownedParameter xmi:id="_6UUuyeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuyuO8EdyGNPaNHSGn_w" name="getDriverAttributes">
+                  <ownedParameter xmi:id="_6UUuy-O8EdyGNPaNHSGn_w" name="return" type="_6UUtbuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuzOO8EdyGNPaNHSGn_w" name="getFullExtent">
+                  <ownedParameter xmi:id="_6UUuzeO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUuzuO8EdyGNPaNHSGn_w" name="getShape" visibility="public">
+                  <ownedParameter xmi:id="_6UUuz-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UUu0OO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUu0eO8EdyGNPaNHSGn_w" name="reload"/>
+                <ownedOperation xmi:id="_6UUu0uO8EdyGNPaNHSGn_w" name="isWritable">
+                  <ownedParameter xmi:id="_6UUu0-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UUu1OO8EdyGNPaNHSGn_w" name="IFeatureIterator">
+                <ownedOperation xmi:id="_6UUu1eO8EdyGNPaNHSGn_w" name="hasNext">
+                  <ownedParameter xmi:id="_6UUu1uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUu1-O8EdyGNPaNHSGn_w" name="next">
+                  <ownedParameter xmi:id="_6UUu2OO8EdyGNPaNHSGn_w" name="return" type="_6UUetuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UUu2eO8EdyGNPaNHSGn_w" name="closeIterator"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UUu2uO8EdyGNPaNHSGn_w" name="db">
+                <packagedElement xmi:type="uml:Package" xmi:id="_6UUu2-O8EdyGNPaNHSGn_w" name="utils">
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UUu3OO8EdyGNPaNHSGn_w" name="SingleVectorialDBConnectionManager">
+                    <ownedAttribute xmi:id="_6UUu3eO8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUu3uO8EdyGNPaNHSGn_w" name="single_instance" visibility="private" type="_6UUu3OO8EdyGNPaNHSGn_w" association="_6UUvPOO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUu3-O8EdyGNPaNHSGn_w" name="connections" visibility="private" type="_6UnhleO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UUu4OO8EdyGNPaNHSGn_w" name="instance" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUu4eO8EdyGNPaNHSGn_w" name="return" type="_6UUu3OO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUu4uO8EdyGNPaNHSGn_w" name="findConnection" visibility="public">
+                      <ownedParameter xmi:id="_6UUu4-O8EdyGNPaNHSGn_w" name="co" type="_6UUto-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUu5OO8EdyGNPaNHSGn_w" name="return" type="_6UUvA-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUu5eO8EdyGNPaNHSGn_w" name="getConnection" visibility="public">
+                      <ownedParameter xmi:id="_6UUu5uO8EdyGNPaNHSGn_w" name="_drvName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUu5-O8EdyGNPaNHSGn_w" name="_user" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUu6OO8EdyGNPaNHSGn_w" name="_pw" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUu6eO8EdyGNPaNHSGn_w" name="_name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUu6uO8EdyGNPaNHSGn_w" name="_host" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUu6-O8EdyGNPaNHSGn_w" name="_port" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUu7OO8EdyGNPaNHSGn_w" name="_db" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUu7eO8EdyGNPaNHSGn_w" name="_connected" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUu7uO8EdyGNPaNHSGn_w" name="return" type="_6UUvA-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUu7-O8EdyGNPaNHSGn_w" name="getConnectedConnections" visibility="public">
+                      <ownedParameter xmi:id="_6UUu8OO8EdyGNPaNHSGn_w" name="return" type="_6UUvA-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUu8eO8EdyGNPaNHSGn_w" name="getAllConnections" visibility="public">
+                      <ownedParameter xmi:id="_6UUu8uO8EdyGNPaNHSGn_w" name="return" type="_6UUvA-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUu8-O8EdyGNPaNHSGn_w" name="removeConnectionWP" visibility="private">
+                      <ownedParameter xmi:id="_6UUu9OO8EdyGNPaNHSGn_w" name="_cwp" type="_6UUvA-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUu9eO8EdyGNPaNHSGn_w" name="closeAndRemove" visibility="public">
+                      <ownedParameter xmi:id="_6UUu9uO8EdyGNPaNHSGn_w" name="_cwp" type="_6UUvA-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUu9-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUu-OO8EdyGNPaNHSGn_w" name="closeAllBeforeTerminate" visibility="public"/>
+                    <ownedOperation xmi:id="_6UUu-eO8EdyGNPaNHSGn_w" name="getConnectionKey" visibility="private" isStatic="true">
+                      <ownedParameter xmi:id="_6UUu-uO8EdyGNPaNHSGn_w" name="_drvName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUu--O8EdyGNPaNHSGn_w" name="_host" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUu_OO8EdyGNPaNHSGn_w" name="_db" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUu_eO8EdyGNPaNHSGn_w" name="_port" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUu_uO8EdyGNPaNHSGn_w" name="_user" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUu_-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvAOO8EdyGNPaNHSGn_w" name="getInstanceFromName" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UUvAeO8EdyGNPaNHSGn_w" name="drvname" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUvAuO8EdyGNPaNHSGn_w" name="return" type="_6UUrdeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UUvA-O8EdyGNPaNHSGn_w" name="ConnectionWithParams">
+                    <ownedAttribute xmi:id="_6UUvBOO8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUvBeO8EdyGNPaNHSGn_w" name="conn" visibility="private" type="_6UUto-O8EdyGNPaNHSGn_w" association="_6UUvPuO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUvBuO8EdyGNPaNHSGn_w" name="connectionStr" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUvB-O8EdyGNPaNHSGn_w" name="drvName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUvCOO8EdyGNPaNHSGn_w" name="user" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUvCeO8EdyGNPaNHSGn_w" name="pw" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUvCuO8EdyGNPaNHSGn_w" name="name" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUvC-O8EdyGNPaNHSGn_w" name="connected" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUvDOO8EdyGNPaNHSGn_w" name="host" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUvDeO8EdyGNPaNHSGn_w" name="port" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUvDuO8EdyGNPaNHSGn_w" name="db" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUvD-O8EdyGNPaNHSGn_w" name="schema" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUvEOO8EdyGNPaNHSGn_w" name="isNull" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UUvEeO8EdyGNPaNHSGn_w" name="getConnection" visibility="public">
+                      <ownedParameter xmi:id="_6UUvEuO8EdyGNPaNHSGn_w" name="return" type="_6UUto-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvE-O8EdyGNPaNHSGn_w" name="getDrvName" visibility="public">
+                      <ownedParameter xmi:id="_6UUvFOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvFeO8EdyGNPaNHSGn_w" name="getPw" visibility="public">
+                      <ownedParameter xmi:id="_6UUvFuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvF-O8EdyGNPaNHSGn_w" name="getUser" visibility="public">
+                      <ownedParameter xmi:id="_6UUvGOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvGeO8EdyGNPaNHSGn_w" name="toString" visibility="public">
+                      <ownedParameter xmi:id="_6UUvGuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvG-O8EdyGNPaNHSGn_w" name="isConnected" visibility="public">
+                      <ownedParameter xmi:id="_6UUvHOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvHeO8EdyGNPaNHSGn_w" name="setConnected" visibility="public">
+                      <ownedParameter xmi:id="_6UUvHuO8EdyGNPaNHSGn_w" name="c" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvH-O8EdyGNPaNHSGn_w" name="connect" visibility="public">
+                      <ownedParameter xmi:id="_6UUvIOO8EdyGNPaNHSGn_w" name="_pw" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvIeO8EdyGNPaNHSGn_w" name="disconnect" visibility="public"/>
+                    <ownedOperation xmi:id="_6UUvIuO8EdyGNPaNHSGn_w" name="getConnectionStr" visibility="public">
+                      <ownedParameter xmi:id="_6UUvI-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvJOO8EdyGNPaNHSGn_w" name="setConnectionStr" visibility="public">
+                      <ownedParameter xmi:id="_6UUvJeO8EdyGNPaNHSGn_w" name="connectionStr" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvJuO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                      <ownedParameter xmi:id="_6UUvJ-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvKOO8EdyGNPaNHSGn_w" name="setName" visibility="public">
+                      <ownedParameter xmi:id="_6UUvKeO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvKuO8EdyGNPaNHSGn_w" name="getDb" visibility="public">
+                      <ownedParameter xmi:id="_6UUvK-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvLOO8EdyGNPaNHSGn_w" name="setDb" visibility="public">
+                      <ownedParameter xmi:id="_6UUvLeO8EdyGNPaNHSGn_w" name="db" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvLuO8EdyGNPaNHSGn_w" name="getHost" visibility="public">
+                      <ownedParameter xmi:id="_6UUvL-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvMOO8EdyGNPaNHSGn_w" name="setHost" visibility="public">
+                      <ownedParameter xmi:id="_6UUvMeO8EdyGNPaNHSGn_w" name="host" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvMuO8EdyGNPaNHSGn_w" name="getPort" visibility="public">
+                      <ownedParameter xmi:id="_6UUvM-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvNOO8EdyGNPaNHSGn_w" name="setPort" visibility="public">
+                      <ownedParameter xmi:id="_6UUvNeO8EdyGNPaNHSGn_w" name="port" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvNuO8EdyGNPaNHSGn_w" name="isNull" visibility="public">
+                      <ownedParameter xmi:id="_6UUvN-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvOOO8EdyGNPaNHSGn_w" name="getSchema" visibility="public">
+                      <ownedParameter xmi:id="_6UUvOeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUvOuO8EdyGNPaNHSGn_w" name="setSchema" visibility="public">
+                      <ownedParameter xmi:id="_6UUvO-O8EdyGNPaNHSGn_w" name="schema" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UUvPOO8EdyGNPaNHSGn_w" memberEnd="_6UUu3uO8EdyGNPaNHSGn_w _6UUvPeO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UUvPeO8EdyGNPaNHSGn_w" name="target" type="_6UUu3OO8EdyGNPaNHSGn_w" association="_6UUvPOO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UUvPuO8EdyGNPaNHSGn_w" memberEnd="_6UUvBeO8EdyGNPaNHSGn_w _6UUvP-O8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UUvP-O8EdyGNPaNHSGn_w" name="target" type="_6UUvA-O8EdyGNPaNHSGn_w" association="_6UUvPuO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UUvQOO8EdyGNPaNHSGn_w" name="dbf">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUvQeO8EdyGNPaNHSGn_w" name="DbaseFile">
+                  <ownedAttribute xmi:id="_6UUvQuO8EdyGNPaNHSGn_w" name="myHeader" visibility="private" type="_6UUvh-O8EdyGNPaNHSGn_w" association="_6UUwJ-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvQ-O8EdyGNPaNHSGn_w" name="raf" visibility="private" type="_6UUwGuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvROO8EdyGNPaNHSGn_w" name="channel" visibility="private" type="_6UUwG-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvReO8EdyGNPaNHSGn_w" name="buffer" visibility="private" type="_6UUwHOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvRuO8EdyGNPaNHSGn_w" name="mode" visibility="private" type="_6UUwHeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvR-O8EdyGNPaNHSGn_w" name="formatter" visibility="private" type="_6UUvdeO8EdyGNPaNHSGn_w" association="_6UUwKeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvSOO8EdyGNPaNHSGn_w" name="posActual" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvSeO8EdyGNPaNHSGn_w" name="recordOffset" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvSuO8EdyGNPaNHSGn_w" name="cachedRecord" visibility="private" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvS-O8EdyGNPaNHSGn_w" name="bytesCachedRecord" visibility="private" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvTOO8EdyGNPaNHSGn_w" name="NULL_NUMBER" visibility="private" type="_6UUwHuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvTeO8EdyGNPaNHSGn_w" name="NULL_STRING" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvTuO8EdyGNPaNHSGn_w" name="NULL_DATE" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvT-O8EdyGNPaNHSGn_w" name="chars" visibility="private" type="_6UUwH-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUvUOO8EdyGNPaNHSGn_w" name="getRecordCount" visibility="public">
+                    <ownedParameter xmi:id="_6UUvUeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvUuO8EdyGNPaNHSGn_w" name="getFieldCount" visibility="public">
+                    <ownedParameter xmi:id="_6UUvU-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvVOO8EdyGNPaNHSGn_w" name="getBooleanFieldValue" visibility="public">
+                    <ownedParameter xmi:id="_6UUvVeO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvVuO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvV-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvWOO8EdyGNPaNHSGn_w" name="getStringFieldValue" visibility="public">
+                    <ownedParameter xmi:id="_6UUvWeO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvWuO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvW-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvXOO8EdyGNPaNHSGn_w" name="setFieldValue" visibility="public">
+                    <ownedParameter xmi:id="_6UUvXeO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvXuO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvX-O8EdyGNPaNHSGn_w" name="obj" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvYOO8EdyGNPaNHSGn_w" name="getFieldName" visibility="public">
+                    <ownedParameter xmi:id="_6UUvYeO8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvYuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvY-O8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                    <ownedParameter xmi:id="_6UUvZOO8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvZeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvZuO8EdyGNPaNHSGn_w" name="getFieldLength" visibility="public">
+                    <ownedParameter xmi:id="_6UUvZ-O8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvaOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvaeO8EdyGNPaNHSGn_w" name="getFieldDecimalLength" visibility="public">
+                    <ownedParameter xmi:id="_6UUvauO8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUva-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvbOO8EdyGNPaNHSGn_w" name="open" visibility="public">
+                    <ownedParameter xmi:id="_6UUvbeO8EdyGNPaNHSGn_w" name="file" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvbuO8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUvb-O8EdyGNPaNHSGn_w" name="getWriteChannel" visibility="public">
+                    <ownedParameter xmi:id="_6UUvcOO8EdyGNPaNHSGn_w" name="return" type="_6UUwG-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvceO8EdyGNPaNHSGn_w" name="fieldString" visibility="private">
+                    <ownedParameter xmi:id="_6UUvcuO8EdyGNPaNHSGn_w" name="obj" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvc-O8EdyGNPaNHSGn_w" name="col" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvdOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUvdeO8EdyGNPaNHSGn_w" name="FieldFormatter">
+                  <ownedAttribute xmi:id="_6UUvduO8EdyGNPaNHSGn_w" name="buffer" visibility="private" type="_6UUwIOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvd-O8EdyGNPaNHSGn_w" name="numFormat" visibility="private" type="_6UUwIeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUveOO8EdyGNPaNHSGn_w" name="calendar" visibility="private" type="_6UUwIuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUveeO8EdyGNPaNHSGn_w" name="emtpyString" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUveuO8EdyGNPaNHSGn_w" name="MAXCHARS" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUve-O8EdyGNPaNHSGn_w" name="getFieldString" visibility="public">
+                    <ownedParameter xmi:id="_6UUvfOO8EdyGNPaNHSGn_w" name="size" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvfeO8EdyGNPaNHSGn_w" name="s" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvfuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvf-O8EdyGNPaNHSGn_w" name="getFieldString" visibility="public">
+                    <ownedParameter xmi:id="_6UUvgOO8EdyGNPaNHSGn_w" name="d" type="_6UUwI-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvgeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvguO8EdyGNPaNHSGn_w" name="getFieldString" visibility="public">
+                    <ownedParameter xmi:id="_6UUvg-O8EdyGNPaNHSGn_w" name="size" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvhOO8EdyGNPaNHSGn_w" name="decimalPlaces" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvheO8EdyGNPaNHSGn_w" name="n" type="_6UUwHuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvhuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUvh-O8EdyGNPaNHSGn_w" name="DbaseFileHeader">
+                  <ownedAttribute xmi:id="_6UUviOO8EdyGNPaNHSGn_w" name="FILE_DESCRIPTOR_SIZE" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvieO8EdyGNPaNHSGn_w" name="myFileType" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUviuO8EdyGNPaNHSGn_w" name="myUpdateDate" visibility="private" type="_6UUwI-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvi-O8EdyGNPaNHSGn_w" name="myNumRecords" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvjOO8EdyGNPaNHSGn_w" name="myHeaderLength" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvjeO8EdyGNPaNHSGn_w" name="myRecordLength" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvjuO8EdyGNPaNHSGn_w" name="myNumFields" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvj-O8EdyGNPaNHSGn_w" name="myFieldDescriptions" visibility="private" type="_6UUvuuO8EdyGNPaNHSGn_w" association="_6UUwK-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvkOO8EdyGNPaNHSGn_w" name="myLanguageID" visibility="private" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUvkeO8EdyGNPaNHSGn_w" name="addColumn" visibility="public">
+                    <ownedParameter xmi:id="_6UUvkuO8EdyGNPaNHSGn_w" name="inFieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvk-O8EdyGNPaNHSGn_w" name="inFieldType" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvlOO8EdyGNPaNHSGn_w" name="inFieldLength" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvleO8EdyGNPaNHSGn_w" name="inDecimalCount" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvluO8EdyGNPaNHSGn_w" name="removeColumn" visibility="public">
+                    <ownedParameter xmi:id="_6UUvl-O8EdyGNPaNHSGn_w" name="inFieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvmOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvmeO8EdyGNPaNHSGn_w" name="warn" visibility="private">
+                    <ownedParameter xmi:id="_6UUvmuO8EdyGNPaNHSGn_w" name="inWarn" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvm-O8EdyGNPaNHSGn_w" name="getFieldDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UUvnOO8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvneO8EdyGNPaNHSGn_w" name="return" type="_6UUvuuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvnuO8EdyGNPaNHSGn_w" name="getFieldLength" visibility="public">
+                    <ownedParameter xmi:id="_6UUvn-O8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvoOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvoeO8EdyGNPaNHSGn_w" name="getFieldDecimalCount" visibility="public">
+                    <ownedParameter xmi:id="_6UUvouO8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvo-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvpOO8EdyGNPaNHSGn_w" name="getFieldName" visibility="public">
+                    <ownedParameter xmi:id="_6UUvpeO8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvpuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvp-O8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                    <ownedParameter xmi:id="_6UUvqOO8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUvqeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvquO8EdyGNPaNHSGn_w" name="getLastUpdateDate" visibility="public">
+                    <ownedParameter xmi:id="_6UUvq-O8EdyGNPaNHSGn_w" name="return" type="_6UUwI-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvrOO8EdyGNPaNHSGn_w" name="getNumFields" visibility="public">
+                    <ownedParameter xmi:id="_6UUvreO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvruO8EdyGNPaNHSGn_w" name="getNumRecords" visibility="public">
+                    <ownedParameter xmi:id="_6UUvr-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvsOO8EdyGNPaNHSGn_w" name="getRecordLength" visibility="public">
+                    <ownedParameter xmi:id="_6UUvseO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvsuO8EdyGNPaNHSGn_w" name="getHeaderLength" visibility="public">
+                    <ownedParameter xmi:id="_6UUvs-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvtOO8EdyGNPaNHSGn_w" name="readHeader" visibility="public">
+                    <ownedParameter xmi:id="_6UUvteO8EdyGNPaNHSGn_w" name="in" type="_6UUwHOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvtuO8EdyGNPaNHSGn_w" name="setNumRecords" visibility="protected">
+                    <ownedParameter xmi:id="_6UUvt-O8EdyGNPaNHSGn_w" name="inNumRecords" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvuOO8EdyGNPaNHSGn_w" name="getLanguageID" visibility="public">
+                    <ownedParameter xmi:id="_6UUvueO8EdyGNPaNHSGn_w" name="return" type="_6UKs0uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUvuuO8EdyGNPaNHSGn_w" name="DbaseFieldDescriptor">
+                  <ownedAttribute xmi:id="_6UUvu-O8EdyGNPaNHSGn_w" name="myFieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvvOO8EdyGNPaNHSGn_w" name="myFieldType" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvveO8EdyGNPaNHSGn_w" name="myFieldDataAddress" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvvuO8EdyGNPaNHSGn_w" name="myFieldLength" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvv-O8EdyGNPaNHSGn_w" name="myDecimalCount" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUvwOO8EdyGNPaNHSGn_w" name="DBFDriver" clientDependency="_6UUvy-O8EdyGNPaNHSGn_w _6UUvzOO8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6UUvweO8EdyGNPaNHSGn_w" general="_6UdxD-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvwuO8EdyGNPaNHSGn_w" name="ukLocale" visibility="private" type="_6UUiKuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvw-O8EdyGNPaNHSGn_w" name="dbf" visibility="private" type="_6UUvQeO8EdyGNPaNHSGn_w" association="_6UUwLeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvxOO8EdyGNPaNHSGn_w" name="fieldTypes" visibility="private" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvxeO8EdyGNPaNHSGn_w" name="dsf" visibility="private" type="_6UdsM-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvxuO8EdyGNPaNHSGn_w" name="dbfWriter" visibility="private" type="_6UdxkeO8EdyGNPaNHSGn_w" association="_6UUwL-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvx-O8EdyGNPaNHSGn_w" name="file" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvyOO8EdyGNPaNHSGn_w" name="tempDirectoryPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvyeO8EdyGNPaNHSGn_w" name="fTemp" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUvyuO8EdyGNPaNHSGn_w" name="tableDef" visibility="private" type="_6UUrbOO8EdyGNPaNHSGn_w" association="_6UUwMeO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUvy-O8EdyGNPaNHSGn_w" name="IWriteable" supplier="_6UdtUuO8EdyGNPaNHSGn_w" client="_6UUvwOO8EdyGNPaNHSGn_w" contract="_6UdtUuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUvzOO8EdyGNPaNHSGn_w" name="IWriter" supplier="_6UdsrOO8EdyGNPaNHSGn_w" client="_6UUvwOO8EdyGNPaNHSGn_w" contract="_6UdsrOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUvzeO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                    <ownedParameter xmi:id="_6UUvzuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUvz-O8EdyGNPaNHSGn_w" name="open" visibility="public">
+                    <ownedParameter xmi:id="_6UUv0OO8EdyGNPaNHSGn_w" name="file" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv0eO8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUv0uO8EdyGNPaNHSGn_w" name="getFieldValue" visibility="public">
+                    <ownedParameter xmi:id="_6UUv0-O8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUv1OO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUv1eO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv1uO8EdyGNPaNHSGn_w" name="getFieldCount" visibility="public">
+                    <ownedParameter xmi:id="_6UUv1-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv2OO8EdyGNPaNHSGn_w" name="getFieldName" visibility="public">
+                    <ownedParameter xmi:id="_6UUv2eO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUv2uO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv2-O8EdyGNPaNHSGn_w" name="getRowCount" visibility="public">
+                    <ownedParameter xmi:id="_6UUv3OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv3eO8EdyGNPaNHSGn_w" name="fileAccepted" visibility="public">
+                    <ownedParameter xmi:id="_6UUv3uO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUv3-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv4OO8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                    <ownedParameter xmi:id="_6UUv4eO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUv4uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv4-O8EdyGNPaNHSGn_w" name="setDataSourceFactory" visibility="public">
+                    <ownedParameter xmi:id="_6UUv5OO8EdyGNPaNHSGn_w" name="dsf" type="_6UdsM-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv5eO8EdyGNPaNHSGn_w" name="writeToTemp" visibility="private">
+                    <ownedParameter xmi:id="_6UUv5uO8EdyGNPaNHSGn_w" name="dataWare" type="_6UdsN-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUv5-O8EdyGNPaNHSGn_w" name="file" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv6OO8EdyGNPaNHSGn_w" name="writeFile" visibility="public">
+                    <ownedParameter xmi:id="_6UUv6eO8EdyGNPaNHSGn_w" name="dataWare" type="_6UUwJOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv6uO8EdyGNPaNHSGn_w" name="getWriteChannel" visibility="private">
+                    <ownedParameter xmi:id="_6UUv6-O8EdyGNPaNHSGn_w" name="path" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUv7OO8EdyGNPaNHSGn_w" name="return" type="_6UUwJeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv7eO8EdyGNPaNHSGn_w" name="createSource" visibility="public">
+                    <ownedParameter xmi:id="_6UUv7uO8EdyGNPaNHSGn_w" name="arg0" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUv7-O8EdyGNPaNHSGn_w" name="arg1" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUv8OO8EdyGNPaNHSGn_w" name="arg2" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv8eO8EdyGNPaNHSGn_w" name="getFieldWidth" visibility="public">
+                    <ownedParameter xmi:id="_6UUv8uO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUv8-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv9OO8EdyGNPaNHSGn_w" name="getWriter" visibility="public">
+                    <ownedParameter xmi:id="_6UUv9eO8EdyGNPaNHSGn_w" name="return" type="_6UdsrOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv9uO8EdyGNPaNHSGn_w" name="preProcess" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUv9-O8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6UUv-OO8EdyGNPaNHSGn_w" name="row" type="_6UdsWuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv-eO8EdyGNPaNHSGn_w" name="postProcess" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUv-uO8EdyGNPaNHSGn_w" name="getCapability" visibility="public">
+                    <ownedParameter xmi:id="_6UUv--O8EdyGNPaNHSGn_w" name="capability" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUv_OO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv_eO8EdyGNPaNHSGn_w" name="setCapabilities" visibility="public">
+                    <ownedParameter xmi:id="_6UUv_uO8EdyGNPaNHSGn_w" name="capabilities" type="_6UUwJuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUv_-O8EdyGNPaNHSGn_w" name="canWriteAttribute" visibility="public">
+                    <ownedParameter xmi:id="_6UUwAOO8EdyGNPaNHSGn_w" name="sqlType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUwAeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUwAuO8EdyGNPaNHSGn_w" name="initialize" visibility="public">
+                    <ownedParameter xmi:id="_6UUwA-O8EdyGNPaNHSGn_w" name="tableDefinition" type="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUwBOO8EdyGNPaNHSGn_w" name="getTableDefinition" visibility="public">
+                    <ownedParameter xmi:id="_6UUwBeO8EdyGNPaNHSGn_w" name="return" type="_6UUrbOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUwBuO8EdyGNPaNHSGn_w" name="canAlterTable" visibility="public">
+                    <ownedParameter xmi:id="_6UUwB-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUwCOO8EdyGNPaNHSGn_w" name="alterTable" visibility="public">
+                    <ownedParameter xmi:id="_6UUwCeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUwCuO8EdyGNPaNHSGn_w" name="canSaveEdits" visibility="public">
+                    <ownedParameter xmi:id="_6UUwC-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUwDOO8EdyGNPaNHSGn_w" name="isWriteAll" visibility="public">
+                    <ownedParameter xmi:id="_6UUwDeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUwDuO8EdyGNPaNHSGn_w" name="setFieldValue" visibility="public">
+                    <ownedParameter xmi:id="_6UUwD-O8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUwEOO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUwEeO8EdyGNPaNHSGn_w" name="obj" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUwEuO8EdyGNPaNHSGn_w" name="TestDbf">
+                  <generalization xmi:id="_6UUwE-O8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwFOO8EdyGNPaNHSGn_w" name="driver" type="_6UUvwOO8EdyGNPaNHSGn_w" association="_6UUwM-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwFeO8EdyGNPaNHSGn_w" name="file" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUwFuO8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUwF-O8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUwGOO8EdyGNPaNHSGn_w" name="setUp" visibility="protected"/>
+                  <ownedOperation xmi:id="_6UUwGeO8EdyGNPaNHSGn_w" name="testInitialize" visibility="public"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUwGuO8EdyGNPaNHSGn_w" name="RandomAccessFile"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUwG-O8EdyGNPaNHSGn_w" name="FileChannel"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUwHOO8EdyGNPaNHSGn_w" name="BigByteBuffer2"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUwHeO8EdyGNPaNHSGn_w" name="FileChannel.MapMode"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUwHuO8EdyGNPaNHSGn_w" name="Number"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUwH-O8EdyGNPaNHSGn_w" name="Charset"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUwIOO8EdyGNPaNHSGn_w" name="StringBuffer"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUwIeO8EdyGNPaNHSGn_w" name="NumberFormat"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUwIuO8EdyGNPaNHSGn_w" name="Calendar"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUwI-O8EdyGNPaNHSGn_w" name="Date"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUwJOO8EdyGNPaNHSGn_w" name="FileDataWare"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUwJeO8EdyGNPaNHSGn_w" name="WritableByteChannel"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUwJuO8EdyGNPaNHSGn_w" name="Properties"/>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUwJ-O8EdyGNPaNHSGn_w" memberEnd="_6UUvQuO8EdyGNPaNHSGn_w _6UUwKOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUwKOO8EdyGNPaNHSGn_w" name="target" type="_6UUvQeO8EdyGNPaNHSGn_w" association="_6UUwJ-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUwKeO8EdyGNPaNHSGn_w" memberEnd="_6UUvR-O8EdyGNPaNHSGn_w _6UUwKuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUwKuO8EdyGNPaNHSGn_w" name="target" type="_6UUvQeO8EdyGNPaNHSGn_w" association="_6UUwKeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUwK-O8EdyGNPaNHSGn_w" memberEnd="_6UUvj-O8EdyGNPaNHSGn_w _6UUwLOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUwLOO8EdyGNPaNHSGn_w" name="target" type="_6UUvh-O8EdyGNPaNHSGn_w" association="_6UUwK-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUwLeO8EdyGNPaNHSGn_w" memberEnd="_6UUvw-O8EdyGNPaNHSGn_w _6UUwLuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUwLuO8EdyGNPaNHSGn_w" name="target" type="_6UUvwOO8EdyGNPaNHSGn_w" association="_6UUwLeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUwL-O8EdyGNPaNHSGn_w" memberEnd="_6UUvxuO8EdyGNPaNHSGn_w _6UUwMOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUwMOO8EdyGNPaNHSGn_w" name="target" type="_6UUvwOO8EdyGNPaNHSGn_w" association="_6UUwL-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUwMeO8EdyGNPaNHSGn_w" memberEnd="_6UUvyuO8EdyGNPaNHSGn_w _6UUwMuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUwMuO8EdyGNPaNHSGn_w" name="target" type="_6UUvwOO8EdyGNPaNHSGn_w" association="_6UUwMeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUwM-O8EdyGNPaNHSGn_w" memberEnd="_6UUwFOO8EdyGNPaNHSGn_w _6UUwNOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUwNOO8EdyGNPaNHSGn_w" name="target" type="_6UUwEuO8EdyGNPaNHSGn_w" association="_6UUwM-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UUwNeO8EdyGNPaNHSGn_w" name="dgn">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUwNuO8EdyGNPaNHSGn_w" name="DGNElemArc">
+                  <generalization xmi:id="_6UUwN-O8EdyGNPaNHSGn_w" general="_6UUxruO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwOOO8EdyGNPaNHSGn_w" name="origin" visibility="public" type="_6UUwf-O8EdyGNPaNHSGn_w" association="_6UUyrOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwOeO8EdyGNPaNHSGn_w" name="primary_axis" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwOuO8EdyGNPaNHSGn_w" name="secondary_axis" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwO-O8EdyGNPaNHSGn_w" name="rotation" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwPOO8EdyGNPaNHSGn_w" name="quat" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwPeO8EdyGNPaNHSGn_w" name="startang" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwPuO8EdyGNPaNHSGn_w" name="sweepang" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUwP-O8EdyGNPaNHSGn_w" name="DGNElemColorTable">
+                  <generalization xmi:id="_6UUwQOO8EdyGNPaNHSGn_w" general="_6UUxruO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwQeO8EdyGNPaNHSGn_w" name="screen_flag" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwQuO8EdyGNPaNHSGn_w" name="color_info" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUwQ-O8EdyGNPaNHSGn_w" name="DGNInfo">
+                  <ownedAttribute xmi:id="_6UUwROO8EdyGNPaNHSGn_w" name="fp" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwReO8EdyGNPaNHSGn_w" name="ftall" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwRuO8EdyGNPaNHSGn_w" name="next_element_id" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwR-O8EdyGNPaNHSGn_w" name="nElemBytes" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwSOO8EdyGNPaNHSGn_w" name="abyElem" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwSeO8EdyGNPaNHSGn_w" name="got_tcb" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwSuO8EdyGNPaNHSGn_w" name="dimension" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwS-O8EdyGNPaNHSGn_w" name="options" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwTOO8EdyGNPaNHSGn_w" name="scale" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwTeO8EdyGNPaNHSGn_w" name="origin_x" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwTuO8EdyGNPaNHSGn_w" name="origin_y" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwT-O8EdyGNPaNHSGn_w" name="origin_z" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwUOO8EdyGNPaNHSGn_w" name="index_built" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwUeO8EdyGNPaNHSGn_w" name="element_count" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwUuO8EdyGNPaNHSGn_w" name="max_element_count" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwU-O8EdyGNPaNHSGn_w" name="element_index" visibility="public" type="_6UUxB-O8EdyGNPaNHSGn_w" association="_6UUyruO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwVOO8EdyGNPaNHSGn_w" name="got_color_table" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwVeO8EdyGNPaNHSGn_w" name="color_table" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwVuO8EdyGNPaNHSGn_w" name="got_bounds" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwV-O8EdyGNPaNHSGn_w" name="min_x" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwWOO8EdyGNPaNHSGn_w" name="min_y" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwWeO8EdyGNPaNHSGn_w" name="min_z" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwWuO8EdyGNPaNHSGn_w" name="max_x" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwW-O8EdyGNPaNHSGn_w" name="max_y" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwXOO8EdyGNPaNHSGn_w" name="max_z" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwXeO8EdyGNPaNHSGn_w" name="has_spatial_filter" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwXuO8EdyGNPaNHSGn_w" name="sf_converted_to_uor" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwX-O8EdyGNPaNHSGn_w" name="select_complex_group" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwYOO8EdyGNPaNHSGn_w" name="in_complex_group" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwYeO8EdyGNPaNHSGn_w" name="sf_min_x" visibility="public" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwYuO8EdyGNPaNHSGn_w" name="sf_min_y" visibility="public" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwY-O8EdyGNPaNHSGn_w" name="sf_max_x" visibility="public" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwZOO8EdyGNPaNHSGn_w" name="sf_max_y" visibility="public" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwZeO8EdyGNPaNHSGn_w" name="sf_min_x_geo" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwZuO8EdyGNPaNHSGn_w" name="sf_min_y_geo" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwZ-O8EdyGNPaNHSGn_w" name="sf_max_x_geo" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwaOO8EdyGNPaNHSGn_w" name="sf_max_y_geo" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUwaeO8EdyGNPaNHSGn_w" name="DGNElemCellHeader">
+                  <generalization xmi:id="_6UUwauO8EdyGNPaNHSGn_w" general="_6UUxruO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwa-O8EdyGNPaNHSGn_w" name="totlength" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwbOO8EdyGNPaNHSGn_w" name="name" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwbeO8EdyGNPaNHSGn_w" name="cclass" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwbuO8EdyGNPaNHSGn_w" name="levels" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwb-O8EdyGNPaNHSGn_w" name="rnglow" visibility="public" type="_6UUwf-O8EdyGNPaNHSGn_w" association="_6UUysOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwcOO8EdyGNPaNHSGn_w" name="rnghigh" visibility="public" type="_6UUwf-O8EdyGNPaNHSGn_w" association="_6UUysuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwceO8EdyGNPaNHSGn_w" name="trans" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwcuO8EdyGNPaNHSGn_w" name="origin" visibility="public" type="_6UUwf-O8EdyGNPaNHSGn_w" association="_6UUytOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwc-O8EdyGNPaNHSGn_w" name="xscale" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwdOO8EdyGNPaNHSGn_w" name="yscale" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwdeO8EdyGNPaNHSGn_w" name="rotation" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUwduO8EdyGNPaNHSGn_w" name="DGNElemGroup">
+                  <generalization xmi:id="_6UUwd-O8EdyGNPaNHSGn_w" general="_6UUxruO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUweOO8EdyGNPaNHSGn_w" name="origin" visibility="public" type="_6UUwf-O8EdyGNPaNHSGn_w" association="_6UUytuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUweeO8EdyGNPaNHSGn_w" name="primary_axis" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUweuO8EdyGNPaNHSGn_w" name="secondary_axis" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwe-O8EdyGNPaNHSGn_w" name="rotation" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwfOO8EdyGNPaNHSGn_w" name="quat" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwfeO8EdyGNPaNHSGn_w" name="startang" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwfuO8EdyGNPaNHSGn_w" name="sweepang" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUwf-O8EdyGNPaNHSGn_w" name="DGNPoint">
+                  <ownedAttribute xmi:id="_6UUwgOO8EdyGNPaNHSGn_w" name="x" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwgeO8EdyGNPaNHSGn_w" name="y" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwguO8EdyGNPaNHSGn_w" name="z" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUwg-O8EdyGNPaNHSGn_w" name="DGNElemMultiPoint">
+                  <generalization xmi:id="_6UUwhOO8EdyGNPaNHSGn_w" general="_6UUxruO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwheO8EdyGNPaNHSGn_w" name="num_vertices" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwhuO8EdyGNPaNHSGn_w" name="vertices" visibility="public" type="_6UUwf-O8EdyGNPaNHSGn_w" association="_6UUyuOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUwh-O8EdyGNPaNHSGn_w" name="DGNFileHeader">
+                  <ownedAttribute xmi:id="_6UUwiOO8EdyGNPaNHSGn_w" name="DGNST_CORE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwieO8EdyGNPaNHSGn_w" name="DGNST_MULTIPOINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwiuO8EdyGNPaNHSGn_w" name="DGNST_COLORTABLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwi-O8EdyGNPaNHSGn_w" name="DGNST_TCB" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwjOO8EdyGNPaNHSGn_w" name="DGNST_ARC" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwjeO8EdyGNPaNHSGn_w" name="DGNST_TEXT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwjuO8EdyGNPaNHSGn_w" name="DGNST_COMPLEX_HEADER" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwj-O8EdyGNPaNHSGn_w" name="DGNST_CELL_HEADER" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwkOO8EdyGNPaNHSGn_w" name="DGNST_TAG_VALUE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwkeO8EdyGNPaNHSGn_w" name="DGNST_TAG_SET" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwkuO8EdyGNPaNHSGn_w" name="DGNST_CELL_LIBRARY" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwk-O8EdyGNPaNHSGn_w" name="DGNST_GROUP_DATA" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwlOO8EdyGNPaNHSGn_w" name="DGNST_SHARED_CELL_DEFN" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwleO8EdyGNPaNHSGn_w" name="DGNT_NULL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwluO8EdyGNPaNHSGn_w" name="DGNT_CELL_LIBRARY" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwl-O8EdyGNPaNHSGn_w" name="DGNT_CELL_HEADER" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwmOO8EdyGNPaNHSGn_w" name="DGNT_LINE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwmeO8EdyGNPaNHSGn_w" name="DGNT_LINE_STRING" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwmuO8EdyGNPaNHSGn_w" name="DGNT_GROUP_DATA" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwm-O8EdyGNPaNHSGn_w" name="DGNT_SHAPE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwnOO8EdyGNPaNHSGn_w" name="DGNT_TEXT_NODE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwneO8EdyGNPaNHSGn_w" name="DGNT_DIGITIZER_SETUP" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwnuO8EdyGNPaNHSGn_w" name="DGNT_TCB" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwn-O8EdyGNPaNHSGn_w" name="DGNT_LEVEL_SYMBOLOGY" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwoOO8EdyGNPaNHSGn_w" name="DGNT_CURVE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwoeO8EdyGNPaNHSGn_w" name="DGNT_COMPLEX_CHAIN_HEADER" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwouO8EdyGNPaNHSGn_w" name="DGNT_COMPLEX_SHAPE_HEADER" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwo-O8EdyGNPaNHSGn_w" name="DGNT_ELLIPSE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwpOO8EdyGNPaNHSGn_w" name="DGNT_ARC" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwpeO8EdyGNPaNHSGn_w" name="DGNT_TEXT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwpuO8EdyGNPaNHSGn_w" name="DGNT_BSPLINE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwp-O8EdyGNPaNHSGn_w" name="DGNT_SHARED_CELL_DEFN" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwqOO8EdyGNPaNHSGn_w" name="DGNT_SHARED_CELL_ELEM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwqeO8EdyGNPaNHSGn_w" name="DGNT_TAG_VALUE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwquO8EdyGNPaNHSGn_w" name="DGNT_APPLICATION_ELEM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwq-O8EdyGNPaNHSGn_w" name="DGNS_SOLID" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwrOO8EdyGNPaNHSGn_w" name="DGNS_DOTTED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwreO8EdyGNPaNHSGn_w" name="DGNS_MEDIUM_DASH" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwruO8EdyGNPaNHSGn_w" name="DGNS_LONG_DASH" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwr-O8EdyGNPaNHSGn_w" name="DGNS_DOT_DASH" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwsOO8EdyGNPaNHSGn_w" name="DGNS_SHORT_DASH" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwseO8EdyGNPaNHSGn_w" name="DGNS_DASH_DOUBLE_DOT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwsuO8EdyGNPaNHSGn_w" name="DGNS_LONG_DASH_SHORT_DASH" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUws-O8EdyGNPaNHSGn_w" name="DGNC_PRIMARY" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwtOO8EdyGNPaNHSGn_w" name="DGNC_PATTERN_COMPONENT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwteO8EdyGNPaNHSGn_w" name="DGNC_CONSTRUCTION_ELEMENT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwtuO8EdyGNPaNHSGn_w" name="DGNC_DIMENSION_ELEMENT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwt-O8EdyGNPaNHSGn_w" name="DGNC_PRIMARY_RULE_ELEMENT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwuOO8EdyGNPaNHSGn_w" name="DGNC_LINEAR_PATTERNED_ELEMENT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwueO8EdyGNPaNHSGn_w" name="DGNC_CONSTRUCTION_RULE_ELEMENT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwuuO8EdyGNPaNHSGn_w" name="DGN_GDL_COLOR_TABLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwu-O8EdyGNPaNHSGn_w" name="DGN_GDL_NAMED_VIEW" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwvOO8EdyGNPaNHSGn_w" name="DGN_GDL_REF_FILE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwveO8EdyGNPaNHSGn_w" name="DGNPF_HOLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwvuO8EdyGNPaNHSGn_w" name="DGNPF_SNAPPABLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwv-O8EdyGNPaNHSGn_w" name="DGNPF_PLANAR" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwwOO8EdyGNPaNHSGn_w" name="DGNPF_ORIENTATION" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwweO8EdyGNPaNHSGn_w" name="DGNPF_ATTRIBUTES" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwwuO8EdyGNPaNHSGn_w" name="DGNPF_MODIFIED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUww-O8EdyGNPaNHSGn_w" name="DGNPF_NEW" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwxOO8EdyGNPaNHSGn_w" name="DGNPF_LOCKED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwxeO8EdyGNPaNHSGn_w" name="DGNPF_CLASS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwxuO8EdyGNPaNHSGn_w" name="DGNEIF_DELETED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwx-O8EdyGNPaNHSGn_w" name="DGNEIF_COMPLEX" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwyOO8EdyGNPaNHSGn_w" name="DGNJ_LEFT_TOP" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwyeO8EdyGNPaNHSGn_w" name="DGNJ_LEFT_CENTER" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwyuO8EdyGNPaNHSGn_w" name="DGNJ_LEFT_BOTTOM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwy-O8EdyGNPaNHSGn_w" name="DGNJ_LEFTMARGIN_TOP" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwzOO8EdyGNPaNHSGn_w" name="DGNJ_LEFTMARGIN_CENTER" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwzeO8EdyGNPaNHSGn_w" name="DGNJ_LEFTMARGIN_BOTTOM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwzuO8EdyGNPaNHSGn_w" name="DGNJ_CENTER_TOP" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUwz-O8EdyGNPaNHSGn_w" name="DGNJ_CENTER_CENTER" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw0OO8EdyGNPaNHSGn_w" name="DGNJ_CENTER_BOTTOM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw0eO8EdyGNPaNHSGn_w" name="DGNJ_RIGHTMARGIN_TOP" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw0uO8EdyGNPaNHSGn_w" name="DGNJ_RIGHTMARGIN_CENTER" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw0-O8EdyGNPaNHSGn_w" name="DGNJ_RIGHTMARGIN_BOTTOM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw1OO8EdyGNPaNHSGn_w" name="DGNJ_RIGHT_TOP" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw1eO8EdyGNPaNHSGn_w" name="DGNJ_RIGHT_CENTER" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw1uO8EdyGNPaNHSGn_w" name="DGNJ_RIGHT_BOTTOM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw1-O8EdyGNPaNHSGn_w" name="DGNO_CAPTURE_RAW_DATA" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw2OO8EdyGNPaNHSGn_w" name="DGNLT_DMRS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw2eO8EdyGNPaNHSGn_w" name="DGNLT_INFORMIX" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw2uO8EdyGNPaNHSGn_w" name="DGNLT_ODBC" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw2-O8EdyGNPaNHSGn_w" name="DGNLT_ORACLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw3OO8EdyGNPaNHSGn_w" name="DGNLT_RIS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw3eO8EdyGNPaNHSGn_w" name="DGNLT_SYBASE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw3uO8EdyGNPaNHSGn_w" name="DGNLT_XBASE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw3-O8EdyGNPaNHSGn_w" name="DGNLT_SHAPE_FILL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw4OO8EdyGNPaNHSGn_w" name="DGNLT_ASSOC_ID" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw4eO8EdyGNPaNHSGn_w" name="DGNCF_USE_SEED_UNITS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw4uO8EdyGNPaNHSGn_w" name="DGNCF_USE_SEED_ORIGIN" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw4-O8EdyGNPaNHSGn_w" name="DGNCF_COPY_SEED_FILE_COLOR_TABLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw5OO8EdyGNPaNHSGn_w" name="DGNCF_COPY_WHOLE_SEED_FILE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw5eO8EdyGNPaNHSGn_w" name="SIZE_LONG" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw5uO8EdyGNPaNHSGn_w" name="myFileLength" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw5-O8EdyGNPaNHSGn_w" name="myVersion" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw6OO8EdyGNPaNHSGn_w" name="myDGNType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw6eO8EdyGNPaNHSGn_w" name="myXmin" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw6uO8EdyGNPaNHSGn_w" name="myYmin" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw6-O8EdyGNPaNHSGn_w" name="myXmax" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw7OO8EdyGNPaNHSGn_w" name="myYmax" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw7eO8EdyGNPaNHSGn_w" name="myZmin" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw7uO8EdyGNPaNHSGn_w" name="myZmax" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw7-O8EdyGNPaNHSGn_w" name="myMmin" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw8OO8EdyGNPaNHSGn_w" name="myMmax" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUw8eO8EdyGNPaNHSGn_w" name="myWarning" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUw8uO8EdyGNPaNHSGn_w" name="getVersion" visibility="public">
+                    <ownedParameter xmi:id="_6UUw8-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUw9OO8EdyGNPaNHSGn_w" name="getFileExtents" visibility="public">
+                    <ownedParameter xmi:id="_6UUw9eO8EdyGNPaNHSGn_w" name="return" type="_6UUyp-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUw9uO8EdyGNPaNHSGn_w" name="setWarnings" visibility="public">
+                    <ownedParameter xmi:id="_6UUw9-O8EdyGNPaNHSGn_w" name="inWarning" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUw-OO8EdyGNPaNHSGn_w" name="getHeaderLength" visibility="public">
+                    <ownedParameter xmi:id="_6UUw-eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUw-uO8EdyGNPaNHSGn_w" name="getFileLength" visibility="public">
+                    <ownedParameter xmi:id="_6UUw--O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUw_OO8EdyGNPaNHSGn_w" name="readHeader" visibility="public">
+                    <ownedParameter xmi:id="_6UUw_eO8EdyGNPaNHSGn_w" name="in" type="_6UUyqOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUw_uO8EdyGNPaNHSGn_w" name="warn" visibility="private">
+                    <ownedParameter xmi:id="_6UUw_-O8EdyGNPaNHSGn_w" name="inWarn" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUxAOO8EdyGNPaNHSGn_w" name="DGNElemTagValue">
+                  <generalization xmi:id="_6UUxAeO8EdyGNPaNHSGn_w" general="_6UUxruO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxAuO8EdyGNPaNHSGn_w" name="tagType" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxA-O8EdyGNPaNHSGn_w" name="tagSet" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxBOO8EdyGNPaNHSGn_w" name="tagIndex" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxBeO8EdyGNPaNHSGn_w" name="tagLength" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxBuO8EdyGNPaNHSGn_w" name="tagValue" visibility="public" type="_6UUxz-O8EdyGNPaNHSGn_w" association="_6UUyuuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUxB-O8EdyGNPaNHSGn_w" name="DGNElementInfo">
+                  <ownedAttribute xmi:id="_6UUxCOO8EdyGNPaNHSGn_w" name="level" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxCeO8EdyGNPaNHSGn_w" name="type" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxCuO8EdyGNPaNHSGn_w" name="stype" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxC-O8EdyGNPaNHSGn_w" name="flags" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxDOO8EdyGNPaNHSGn_w" name="offset" visibility="public" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUxDeO8EdyGNPaNHSGn_w" name="DGNElemCellLibrary">
+                  <generalization xmi:id="_6UUxDuO8EdyGNPaNHSGn_w" general="_6UUxruO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxD-O8EdyGNPaNHSGn_w" name="celltype" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxEOO8EdyGNPaNHSGn_w" name="attindx" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxEeO8EdyGNPaNHSGn_w" name="name" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxEuO8EdyGNPaNHSGn_w" name="numwords" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxE-O8EdyGNPaNHSGn_w" name="dispsymb" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxFOO8EdyGNPaNHSGn_w" name="cclass" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxFeO8EdyGNPaNHSGn_w" name="levels" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxFuO8EdyGNPaNHSGn_w" name="description" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUxF-O8EdyGNPaNHSGn_w" name="DGNReader">
+                  <ownedAttribute xmi:id="_6UUxGOO8EdyGNPaNHSGn_w" name="abyDefaultPCT" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxGeO8EdyGNPaNHSGn_w" name="LSB" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxGuO8EdyGNPaNHSGn_w" name="fin" visibility="private" type="_6UUyqeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxG-O8EdyGNPaNHSGn_w" name="bb" visibility="private" type="_6UUyqOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxHOO8EdyGNPaNHSGn_w" name="FALSE" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxHeO8EdyGNPaNHSGn_w" name="TRUE" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxHuO8EdyGNPaNHSGn_w" name="elemento" visibility="private" type="_6UUxruO8EdyGNPaNHSGn_w" association="_6UUyvOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxH-O8EdyGNPaNHSGn_w" name="info" visibility="private" type="_6UUwQ-O8EdyGNPaNHSGn_w" association="_6UUyvuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxIOO8EdyGNPaNHSGn_w" name="m_BoundingBox" visibility="private" type="_6UUyquO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxIeO8EdyGNPaNHSGn_w" name="m_colorTable" visibility="private" type="_6UUwP-O8EdyGNPaNHSGn_w" association="_6UUywOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUxIuO8EdyGNPaNHSGn_w" name="getInfo" visibility="public">
+                    <ownedParameter xmi:id="_6UUxI-O8EdyGNPaNHSGn_w" name="return" type="_6UUwQ-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxJOO8EdyGNPaNHSGn_w" name="getNumEntities" visibility="public">
+                    <ownedParameter xmi:id="_6UUxJeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxJuO8EdyGNPaNHSGn_w" name="getBoundingBox" visibility="public">
+                    <ownedParameter xmi:id="_6UUxJ-O8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxKOO8EdyGNPaNHSGn_w" name="DGNGotoElement" visibility="public">
+                    <ownedParameter xmi:id="_6UUxKeO8EdyGNPaNHSGn_w" name="element_id" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxKuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxK-O8EdyGNPaNHSGn_w" name="DGNOpen" visibility="private">
+                    <ownedParameter xmi:id="_6UUxLOO8EdyGNPaNHSGn_w" name="info" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxLeO8EdyGNPaNHSGn_w" name="bUpdate" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxLuO8EdyGNPaNHSGn_w" name="return" type="_6UUwQ-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxL-O8EdyGNPaNHSGn_w" name="DGNTestOpen" visibility="private">
+                    <ownedParameter xmi:id="_6UUxMOO8EdyGNPaNHSGn_w" name="pabyHeader" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxMeO8EdyGNPaNHSGn_w" name="nByteCount" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxMuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxM-O8EdyGNPaNHSGn_w" name="DGNLoadRawElement" visibility="private">
+                    <ownedParameter xmi:id="_6UUxNOO8EdyGNPaNHSGn_w" name="info" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxNeO8EdyGNPaNHSGn_w" name="core" type="_6UUxruO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxNuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxN-O8EdyGNPaNHSGn_w" name="DGNSpatialFilterToUOR" visibility="private">
+                    <ownedParameter xmi:id="_6UUxOOO8EdyGNPaNHSGn_w" name="info" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxOeO8EdyGNPaNHSGn_w" name="DGNInverseTransformPoint" visibility="private">
+                    <ownedParameter xmi:id="_6UUxOuO8EdyGNPaNHSGn_w" name="info" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxO-O8EdyGNPaNHSGn_w" name="punto" type="_6UUwf-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxPOO8EdyGNPaNHSGn_w" name="DGNReadElement" visibility="public">
+                    <ownedParameter xmi:id="_6UUxPeO8EdyGNPaNHSGn_w" name="return" type="_6UUxruO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxPuO8EdyGNPaNHSGn_w" name="DGNGetRawExtents" visibility="public">
+                    <ownedParameter xmi:id="_6UUxP-O8EdyGNPaNHSGn_w" name="info" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxQOO8EdyGNPaNHSGn_w" name="pabyRawData" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxQeO8EdyGNPaNHSGn_w" name="elemento" type="_6UUxruO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxQuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxQ-O8EdyGNPaNHSGn_w" name="DGN_INT32" visibility="private">
+                    <ownedParameter xmi:id="_6UUxROO8EdyGNPaNHSGn_w" name="p" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxReO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxRuO8EdyGNPaNHSGn_w" name="DGNProcessElement" visibility="private">
+                    <ownedParameter xmi:id="_6UUxR-O8EdyGNPaNHSGn_w" name="info" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxSOO8EdyGNPaNHSGn_w" name="nType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxSeO8EdyGNPaNHSGn_w" name="nLevel" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxSuO8EdyGNPaNHSGn_w" name="return" type="_6UUxruO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxS-O8EdyGNPaNHSGn_w" name="DGNParseIEEE" visibility="private">
+                    <ownedParameter xmi:id="_6UUxTOO8EdyGNPaNHSGn_w" name="d" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxTeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxTuO8EdyGNPaNHSGn_w" name="DGNParseIEEE" visibility="private">
+                    <ownedParameter xmi:id="_6UUxT-O8EdyGNPaNHSGn_w" name="b" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxUOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxUeO8EdyGNPaNHSGn_w" name="DGN2IEEEDouble" visibility="private">
+                    <ownedParameter xmi:id="_6UUxUuO8EdyGNPaNHSGn_w" name="dbl" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxU-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxVOO8EdyGNPaNHSGn_w" name="IEEE2DGNDouble" visibility="private">
+                    <ownedParameter xmi:id="_6UUxVeO8EdyGNPaNHSGn_w" name="dbl" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxVuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxV-O8EdyGNPaNHSGn_w" name="DGNElemTypeHasDispHdr" visibility="private">
+                    <ownedParameter xmi:id="_6UUxWOO8EdyGNPaNHSGn_w" name="nElemType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxWeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxWuO8EdyGNPaNHSGn_w" name="DGNParseCore" visibility="private">
+                    <ownedParameter xmi:id="_6UUxW-O8EdyGNPaNHSGn_w" name="info" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxXOO8EdyGNPaNHSGn_w" name="elemento" type="_6UUxruO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxXeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxXuO8EdyGNPaNHSGn_w" name="DGNRad50ToAscii" visibility="private">
+                    <ownedParameter xmi:id="_6UUxX-O8EdyGNPaNHSGn_w" name="rad50" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxYOO8EdyGNPaNHSGn_w" name="str" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxYeO8EdyGNPaNHSGn_w" name="DGNTransformPoint" visibility="private">
+                    <ownedParameter xmi:id="_6UUxYuO8EdyGNPaNHSGn_w" name="info" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxY-O8EdyGNPaNHSGn_w" name="psPoint" type="_6UUwf-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxZOO8EdyGNPaNHSGn_w" name="DGNParseColorTable" visibility="private">
+                    <ownedParameter xmi:id="_6UUxZeO8EdyGNPaNHSGn_w" name="psDGN" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxZuO8EdyGNPaNHSGn_w" name="return" type="_6UUxruO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxZ-O8EdyGNPaNHSGn_w" name="DGNParseTCB" visibility="private">
+                    <ownedParameter xmi:id="_6UUxaOO8EdyGNPaNHSGn_w" name="psDGN" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxaeO8EdyGNPaNHSGn_w" name="return" type="_6UUxruO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxauO8EdyGNPaNHSGn_w" name="CPL_LSBWORD32" visibility="private">
+                    <ownedParameter xmi:id="_6UUxa-O8EdyGNPaNHSGn_w" name="x" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxbOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxbeO8EdyGNPaNHSGn_w" name="CPLStrdup" visibility="private">
+                    <ownedParameter xmi:id="_6UUxbuO8EdyGNPaNHSGn_w" name="pszString" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxb-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxcOO8EdyGNPaNHSGn_w" name="DGNParseTagSet" visibility="private">
+                    <ownedParameter xmi:id="_6UUxceO8EdyGNPaNHSGn_w" name="psDGN" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxcuO8EdyGNPaNHSGn_w" name="return" type="_6UUxruO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxc-O8EdyGNPaNHSGn_w" name="DGNSetOptions" visibility="private">
+                    <ownedParameter xmi:id="_6UUxdOO8EdyGNPaNHSGn_w" name="psDGN" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxdeO8EdyGNPaNHSGn_w" name="nOptions" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxduO8EdyGNPaNHSGn_w" name="DGNSetSpatialFilter" visibility="private">
+                    <ownedParameter xmi:id="_6UUxd-O8EdyGNPaNHSGn_w" name="psDGN" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxeOO8EdyGNPaNHSGn_w" name="dfXMin" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxeeO8EdyGNPaNHSGn_w" name="dfYMin" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxeuO8EdyGNPaNHSGn_w" name="dfXMax" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxe-O8EdyGNPaNHSGn_w" name="dfYMax" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxfOO8EdyGNPaNHSGn_w" name="DGNDumpElement" visibility="public">
+                    <ownedParameter xmi:id="_6UUxfeO8EdyGNPaNHSGn_w" name="psInfo" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxfuO8EdyGNPaNHSGn_w" name="psElement" type="_6UUxruO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxf-O8EdyGNPaNHSGn_w" name="fp" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxgOO8EdyGNPaNHSGn_w" name="DGNGetLinkage" visibility="private">
+                    <ownedParameter xmi:id="_6UUxgeO8EdyGNPaNHSGn_w" name="psDGN" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxguO8EdyGNPaNHSGn_w" name="psElement" type="_6UUxruO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxg-O8EdyGNPaNHSGn_w" name="iIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxhOO8EdyGNPaNHSGn_w" name="pnLinkageType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxheO8EdyGNPaNHSGn_w" name="pnEntityNum" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxhuO8EdyGNPaNHSGn_w" name="pnMSLink" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxh-O8EdyGNPaNHSGn_w" name="pnLength" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxiOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxieO8EdyGNPaNHSGn_w" name="DGNGetAttrLinkSize" visibility="private">
+                    <ownedParameter xmi:id="_6UUxiuO8EdyGNPaNHSGn_w" name="psDGN" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxi-O8EdyGNPaNHSGn_w" name="psElement" type="_6UUxruO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxjOO8EdyGNPaNHSGn_w" name="nOffset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxjeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxjuO8EdyGNPaNHSGn_w" name="DGNTypeToName" visibility="private">
+                    <ownedParameter xmi:id="_6UUxj-O8EdyGNPaNHSGn_w" name="nType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxkOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxkeO8EdyGNPaNHSGn_w" name="DGNDumpRawElement" visibility="private">
+                    <ownedParameter xmi:id="_6UUxkuO8EdyGNPaNHSGn_w" name="psDGN" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxk-O8EdyGNPaNHSGn_w" name="psCore" type="_6UUxruO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxlOO8EdyGNPaNHSGn_w" name="fpOut" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxleO8EdyGNPaNHSGn_w" name="DGNGetExtents" visibility="private">
+                    <ownedParameter xmi:id="_6UUxluO8EdyGNPaNHSGn_w" name="psDGN" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxl-O8EdyGNPaNHSGn_w" name="padfExtents" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxmOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxmeO8EdyGNPaNHSGn_w" name="DGNBuildIndex" visibility="private">
+                    <ownedParameter xmi:id="_6UUxmuO8EdyGNPaNHSGn_w" name="psDGN" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxm-O8EdyGNPaNHSGn_w" name="DGNGetElementExtents" visibility="private">
+                    <ownedParameter xmi:id="_6UUxnOO8EdyGNPaNHSGn_w" name="psDGN" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxneO8EdyGNPaNHSGn_w" name="psElement" type="_6UUxruO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxnuO8EdyGNPaNHSGn_w" name="psMin" type="_6UUwf-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxn-O8EdyGNPaNHSGn_w" name="psMax" type="_6UUwf-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxoOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxoeO8EdyGNPaNHSGn_w" name="DGNGetElementIndex" visibility="private">
+                    <ownedParameter xmi:id="_6UUxouO8EdyGNPaNHSGn_w" name="psDGN" type="_6UUwQ-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxo-O8EdyGNPaNHSGn_w" name="pnElementCount" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxpOO8EdyGNPaNHSGn_w" name="return" type="_6UUxB-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxpeO8EdyGNPaNHSGn_w" name="DGNLookupColor" visibility="public">
+                    <ownedParameter xmi:id="_6UUxpuO8EdyGNPaNHSGn_w" name="color_index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxp-O8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxqOO8EdyGNPaNHSGn_w" name="DGNGetShapeFillInfo" visibility="public">
+                    <ownedParameter xmi:id="_6UUxqeO8EdyGNPaNHSGn_w" name="psElem" type="_6UUxruO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxquO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUxq-O8EdyGNPaNHSGn_w" name="DGNGetAssocID">
+                    <ownedParameter xmi:id="_6UUxrOO8EdyGNPaNHSGn_w" name="psElem" type="_6UUxruO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUxreO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUxruO8EdyGNPaNHSGn_w" name="DGNElemCore">
+                  <ownedAttribute xmi:id="_6UUxr-O8EdyGNPaNHSGn_w" name="offset" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxsOO8EdyGNPaNHSGn_w" name="size" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxseO8EdyGNPaNHSGn_w" name="element_id" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxsuO8EdyGNPaNHSGn_w" name="stype" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxs-O8EdyGNPaNHSGn_w" name="level" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxtOO8EdyGNPaNHSGn_w" name="type" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxteO8EdyGNPaNHSGn_w" name="complex" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxtuO8EdyGNPaNHSGn_w" name="deleted" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxt-O8EdyGNPaNHSGn_w" name="graphic_group" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxuOO8EdyGNPaNHSGn_w" name="properties" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxueO8EdyGNPaNHSGn_w" name="color" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxuuO8EdyGNPaNHSGn_w" name="weight" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxu-O8EdyGNPaNHSGn_w" name="style" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxvOO8EdyGNPaNHSGn_w" name="attr_bytes" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxveO8EdyGNPaNHSGn_w" name="attr_data" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxvuO8EdyGNPaNHSGn_w" name="raw_bytes" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxv-O8EdyGNPaNHSGn_w" name="raw_data" visibility="public" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUxwOO8EdyGNPaNHSGn_w" name="DGNTagDef">
+                  <ownedAttribute xmi:id="_6UUxweO8EdyGNPaNHSGn_w" name="name" visibility="public" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxwuO8EdyGNPaNHSGn_w" name="id" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxw-O8EdyGNPaNHSGn_w" name="prompt" visibility="public" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxxOO8EdyGNPaNHSGn_w" name="type" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxxeO8EdyGNPaNHSGn_w" name="defaultValue" visibility="public" type="_6UUxz-O8EdyGNPaNHSGn_w" association="_6UUywuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUxxuO8EdyGNPaNHSGn_w" name="DGNElemText">
+                  <generalization xmi:id="_6UUxx-O8EdyGNPaNHSGn_w" general="_6UUxruO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxyOO8EdyGNPaNHSGn_w" name="font_id" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxyeO8EdyGNPaNHSGn_w" name="justification" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxyuO8EdyGNPaNHSGn_w" name="length_mult" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxy-O8EdyGNPaNHSGn_w" name="height_mult" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxzOO8EdyGNPaNHSGn_w" name="rotation" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxzeO8EdyGNPaNHSGn_w" name="origin" visibility="public" type="_6UUwf-O8EdyGNPaNHSGn_w" association="_6UUyxOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUxzuO8EdyGNPaNHSGn_w" name="string" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUxz-O8EdyGNPaNHSGn_w" name="tagValueUnion">
+                  <ownedAttribute xmi:id="_6UUx0OO8EdyGNPaNHSGn_w" name="string" visibility="public" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx0eO8EdyGNPaNHSGn_w" name="integer" visibility="public" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx0uO8EdyGNPaNHSGn_w" name="real" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUx0-O8EdyGNPaNHSGn_w" name="DGNElemComplexHeader">
+                  <generalization xmi:id="_6UUx1OO8EdyGNPaNHSGn_w" general="_6UUxruO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx1eO8EdyGNPaNHSGn_w" name="totlength" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx1uO8EdyGNPaNHSGn_w" name="numelems" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUx1-O8EdyGNPaNHSGn_w" name="DGNElemTagSet">
+                  <generalization xmi:id="_6UUx2OO8EdyGNPaNHSGn_w" general="_6UUxruO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx2eO8EdyGNPaNHSGn_w" name="tagCount" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx2uO8EdyGNPaNHSGn_w" name="tagSet" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx2-O8EdyGNPaNHSGn_w" name="flags" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx3OO8EdyGNPaNHSGn_w" name="tagSetName" visibility="public" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx3eO8EdyGNPaNHSGn_w" name="tagList" visibility="public" type="_6UUxwOO8EdyGNPaNHSGn_w" association="_6UUyxuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUx3uO8EdyGNPaNHSGn_w" name="DGNViewInfo">
+                  <ownedAttribute xmi:id="_6UUx3-O8EdyGNPaNHSGn_w" name="flags" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx4OO8EdyGNPaNHSGn_w" name="levels" visibility="public" type="_6UKs2OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx4eO8EdyGNPaNHSGn_w" name="origin" visibility="public" type="_6UUwf-O8EdyGNPaNHSGn_w" association="_6UUyyOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx4uO8EdyGNPaNHSGn_w" name="delta" visibility="public" type="_6UUwf-O8EdyGNPaNHSGn_w" association="_6UUyyuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx4-O8EdyGNPaNHSGn_w" name="transmatrx" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx5OO8EdyGNPaNHSGn_w" name="conversion" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx5eO8EdyGNPaNHSGn_w" name="activez" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUx5uO8EdyGNPaNHSGn_w" name="DgnMemoryDriver" clientDependency="_6UUx9eO8EdyGNPaNHSGn_w _6UUx9uO8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6UUx5-O8EdyGNPaNHSGn_w" general="_6UUs3uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx6OO8EdyGNPaNHSGn_w" name="ID_FIELD_ID" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx6eO8EdyGNPaNHSGn_w" name="ID_FIELD_ENTITY" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx6uO8EdyGNPaNHSGn_w" name="ID_FIELD_LAYER" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx6-O8EdyGNPaNHSGn_w" name="ID_FIELD_COLOR" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx7OO8EdyGNPaNHSGn_w" name="ID_FIELD_HEIGHTTEXT" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx7eO8EdyGNPaNHSGn_w" name="ID_FIELD_ROTATIONTEXT" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx7uO8EdyGNPaNHSGn_w" name="ID_FIELD_TEXT" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx7-O8EdyGNPaNHSGn_w" name="m_DgnReader" type="_6UUxF-O8EdyGNPaNHSGn_w" association="_6UUyzOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx8OO8EdyGNPaNHSGn_w" name="defaultLegend" type="_6UnbseO8EdyGNPaNHSGn_w" association="_6UUyzuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx8eO8EdyGNPaNHSGn_w" name="path" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx8uO8EdyGNPaNHSGn_w" name="m_Fich" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx8-O8EdyGNPaNHSGn_w" name="attr" visibility="private" type="_6UUtbuO8EdyGNPaNHSGn_w" association="_6UUy0OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUx9OO8EdyGNPaNHSGn_w" name="labeler" visibility="private" type="_6UncoOO8EdyGNPaNHSGn_w" association="_6UUy0uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUx9eO8EdyGNPaNHSGn_w" name="VectorialFileDriver" supplier="_6UUt_OO8EdyGNPaNHSGn_w" client="_6UUx5uO8EdyGNPaNHSGn_w" contract="_6UUt_OO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUx9uO8EdyGNPaNHSGn_w" name="WithDefaultLegend" supplier="_6UUts-O8EdyGNPaNHSGn_w" client="_6UUx5uO8EdyGNPaNHSGn_w" contract="_6UUts-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUx9-O8EdyGNPaNHSGn_w" name="open" visibility="public">
+                    <ownedParameter xmi:id="_6UUx-OO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUx-eO8EdyGNPaNHSGn_w" name="initialize" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUx-uO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                    <ownedParameter xmi:id="_6UUx--O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUx_OO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                    <ownedParameter xmi:id="_6UUx_eO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUx_uO8EdyGNPaNHSGn_w" name="accept" visibility="public">
+                    <ownedParameter xmi:id="_6UUx_-O8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyAOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyAeO8EdyGNPaNHSGn_w" name="getDefaultLegend" visibility="public">
+                    <ownedParameter xmi:id="_6UUyAuO8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyA-O8EdyGNPaNHSGn_w" name="getDriverAttributes" visibility="public">
+                    <ownedParameter xmi:id="_6UUyBOO8EdyGNPaNHSGn_w" name="return" type="_6UUtbuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyBeO8EdyGNPaNHSGn_w" name="getPrimaryKeys" visibility="public">
+                    <ownedParameter xmi:id="_6UUyBuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyB-O8EdyGNPaNHSGn_w" name="write" visibility="public">
+                    <ownedParameter xmi:id="_6UUyCOO8EdyGNPaNHSGn_w" name="arg0" type="_6UdsN-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyCeO8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUyCuO8EdyGNPaNHSGn_w" name="getFile" visibility="public">
+                    <ownedParameter xmi:id="_6UUyC-O8EdyGNPaNHSGn_w" name="return" type="_6UnhgeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyDOO8EdyGNPaNHSGn_w" name="isWritable" visibility="public">
+                    <ownedParameter xmi:id="_6UUyDeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyDuO8EdyGNPaNHSGn_w" name="getDefaultLabelingStrategy" visibility="public">
+                    <ownedParameter xmi:id="_6UUyD-O8EdyGNPaNHSGn_w" name="return" type="_6UncoOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyEOO8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                    <ownedParameter xmi:id="_6UUyEeO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyEuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUyE-O8EdyGNPaNHSGn_w" name="ByteUtils">
+                  <ownedAttribute xmi:id="_6UUyFOO8EdyGNPaNHSGn_w" name="SIZE_BOOL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUyFeO8EdyGNPaNHSGn_w" name="SIZE_SHORT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUyFuO8EdyGNPaNHSGn_w" name="SIZE_INT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUyF-O8EdyGNPaNHSGn_w" name="SIZE_LONG" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUyGOO8EdyGNPaNHSGn_w" name="SIZE_DOUBLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUyGeO8EdyGNPaNHSGn_w" name="digits" visibility="public" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUyGuO8EdyGNPaNHSGn_w" name="bytesToInt" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyG-O8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyHOO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyHeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyHuO8EdyGNPaNHSGn_w" name="intToBytes" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyH-O8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyIOO8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyIeO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyIuO8EdyGNPaNHSGn_w" name="bytesToShort" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyI-O8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyJOO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyJeO8EdyGNPaNHSGn_w" name="return" type="_6UKs2OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyJuO8EdyGNPaNHSGn_w" name="shortToBytes" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyJ-O8EdyGNPaNHSGn_w" name="s" type="_6UKs2OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyKOO8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyKeO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyKuO8EdyGNPaNHSGn_w" name="bytesToLong" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyK-O8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyLOO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyLeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyLuO8EdyGNPaNHSGn_w" name="longToBytes" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyL-O8EdyGNPaNHSGn_w" name="l" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyMOO8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyMeO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyMuO8EdyGNPaNHSGn_w" name="bytesToDouble" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyM-O8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyNOO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyNeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyNuO8EdyGNPaNHSGn_w" name="doubleToBytes" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyN-O8EdyGNPaNHSGn_w" name="d" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyOOO8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyOeO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyOuO8EdyGNPaNHSGn_w" name="bytesToString" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyO-O8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyPOO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyPeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyPuO8EdyGNPaNHSGn_w" name="stringToBytes" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyP-O8EdyGNPaNHSGn_w" name="s" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyQOO8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyQeO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyQuO8EdyGNPaNHSGn_w" name="bytesToBool" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyQ-O8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyROO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyReO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyRuO8EdyGNPaNHSGn_w" name="boolToBytes" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyR-O8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUySOO8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUySeO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUySuO8EdyGNPaNHSGn_w" name="bytesToBigInteger" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyS-O8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyTOO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyTeO8EdyGNPaNHSGn_w" name="return" type="_6UUyq-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyTuO8EdyGNPaNHSGn_w" name="bigIntegerToBytes" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyT-O8EdyGNPaNHSGn_w" name="n" type="_6UUyq-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyUOO8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyUeO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyUuO8EdyGNPaNHSGn_w" name="bytesToInts" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyU-O8EdyGNPaNHSGn_w" name="dst" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyVOO8EdyGNPaNHSGn_w" name="dst_offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyVeO8EdyGNPaNHSGn_w" name="src" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyVuO8EdyGNPaNHSGn_w" name="src_offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyV-O8EdyGNPaNHSGn_w" name="length" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyWOO8EdyGNPaNHSGn_w" name="intsToBytes" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyWeO8EdyGNPaNHSGn_w" name="dst" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyWuO8EdyGNPaNHSGn_w" name="dst_offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyW-O8EdyGNPaNHSGn_w" name="src" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyXOO8EdyGNPaNHSGn_w" name="src_offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyXeO8EdyGNPaNHSGn_w" name="length" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyXuO8EdyGNPaNHSGn_w" name="byteToUnsignedInt" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyX-O8EdyGNPaNHSGn_w" name="b" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyYOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyYeO8EdyGNPaNHSGn_w" name="memcpy" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyYuO8EdyGNPaNHSGn_w" name="dst" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyY-O8EdyGNPaNHSGn_w" name="dst_offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyZOO8EdyGNPaNHSGn_w" name="src" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyZeO8EdyGNPaNHSGn_w" name="src_offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyZuO8EdyGNPaNHSGn_w" name="length" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyZ-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyaOO8EdyGNPaNHSGn_w" name="memcmp" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyaeO8EdyGNPaNHSGn_w" name="a" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyauO8EdyGNPaNHSGn_w" name="a_offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUya-O8EdyGNPaNHSGn_w" name="b" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUybOO8EdyGNPaNHSGn_w" name="b_offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUybeO8EdyGNPaNHSGn_w" name="length" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUybuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyb-O8EdyGNPaNHSGn_w" name="memclr" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUycOO8EdyGNPaNHSGn_w" name="array" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyceO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUycuO8EdyGNPaNHSGn_w" name="length" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyc-O8EdyGNPaNHSGn_w" name="round_up" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUydOO8EdyGNPaNHSGn_w" name="value" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUydeO8EdyGNPaNHSGn_w" name="multiple" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyduO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyd-O8EdyGNPaNHSGn_w" name="zero_pad" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyeOO8EdyGNPaNHSGn_w" name="original" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyeeO8EdyGNPaNHSGn_w" name="block_size" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyeuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUye-O8EdyGNPaNHSGn_w" name="equals" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyfOO8EdyGNPaNHSGn_w" name="b1" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyfeO8EdyGNPaNHSGn_w" name="b2" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyfuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyf-O8EdyGNPaNHSGn_w" name="print_bytes" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUygOO8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUygeO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyguO8EdyGNPaNHSGn_w" name="length" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyg-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyhOO8EdyGNPaNHSGn_w" name="print_bytes_exact" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyheO8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyhuO8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyh-O8EdyGNPaNHSGn_w" name="length" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyiOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyieO8EdyGNPaNHSGn_w" name="print_bytes" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyiuO8EdyGNPaNHSGn_w" name="data" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUyi-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyjOO8EdyGNPaNHSGn_w" name="croak" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyjeO8EdyGNPaNHSGn_w" name="msg" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUyjuO8EdyGNPaNHSGn_w" name="getUnsigned" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUyj-O8EdyGNPaNHSGn_w" name="b" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUykOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUykeO8EdyGNPaNHSGn_w" name="double64">
+                  <ownedAttribute xmi:id="_6UUykuO8EdyGNPaNHSGn_w" name="hi" visibility="public" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUyk-O8EdyGNPaNHSGn_w" name="lo" visibility="public" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUylOO8EdyGNPaNHSGn_w" name="DGNElemTCB">
+                  <generalization xmi:id="_6UUyleO8EdyGNPaNHSGn_w" general="_6UUxruO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUyluO8EdyGNPaNHSGn_w" name="dimension" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUyl-O8EdyGNPaNHSGn_w" name="origin_x" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUymOO8EdyGNPaNHSGn_w" name="origin_y" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUymeO8EdyGNPaNHSGn_w" name="origin_z" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUymuO8EdyGNPaNHSGn_w" name="uor_per_subunit" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUym-O8EdyGNPaNHSGn_w" name="sub_units" visibility="public" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUynOO8EdyGNPaNHSGn_w" name="subunits_per_master" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUyneO8EdyGNPaNHSGn_w" name="master_units" visibility="public" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUynuO8EdyGNPaNHSGn_w" name="views" visibility="public" type="_6UUx3uO8EdyGNPaNHSGn_w" association="_6UUy1OO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUyn-O8EdyGNPaNHSGn_w" name="TestDgn">
+                  <generalization xmi:id="_6UUyoOO8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUyoeO8EdyGNPaNHSGn_w" name="driver" type="_6UUx5uO8EdyGNPaNHSGn_w" association="_6UUy1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUyouO8EdyGNPaNHSGn_w" name="file" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUyo-O8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UUypOO8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUypeO8EdyGNPaNHSGn_w" name="setUp" visibility="protected"/>
+                  <ownedOperation xmi:id="_6UUypuO8EdyGNPaNHSGn_w" name="testInitialize" visibility="public"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUyp-O8EdyGNPaNHSGn_w" name="java.awt.geom.Rectangle2D.Double"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUyqOO8EdyGNPaNHSGn_w" name="MappedByteBuffer"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUyqeO8EdyGNPaNHSGn_w" name="FileInputStream"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUyquO8EdyGNPaNHSGn_w" name="Rectangle2D.Double"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UUyq-O8EdyGNPaNHSGn_w" name="BigInteger"/>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUyrOO8EdyGNPaNHSGn_w" memberEnd="_6UUwOOO8EdyGNPaNHSGn_w _6UUyreO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyreO8EdyGNPaNHSGn_w" name="target" type="_6UUwNuO8EdyGNPaNHSGn_w" association="_6UUyrOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUyruO8EdyGNPaNHSGn_w" memberEnd="_6UUwU-O8EdyGNPaNHSGn_w _6UUyr-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyr-O8EdyGNPaNHSGn_w" name="target" type="_6UUwQ-O8EdyGNPaNHSGn_w" association="_6UUyruO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUysOO8EdyGNPaNHSGn_w" memberEnd="_6UUwb-O8EdyGNPaNHSGn_w _6UUyseO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyseO8EdyGNPaNHSGn_w" name="target" type="_6UUwaeO8EdyGNPaNHSGn_w" association="_6UUysOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUysuO8EdyGNPaNHSGn_w" memberEnd="_6UUwcOO8EdyGNPaNHSGn_w _6UUys-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUys-O8EdyGNPaNHSGn_w" name="target" type="_6UUwaeO8EdyGNPaNHSGn_w" association="_6UUysuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUytOO8EdyGNPaNHSGn_w" memberEnd="_6UUwcuO8EdyGNPaNHSGn_w _6UUyteO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyteO8EdyGNPaNHSGn_w" name="target" type="_6UUwaeO8EdyGNPaNHSGn_w" association="_6UUytOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUytuO8EdyGNPaNHSGn_w" memberEnd="_6UUweOO8EdyGNPaNHSGn_w _6UUyt-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyt-O8EdyGNPaNHSGn_w" name="target" type="_6UUwduO8EdyGNPaNHSGn_w" association="_6UUytuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUyuOO8EdyGNPaNHSGn_w" memberEnd="_6UUwhuO8EdyGNPaNHSGn_w _6UUyueO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyueO8EdyGNPaNHSGn_w" name="target" type="_6UUwg-O8EdyGNPaNHSGn_w" association="_6UUyuOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUyuuO8EdyGNPaNHSGn_w" memberEnd="_6UUxBuO8EdyGNPaNHSGn_w _6UUyu-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyu-O8EdyGNPaNHSGn_w" name="target" type="_6UUxAOO8EdyGNPaNHSGn_w" association="_6UUyuuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUyvOO8EdyGNPaNHSGn_w" memberEnd="_6UUxHuO8EdyGNPaNHSGn_w _6UUyveO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyveO8EdyGNPaNHSGn_w" name="target" type="_6UUxF-O8EdyGNPaNHSGn_w" association="_6UUyvOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUyvuO8EdyGNPaNHSGn_w" memberEnd="_6UUxH-O8EdyGNPaNHSGn_w _6UUyv-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyv-O8EdyGNPaNHSGn_w" name="target" type="_6UUxF-O8EdyGNPaNHSGn_w" association="_6UUyvuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUywOO8EdyGNPaNHSGn_w" memberEnd="_6UUxIeO8EdyGNPaNHSGn_w _6UUyweO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyweO8EdyGNPaNHSGn_w" name="target" type="_6UUxF-O8EdyGNPaNHSGn_w" association="_6UUywOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUywuO8EdyGNPaNHSGn_w" memberEnd="_6UUxxeO8EdyGNPaNHSGn_w _6UUyw-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyw-O8EdyGNPaNHSGn_w" name="target" type="_6UUxwOO8EdyGNPaNHSGn_w" association="_6UUywuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUyxOO8EdyGNPaNHSGn_w" memberEnd="_6UUxzeO8EdyGNPaNHSGn_w _6UUyxeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyxeO8EdyGNPaNHSGn_w" name="target" type="_6UUxxuO8EdyGNPaNHSGn_w" association="_6UUyxOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUyxuO8EdyGNPaNHSGn_w" memberEnd="_6UUx3eO8EdyGNPaNHSGn_w _6UUyx-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyx-O8EdyGNPaNHSGn_w" name="target" type="_6UUx1-O8EdyGNPaNHSGn_w" association="_6UUyxuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUyyOO8EdyGNPaNHSGn_w" memberEnd="_6UUx4eO8EdyGNPaNHSGn_w _6UUyyeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyyeO8EdyGNPaNHSGn_w" name="target" type="_6UUx3uO8EdyGNPaNHSGn_w" association="_6UUyyOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUyyuO8EdyGNPaNHSGn_w" memberEnd="_6UUx4uO8EdyGNPaNHSGn_w _6UUyy-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyy-O8EdyGNPaNHSGn_w" name="target" type="_6UUx3uO8EdyGNPaNHSGn_w" association="_6UUyyuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUyzOO8EdyGNPaNHSGn_w" memberEnd="_6UUx7-O8EdyGNPaNHSGn_w _6UUyzeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyzeO8EdyGNPaNHSGn_w" name="target" type="_6UUx5uO8EdyGNPaNHSGn_w" association="_6UUyzOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUyzuO8EdyGNPaNHSGn_w" memberEnd="_6UUx8OO8EdyGNPaNHSGn_w _6UUyz-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUyz-O8EdyGNPaNHSGn_w" name="target" type="_6UUx5uO8EdyGNPaNHSGn_w" association="_6UUyzuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUy0OO8EdyGNPaNHSGn_w" memberEnd="_6UUx8-O8EdyGNPaNHSGn_w _6UUy0eO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUy0eO8EdyGNPaNHSGn_w" name="target" type="_6UUx5uO8EdyGNPaNHSGn_w" association="_6UUy0OO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUy0uO8EdyGNPaNHSGn_w" memberEnd="_6UUx9OO8EdyGNPaNHSGn_w _6UUy0-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUy0-O8EdyGNPaNHSGn_w" name="target" type="_6UUx5uO8EdyGNPaNHSGn_w" association="_6UUy0uO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUy1OO8EdyGNPaNHSGn_w" memberEnd="_6UUynuO8EdyGNPaNHSGn_w _6UUy1eO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUy1eO8EdyGNPaNHSGn_w" name="target" type="_6UUylOO8EdyGNPaNHSGn_w" association="_6UUy1OO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UUy1uO8EdyGNPaNHSGn_w" memberEnd="_6UUyoeO8EdyGNPaNHSGn_w _6UUy1-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UUy1-O8EdyGNPaNHSGn_w" name="target" type="_6UUyn-O8EdyGNPaNHSGn_w" association="_6UUy1uO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UUy2OO8EdyGNPaNHSGn_w" name="dxf">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UUy2eO8EdyGNPaNHSGn_w" name="DXFMemoryDriver" clientDependency="_6UUy5uO8EdyGNPaNHSGn_w _6UUy5-O8EdyGNPaNHSGn_w _6UUy6OO8EdyGNPaNHSGn_w _6UUy6eO8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6UUy2uO8EdyGNPaNHSGn_w" general="_6UUtGOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUy2-O8EdyGNPaNHSGn_w" name="tempDirectoryPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUy3OO8EdyGNPaNHSGn_w" name="dxfWriter" visibility="private" type="_6Udx6uO8EdyGNPaNHSGn_w" association="_6UdnyOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUy3eO8EdyGNPaNHSGn_w" name="fTemp" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUy3uO8EdyGNPaNHSGn_w" name="defaultLegend" type="_6UnbseO8EdyGNPaNHSGn_w" association="_6UdnyuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUy3-O8EdyGNPaNHSGn_w" name="m_Fich" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUy4OO8EdyGNPaNHSGn_w" name="featureMaker" visibility="private" type="_6UdnxOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUy4eO8EdyGNPaNHSGn_w" name="dxfFeatureFile" visibility="private" type="_6UdnxeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUy4uO8EdyGNPaNHSGn_w" name="features" visibility="private" type="_6UdnxuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUy4-O8EdyGNPaNHSGn_w" name="attr" visibility="private" type="_6UUtbuO8EdyGNPaNHSGn_w" association="_6UdnzOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUy5OO8EdyGNPaNHSGn_w" name="headerManager" visibility="private" type="_6Udnx-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UUy5eO8EdyGNPaNHSGn_w" name="labeling" visibility="private" type="_6UndiOO8EdyGNPaNHSGn_w" association="_6UdnzuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUy5uO8EdyGNPaNHSGn_w" name="VectorialFileDriver" supplier="_6UUt_OO8EdyGNPaNHSGn_w" client="_6UUy2eO8EdyGNPaNHSGn_w" contract="_6UUt_OO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUy5-O8EdyGNPaNHSGn_w" name="WithDefaultLegend" supplier="_6UUts-O8EdyGNPaNHSGn_w" client="_6UUy2eO8EdyGNPaNHSGn_w" contract="_6UUts-O8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUy6OO8EdyGNPaNHSGn_w" name="ISpatialWriter" supplier="_6UdtjuO8EdyGNPaNHSGn_w" client="_6UUy2eO8EdyGNPaNHSGn_w" contract="_6UdtjuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UUy6eO8EdyGNPaNHSGn_w" name="IWriteable" supplier="_6UdtUuO8EdyGNPaNHSGn_w" client="_6UUy2eO8EdyGNPaNHSGn_w" contract="_6UdtUuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UUy6uO8EdyGNPaNHSGn_w" name="open" visibility="public">
+                    <ownedParameter xmi:id="_6UUy6-O8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUy7OO8EdyGNPaNHSGn_w" name="initialize" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUy7eO8EdyGNPaNHSGn_w" name="accept" visibility="public">
+                    <ownedParameter xmi:id="_6UUy7uO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUy7-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUy8OO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                    <ownedParameter xmi:id="_6UUy8eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUy8uO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                    <ownedParameter xmi:id="_6UUy8-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUy9OO8EdyGNPaNHSGn_w" name="getDefaultLegend" visibility="public">
+                    <ownedParameter xmi:id="_6UUy9eO8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUy9uO8EdyGNPaNHSGn_w" name="getDriverAttributes" visibility="public">
+                    <ownedParameter xmi:id="_6UUy9-O8EdyGNPaNHSGn_w" name="return" type="_6UUtbuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUy-OO8EdyGNPaNHSGn_w" name="getPrimaryKeys" visibility="public">
+                    <ownedParameter xmi:id="_6UUy-eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUy-uO8EdyGNPaNHSGn_w" name="write" visibility="public">
+                    <ownedParameter xmi:id="_6UUy--O8EdyGNPaNHSGn_w" name="arg0" type="_6UdsN-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUy_OO8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUy_eO8EdyGNPaNHSGn_w" name="getFile" visibility="public">
+                    <ownedParameter xmi:id="_6UUy_uO8EdyGNPaNHSGn_w" name="return" type="_6UnhgeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUy_-O8EdyGNPaNHSGn_w" name="canWriteGeometry" visibility="public">
+                    <ownedParameter xmi:id="_6UUzAOO8EdyGNPaNHSGn_w" name="gvSIGgeometryType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUzAeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUzAuO8EdyGNPaNHSGn_w" name="initialize" visibility="public">
+                    <ownedParameter xmi:id="_6UUzA-O8EdyGNPaNHSGn_w" name="layerDef" type="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUzBOO8EdyGNPaNHSGn_w" name="preProcess" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUzBeO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6UUzBuO8EdyGNPaNHSGn_w" name="row" type="_6UdsWuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUzB-O8EdyGNPaNHSGn_w" name="postProcess" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUzCOO8EdyGNPaNHSGn_w" name="getCapability" visibility="public">
+                    <ownedParameter xmi:id="_6UUzCeO8EdyGNPaNHSGn_w" name="capability" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUzCuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUzC-O8EdyGNPaNHSGn_w" name="setCapabilities" visibility="public">
+                    <ownedParameter xmi:id="_6UUzDOO8EdyGNPaNHSGn_w" name="capabilities" type="_6UUwJuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUzDeO8EdyGNPaNHSGn_w" name="canWriteAttribute" visibility="public">
+                    <ownedParameter xmi:id="_6UUzDuO8EdyGNPaNHSGn_w" name="sqlType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUzD-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUzEOO8EdyGNPaNHSGn_w" name="reload" visibility="public"/>
+                  <ownedOperation xmi:id="_6UUzEeO8EdyGNPaNHSGn_w" name="isWritable" visibility="public">
+                    <ownedParameter xmi:id="_6UUzEuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUzE-O8EdyGNPaNHSGn_w" name="getWriter" visibility="public">
+                    <ownedParameter xmi:id="_6UUzFOO8EdyGNPaNHSGn_w" name="return" type="_6UdsrOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUzFeO8EdyGNPaNHSGn_w" name="getTableDefinition" visibility="public">
+                    <ownedParameter xmi:id="_6UUzFuO8EdyGNPaNHSGn_w" name="return" type="_6UUrbOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUzF-O8EdyGNPaNHSGn_w" name="canAlterTable" visibility="public">
+                    <ownedParameter xmi:id="_6UUzGOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUzGeO8EdyGNPaNHSGn_w" name="canSaveEdits" visibility="public">
+                    <ownedParameter xmi:id="_6UUzGuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUzG-O8EdyGNPaNHSGn_w" name="getCadSource" visibility="public">
+                    <ownedParameter xmi:id="_6UUzHOO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUzHeO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUzHuO8EdyGNPaNHSGn_w" name="isWriteAll" visibility="public">
+                    <ownedParameter xmi:id="_6UUzH-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUzIOO8EdyGNPaNHSGn_w" name="getDefaultLabelingStrategy" visibility="public">
+                    <ownedParameter xmi:id="_6UUzIeO8EdyGNPaNHSGn_w" name="return" type="_6UncoOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UUzIuO8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                    <ownedParameter xmi:id="_6UUzI-O8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UUzJOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Package" xmi:id="_6UUzJeO8EdyGNPaNHSGn_w" name="write">
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UUzJuO8EdyGNPaNHSGn_w" name="DxfGisWriter">
+                    <ownedAttribute xmi:id="_6UUzJ-O8EdyGNPaNHSGn_w" name="entityMaker" visibility="private" type="_6UdnxOO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUzKOO8EdyGNPaNHSGn_w" name="dxfFile" visibility="private" type="_6UdnxeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UUzKeO8EdyGNPaNHSGn_w" name="proj" visibility="private" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UUzKuO8EdyGNPaNHSGn_w" name="write" visibility="public">
+                      <ownedParameter xmi:id="_6UUzK-O8EdyGNPaNHSGn_w" name="geometries" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUzLOO8EdyGNPaNHSGn_w" name="file" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUzLeO8EdyGNPaNHSGn_w" name="createPolygon3D" visibility="private">
+                      <ownedParameter xmi:id="_6UUzLuO8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUzL-O8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUzMOO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUzMeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUzMuO8EdyGNPaNHSGn_w" name="createPolygon2D" visibility="private">
+                      <ownedParameter xmi:id="_6UUzM-O8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUzNOO8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUzNeO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUzNuO8EdyGNPaNHSGn_w" name="createPolyline3D" visibility="private">
+                      <ownedParameter xmi:id="_6UUzN-O8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUzOOO8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUzOeO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUzOuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUzO-O8EdyGNPaNHSGn_w" name="createLwPolyline2D" visibility="private">
+                      <ownedParameter xmi:id="_6UUzPOO8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUzPeO8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUzPuO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUzP-O8EdyGNPaNHSGn_w" name="createPoint3D" visibility="private">
+                      <ownedParameter xmi:id="_6UUzQOO8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUzQeO8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUzQuO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UUzQ-O8EdyGNPaNHSGn_w" name="createPoint2D" visibility="private">
+                      <ownedParameter xmi:id="_6UUzROO8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UUzReO8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdnwOO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdnweO8EdyGNPaNHSGn_w" name="constantElevation" visibility="private">
+                      <ownedParameter xmi:id="_6UdnwuO8EdyGNPaNHSGn_w" name="velev" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udnw-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdnxOO8EdyGNPaNHSGn_w" name="DxfFile.EntityFactory"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdnxeO8EdyGNPaNHSGn_w" name="DxfFile"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdnxuO8EdyGNPaNHSGn_w" name="IObjList.vector"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6Udnx-O8EdyGNPaNHSGn_w" name="DxfFile.VarSettings"/>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdnyOO8EdyGNPaNHSGn_w" memberEnd="_6UUy3OO8EdyGNPaNHSGn_w _6UdnyeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdnyeO8EdyGNPaNHSGn_w" name="target" type="_6UUy2eO8EdyGNPaNHSGn_w" association="_6UdnyOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdnyuO8EdyGNPaNHSGn_w" memberEnd="_6UUy3uO8EdyGNPaNHSGn_w _6Udny-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6Udny-O8EdyGNPaNHSGn_w" name="target" type="_6UUy2eO8EdyGNPaNHSGn_w" association="_6UdnyuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdnzOO8EdyGNPaNHSGn_w" memberEnd="_6UUy4-O8EdyGNPaNHSGn_w _6UdnzeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdnzeO8EdyGNPaNHSGn_w" name="target" type="_6UUy2eO8EdyGNPaNHSGn_w" association="_6UdnzOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdnzuO8EdyGNPaNHSGn_w" memberEnd="_6UUy5eO8EdyGNPaNHSGn_w _6Udnz-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6Udnz-O8EdyGNPaNHSGn_w" name="target" type="_6UUy2eO8EdyGNPaNHSGn_w" association="_6UdnzuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6Udn0OO8EdyGNPaNHSGn_w" name="featureiterators">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Udn0eO8EdyGNPaNHSGn_w" name="DefaultFeatureIterator" clientDependency="_6Udn2OO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6Udn0uO8EdyGNPaNHSGn_w" name="sourceProjection" visibility="protected" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udn0-O8EdyGNPaNHSGn_w" name="targetProjection" visibility="protected" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udn1OO8EdyGNPaNHSGn_w" name="fieldNames" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udn1eO8EdyGNPaNHSGn_w" name="source" visibility="protected" type="_6Ud2MeO8EdyGNPaNHSGn_w" association="_6UdoceO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udn1uO8EdyGNPaNHSGn_w" name="recordset" visibility="protected" type="_6Ud0m-O8EdyGNPaNHSGn_w" association="_6Udoc-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udn1-O8EdyGNPaNHSGn_w" name="currentFeature" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6Udn2OO8EdyGNPaNHSGn_w" name="IFeatureIterator" supplier="_6UUu1OO8EdyGNPaNHSGn_w" client="_6Udn0eO8EdyGNPaNHSGn_w" contract="_6UUu1OO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Udn2eO8EdyGNPaNHSGn_w" name="hasNext" visibility="public">
+                    <ownedParameter xmi:id="_6Udn2uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udn2-O8EdyGNPaNHSGn_w" name="next" visibility="public">
+                    <ownedParameter xmi:id="_6Udn3OO8EdyGNPaNHSGn_w" name="return" type="_6UUetuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udn3eO8EdyGNPaNHSGn_w" name="closeIterator" visibility="public"/>
+                  <ownedOperation xmi:id="_6Udn3uO8EdyGNPaNHSGn_w" name="getFieldNames" visibility="public">
+                    <ownedParameter xmi:id="_6Udn3-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udn4OO8EdyGNPaNHSGn_w" name="setFieldNames" visibility="public">
+                    <ownedParameter xmi:id="_6Udn4eO8EdyGNPaNHSGn_w" name="fieldNames" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udn4uO8EdyGNPaNHSGn_w" name="getTargetProjection" visibility="public">
+                    <ownedParameter xmi:id="_6Udn4-O8EdyGNPaNHSGn_w" name="return" type="_6UnhiuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udn5OO8EdyGNPaNHSGn_w" name="setTargetProjection" visibility="public">
+                    <ownedParameter xmi:id="_6Udn5eO8EdyGNPaNHSGn_w" name="targetProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udn5uO8EdyGNPaNHSGn_w" name="getSourceProjection" visibility="public">
+                    <ownedParameter xmi:id="_6Udn5-O8EdyGNPaNHSGn_w" name="return" type="_6UnhiuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udn6OO8EdyGNPaNHSGn_w" name="setSourceProjection" visibility="public">
+                    <ownedParameter xmi:id="_6Udn6eO8EdyGNPaNHSGn_w" name="sourceProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udn6uO8EdyGNPaNHSGn_w" name="reprojectIfNecessary" visibility="protected">
+                    <ownedParameter xmi:id="_6Udn6-O8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udn7OO8EdyGNPaNHSGn_w" name="getValues" visibility="protected">
+                    <ownedParameter xmi:id="_6Udn7eO8EdyGNPaNHSGn_w" name="featureIdx" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udn7uO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Udn7-O8EdyGNPaNHSGn_w" name="AttrQueryFeatureIterator">
+                  <generalization xmi:id="_6Udn8OO8EdyGNPaNHSGn_w" general="_6Udn0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udn8eO8EdyGNPaNHSGn_w" name="sqlQuery" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udn8uO8EdyGNPaNHSGn_w" name="indexes" visibility="private" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Udn8-O8EdyGNPaNHSGn_w" name="hasNext" visibility="public">
+                    <ownedParameter xmi:id="_6Udn9OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udn9eO8EdyGNPaNHSGn_w" name="hasWhere" visibility="private">
+                    <ownedParameter xmi:id="_6Udn9uO8EdyGNPaNHSGn_w" name="expression" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udn9-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udn-OO8EdyGNPaNHSGn_w" name="next" visibility="public">
+                    <ownedParameter xmi:id="_6Udn-eO8EdyGNPaNHSGn_w" name="return" type="_6UUetuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Udn-uO8EdyGNPaNHSGn_w" name="IndexedSptQueryFeatureIterator">
+                  <generalization xmi:id="_6Udn--O8EdyGNPaNHSGn_w" general="_6UdoD-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udn_OO8EdyGNPaNHSGn_w" name="spatialIndex" visibility="private" type="_6UneoOO8EdyGNPaNHSGn_w" association="_6UdodeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udn_eO8EdyGNPaNHSGn_w" name="resultIdx" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udn_uO8EdyGNPaNHSGn_w" name="fastIteration" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Udn_-O8EdyGNPaNHSGn_w" name="hasNext" visibility="public">
+                    <ownedParameter xmi:id="_6UdoAOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoAeO8EdyGNPaNHSGn_w" name="next" visibility="public">
+                    <ownedParameter xmi:id="_6UdoAuO8EdyGNPaNHSGn_w" name="return" type="_6UUetuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdoA-O8EdyGNPaNHSGn_w" name="ReprojectWrapperFeatureIterator" clientDependency="_6UdoB-O8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdoBOO8EdyGNPaNHSGn_w" name="featureIterator" type="_6UUu1OO8EdyGNPaNHSGn_w" association="_6Udod-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoBeO8EdyGNPaNHSGn_w" name="sourceProjection" visibility="protected" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoBuO8EdyGNPaNHSGn_w" name="targetProjection" visibility="protected" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdoB-O8EdyGNPaNHSGn_w" name="IFeatureIterator" supplier="_6UUu1OO8EdyGNPaNHSGn_w" client="_6UdoA-O8EdyGNPaNHSGn_w" contract="_6UUu1OO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdoCOO8EdyGNPaNHSGn_w" name="hasNext" visibility="public">
+                    <ownedParameter xmi:id="_6UdoCeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoCuO8EdyGNPaNHSGn_w" name="next" visibility="public">
+                    <ownedParameter xmi:id="_6UdoC-O8EdyGNPaNHSGn_w" name="return" type="_6UUetuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoDOO8EdyGNPaNHSGn_w" name="closeIterator" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdoDeO8EdyGNPaNHSGn_w" name="reprojectIfNecessary" visibility="protected">
+                    <ownedParameter xmi:id="_6UdoDuO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdoD-O8EdyGNPaNHSGn_w" name="SpatialQueryFeatureIterator">
+                  <generalization xmi:id="_6UdoEOO8EdyGNPaNHSGn_w" general="_6Udn0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoEeO8EdyGNPaNHSGn_w" name="rect" visibility="protected" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoEuO8EdyGNPaNHSGn_w" name="spatialChecker" visibility="protected" type="_6UdoHeO8EdyGNPaNHSGn_w" association="_6UdoeeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoE-O8EdyGNPaNHSGn_w" name="nextFeature" type="_6UUetuO8EdyGNPaNHSGn_w" association="_6Udoe-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoFOO8EdyGNPaNHSGn_w" name="BOUNDED_SHAPES_FACTOR" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdoFeO8EdyGNPaNHSGn_w" name="getRect" visibility="public">
+                    <ownedParameter xmi:id="_6UdoFuO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoF-O8EdyGNPaNHSGn_w" name="setRect" visibility="public">
+                    <ownedParameter xmi:id="_6UdoGOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoGeO8EdyGNPaNHSGn_w" name="hasNext" visibility="public">
+                    <ownedParameter xmi:id="_6UdoGuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoG-O8EdyGNPaNHSGn_w" name="next" visibility="public">
+                    <ownedParameter xmi:id="_6UdoHOO8EdyGNPaNHSGn_w" name="return" type="_6UUetuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UdoHeO8EdyGNPaNHSGn_w" name="ISpatialCheck">
+                  <ownedOperation xmi:id="_6UdoHuO8EdyGNPaNHSGn_w" name="intersects" visibility="public">
+                    <ownedParameter xmi:id="_6UdoH-O8EdyGNPaNHSGn_w" name="extent" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdoIOO8EdyGNPaNHSGn_w" name="featureIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdoIeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoIuO8EdyGNPaNHSGn_w" name="returnShapes" visibility="public">
+                    <ownedParameter xmi:id="_6UdoI-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoJOO8EdyGNPaNHSGn_w" name="getLastGeometry" visibility="public">
+                    <ownedParameter xmi:id="_6UdoJeO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoJuO8EdyGNPaNHSGn_w" name="getIndexOfLast" visibility="public">
+                    <ownedParameter xmi:id="_6UdoJ-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UdoKOO8EdyGNPaNHSGn_w" name="BoundsProvider">
+                  <ownedOperation xmi:id="_6UdoKeO8EdyGNPaNHSGn_w" name="getBounds" visibility="public">
+                    <ownedParameter xmi:id="_6UdoKuO8EdyGNPaNHSGn_w" name="featureIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdoK-O8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoLOO8EdyGNPaNHSGn_w" name="returnShapes" visibility="public">
+                    <ownedParameter xmi:id="_6UdoLeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoLuO8EdyGNPaNHSGn_w" name="getLastGeometry" visibility="public">
+                    <ownedParameter xmi:id="_6UdoL-O8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdoMOO8EdyGNPaNHSGn_w" name="BoundedShapesProvider" clientDependency="_6UdoMuO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdoMeO8EdyGNPaNHSGn_w" name="boundedShapes" type="_6UUrZeO8EdyGNPaNHSGn_w" association="_6UdofeO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdoMuO8EdyGNPaNHSGn_w" name="BoundsProvider" supplier="_6UdoKOO8EdyGNPaNHSGn_w" client="_6UdoMOO8EdyGNPaNHSGn_w" contract="_6UdoKOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdoM-O8EdyGNPaNHSGn_w" name="getBounds" visibility="public">
+                    <ownedParameter xmi:id="_6UdoNOO8EdyGNPaNHSGn_w" name="featureIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdoNeO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoNuO8EdyGNPaNHSGn_w" name="returnShapes" visibility="public">
+                    <ownedParameter xmi:id="_6UdoN-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoOOO8EdyGNPaNHSGn_w" name="getLastGeometry" visibility="public">
+                    <ownedParameter xmi:id="_6UdoOeO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdoOuO8EdyGNPaNHSGn_w" name="IGeometryBoundProvider" clientDependency="_6UdoPeO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdoO-O8EdyGNPaNHSGn_w" name="source" type="_6Ud2MeO8EdyGNPaNHSGn_w" association="_6Udof-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoPOO8EdyGNPaNHSGn_w" name="lastGeometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdoPeO8EdyGNPaNHSGn_w" name="BoundsProvider" supplier="_6UdoKOO8EdyGNPaNHSGn_w" client="_6UdoOuO8EdyGNPaNHSGn_w" contract="_6UdoKOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdoPuO8EdyGNPaNHSGn_w" name="getBounds" visibility="public">
+                    <ownedParameter xmi:id="_6UdoP-O8EdyGNPaNHSGn_w" name="featureIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdoQOO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoQeO8EdyGNPaNHSGn_w" name="getLastGeometry" visibility="public">
+                    <ownedParameter xmi:id="_6UdoQuO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoQ-O8EdyGNPaNHSGn_w" name="returnShapes" visibility="public">
+                    <ownedParameter xmi:id="_6UdoROO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdoReO8EdyGNPaNHSGn_w" name="FastSpatialCheck" clientDependency="_6UdoSOO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdoRuO8EdyGNPaNHSGn_w" name="boundProvider" type="_6UdoKOO8EdyGNPaNHSGn_w" association="_6UdogeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoR-O8EdyGNPaNHSGn_w" name="lastIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdoSOO8EdyGNPaNHSGn_w" name="ISpatialCheck" supplier="_6UdoHeO8EdyGNPaNHSGn_w" client="_6UdoReO8EdyGNPaNHSGn_w" contract="_6UdoHeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdoSeO8EdyGNPaNHSGn_w" name="isBoundedShapesNecessary" visibility="protected">
+                    <ownedParameter xmi:id="_6UdoSuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoS-O8EdyGNPaNHSGn_w" name="intersects" visibility="public">
+                    <ownedParameter xmi:id="_6UdoTOO8EdyGNPaNHSGn_w" name="extent" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdoTeO8EdyGNPaNHSGn_w" name="featureIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdoTuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoT-O8EdyGNPaNHSGn_w" name="getBoundsProvider" visibility="public">
+                    <ownedParameter xmi:id="_6UdoUOO8EdyGNPaNHSGn_w" name="return" type="_6UdoKOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoUeO8EdyGNPaNHSGn_w" name="returnShapes" visibility="public">
+                    <ownedParameter xmi:id="_6UdoUuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoU-O8EdyGNPaNHSGn_w" name="getLastGeometry" visibility="public">
+                    <ownedParameter xmi:id="_6UdoVOO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoVeO8EdyGNPaNHSGn_w" name="getIndexOfLast" visibility="public">
+                    <ownedParameter xmi:id="_6UdoVuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdoV-O8EdyGNPaNHSGn_w" name="PrecisseSpatialCheck" clientDependency="_6UdoWuO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdoWOO8EdyGNPaNHSGn_w" name="lastGeometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoWeO8EdyGNPaNHSGn_w" name="lastIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdoWuO8EdyGNPaNHSGn_w" name="ISpatialCheck" supplier="_6UdoHeO8EdyGNPaNHSGn_w" client="_6UdoV-O8EdyGNPaNHSGn_w" contract="_6UdoHeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdoW-O8EdyGNPaNHSGn_w" name="intersects" visibility="public">
+                    <ownedParameter xmi:id="_6UdoXOO8EdyGNPaNHSGn_w" name="extent" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdoXeO8EdyGNPaNHSGn_w" name="featureIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdoXuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoX-O8EdyGNPaNHSGn_w" name="returnShapes" visibility="public">
+                    <ownedParameter xmi:id="_6UdoYOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoYeO8EdyGNPaNHSGn_w" name="getLastGeometry" visibility="public">
+                    <ownedParameter xmi:id="_6UdoYuO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoY-O8EdyGNPaNHSGn_w" name="getIndexOfLast" visibility="public">
+                    <ownedParameter xmi:id="_6UdoZOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdoZeO8EdyGNPaNHSGn_w" name="RandomAccessFeatureIterator" clientDependency="_6Udoa-O8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdoZuO8EdyGNPaNHSGn_w" name="drv" type="_6UUuxeO8EdyGNPaNHSGn_w" association="_6Udog-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoZ-O8EdyGNPaNHSGn_w" name="ds" type="_6Ud0m-O8EdyGNPaNHSGn_w" association="_6UdoheO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoaOO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoaeO8EdyGNPaNHSGn_w" name="epsg" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoauO8EdyGNPaNHSGn_w" name="numRec" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6Udoa-O8EdyGNPaNHSGn_w" name="IFeatureIterator" supplier="_6UUu1OO8EdyGNPaNHSGn_w" client="_6UdoZeO8EdyGNPaNHSGn_w" contract="_6UUu1OO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdobOO8EdyGNPaNHSGn_w" name="hasNext" visibility="public">
+                    <ownedParameter xmi:id="_6UdobeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdobuO8EdyGNPaNHSGn_w" name="next" visibility="public">
+                    <ownedParameter xmi:id="_6Udob-O8EdyGNPaNHSGn_w" name="return" type="_6UUetuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdocOO8EdyGNPaNHSGn_w" name="closeIterator" visibility="public"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdoceO8EdyGNPaNHSGn_w" memberEnd="_6Udn1eO8EdyGNPaNHSGn_w _6UdocuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdocuO8EdyGNPaNHSGn_w" name="target" type="_6Udn0eO8EdyGNPaNHSGn_w" association="_6UdoceO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Udoc-O8EdyGNPaNHSGn_w" memberEnd="_6Udn1uO8EdyGNPaNHSGn_w _6UdodOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdodOO8EdyGNPaNHSGn_w" name="target" type="_6Udn0eO8EdyGNPaNHSGn_w" association="_6Udoc-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdodeO8EdyGNPaNHSGn_w" memberEnd="_6Udn_OO8EdyGNPaNHSGn_w _6UdoduO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdoduO8EdyGNPaNHSGn_w" name="target" type="_6Udn-uO8EdyGNPaNHSGn_w" association="_6UdodeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Udod-O8EdyGNPaNHSGn_w" memberEnd="_6UdoBOO8EdyGNPaNHSGn_w _6UdoeOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdoeOO8EdyGNPaNHSGn_w" name="target" type="_6UdoA-O8EdyGNPaNHSGn_w" association="_6Udod-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdoeeO8EdyGNPaNHSGn_w" memberEnd="_6UdoEuO8EdyGNPaNHSGn_w _6UdoeuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdoeuO8EdyGNPaNHSGn_w" name="target" type="_6UdoD-O8EdyGNPaNHSGn_w" association="_6UdoeeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Udoe-O8EdyGNPaNHSGn_w" memberEnd="_6UdoE-O8EdyGNPaNHSGn_w _6UdofOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdofOO8EdyGNPaNHSGn_w" name="target" type="_6UdoD-O8EdyGNPaNHSGn_w" association="_6Udoe-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdofeO8EdyGNPaNHSGn_w" memberEnd="_6UdoMeO8EdyGNPaNHSGn_w _6UdofuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdofuO8EdyGNPaNHSGn_w" name="target" type="_6UdoMOO8EdyGNPaNHSGn_w" association="_6UdofeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Udof-O8EdyGNPaNHSGn_w" memberEnd="_6UdoO-O8EdyGNPaNHSGn_w _6UdogOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdogOO8EdyGNPaNHSGn_w" name="target" type="_6UdoOuO8EdyGNPaNHSGn_w" association="_6Udof-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdogeO8EdyGNPaNHSGn_w" memberEnd="_6UdoRuO8EdyGNPaNHSGn_w _6UdoguO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdoguO8EdyGNPaNHSGn_w" name="target" type="_6UdoReO8EdyGNPaNHSGn_w" association="_6UdogeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Udog-O8EdyGNPaNHSGn_w" memberEnd="_6UdoZuO8EdyGNPaNHSGn_w _6UdohOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdohOO8EdyGNPaNHSGn_w" name="target" type="_6UdoZeO8EdyGNPaNHSGn_w" association="_6Udog-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdoheO8EdyGNPaNHSGn_w" memberEnd="_6UdoZ-O8EdyGNPaNHSGn_w _6UdohuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdohuO8EdyGNPaNHSGn_w" name="target" type="_6UdoZeO8EdyGNPaNHSGn_w" association="_6UdoheO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6Udoh-O8EdyGNPaNHSGn_w" name="gml">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdoiOO8EdyGNPaNHSGn_w" name="GMLTypesConversor">
+                  <ownedOperation xmi:id="_6UdoieO8EdyGNPaNHSGn_w" name="featureTypefromGvSIGToGeotools" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UdoiuO8EdyGNPaNHSGn_w" name="lyrDef" type="_6UUuP-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udoi-O8EdyGNPaNHSGn_w" name="return" type="_6UdpAuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdojOO8EdyGNPaNHSGn_w" name="attributteTypefromGvSIGToGeotools" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UdojeO8EdyGNPaNHSGn_w" name="fDescrition" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdojuO8EdyGNPaNHSGn_w" name="return" type="_6UdpA-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udoj-O8EdyGNPaNHSGn_w" name="typesFromgvSIGtoGeotools" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UdokOO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdokeO8EdyGNPaNHSGn_w" name="return" type="_6UUiGOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdokuO8EdyGNPaNHSGn_w" name="gvSIGToXlinkTypes" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6Udok-O8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdolOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoleO8EdyGNPaNHSGn_w" name="gvSIGToGMLTypes" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UdoluO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udol-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdomOO8EdyGNPaNHSGn_w" name="gmlToJavaTypes" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UdomeO8EdyGNPaNHSGn_w" name="gmlType" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdomuO8EdyGNPaNHSGn_w" name="return" type="_6UUiGOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udom-O8EdyGNPaNHSGn_w" name="javaToGvSIGTypes" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UdonOO8EdyGNPaNHSGn_w" name="type" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdoneO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdonuO8EdyGNPaNHSGn_w" name="gmlToGvSigType" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6Udon-O8EdyGNPaNHSGn_w" name="gmlType" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdooOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdooeO8EdyGNPaNHSGn_w" name="GMLUtils">
+                  <ownedOperation xmi:id="_6UdoouO8EdyGNPaNHSGn_w" name="getValues" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6Udoo-O8EdyGNPaNHSGn_w" name="attr" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdopOO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdopeO8EdyGNPaNHSGn_w" name="isGeometry" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UdopuO8EdyGNPaNHSGn_w" name="attributeType" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udop-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoqOO8EdyGNPaNHSGn_w" name="isGeometry" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UdoqeO8EdyGNPaNHSGn_w" name="attributeType" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdoquO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Udoq-O8EdyGNPaNHSGn_w" name="GMLDriver" clientDependency="_6UdotOO8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6UdorOO8EdyGNPaNHSGn_w" general="_6UUuZOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoreO8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoruO8EdyGNPaNHSGn_w" name="m_Fich" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udor-O8EdyGNPaNHSGn_w" name="factory" visibility="private" type="_6UdpBOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdosOO8EdyGNPaNHSGn_w" name="hashRelate" visibility="private" type="_6UdsL-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdoseO8EdyGNPaNHSGn_w" name="features" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdosuO8EdyGNPaNHSGn_w" name="iterator" visibility="private" type="_6UdpBeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udos-O8EdyGNPaNHSGn_w" name="reader" visibility="private" type="_6UdpBuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdotOO8EdyGNPaNHSGn_w" name="VectorialFileDriver" supplier="_6UUt_OO8EdyGNPaNHSGn_w" client="_6Udoq-O8EdyGNPaNHSGn_w" contract="_6UUt_OO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdoteO8EdyGNPaNHSGn_w" name="open" visibility="public">
+                    <ownedParameter xmi:id="_6UdotuO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udot-O8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdouOO8EdyGNPaNHSGn_w" name="initialize" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdoueO8EdyGNPaNHSGn_w" name="accept" visibility="public">
+                    <ownedParameter xmi:id="_6UdouuO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udou-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdovOO8EdyGNPaNHSGn_w" name="getFile" visibility="public">
+                    <ownedParameter xmi:id="_6UdoveO8EdyGNPaNHSGn_w" name="return" type="_6UnhgeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdovuO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                    <ownedParameter xmi:id="_6Udov-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdowOO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                    <ownedParameter xmi:id="_6UdoweO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdowuO8EdyGNPaNHSGn_w" name="getHashRelate" visibility="public">
+                    <ownedParameter xmi:id="_6Udow-O8EdyGNPaNHSGn_w" name="return" type="_6UdsL-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoxOO8EdyGNPaNHSGn_w" name="getFeatures" visibility="public">
+                    <ownedParameter xmi:id="_6UdoxeO8EdyGNPaNHSGn_w" name="return" type="_6UnhiOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoxuO8EdyGNPaNHSGn_w" name="getIterator" visibility="public">
+                    <ownedParameter xmi:id="_6Udox-O8EdyGNPaNHSGn_w" name="return" type="_6UdpBeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdoyOO8EdyGNPaNHSGn_w" name="getAttributeName" visibility="public">
+                    <ownedParameter xmi:id="_6UdoyeO8EdyGNPaNHSGn_w" name="position" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdoyuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udoy-O8EdyGNPaNHSGn_w" name="getAttributeValue" visibility="public">
+                    <ownedParameter xmi:id="_6UdozOO8EdyGNPaNHSGn_w" name="position" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdozeO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdozuO8EdyGNPaNHSGn_w" name="getAttributeCount" visibility="public">
+                    <ownedParameter xmi:id="_6Udoz-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Udo0OO8EdyGNPaNHSGn_w" name="FMAPGeometryFactory">
+                  <ownedAttribute xmi:id="_6Udo0eO8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Udo0uO8EdyGNPaNHSGn_w" name="createPoint2D" visibility="public">
+                    <ownedParameter xmi:id="_6Udo0-O8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo1OO8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo1eO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udo1uO8EdyGNPaNHSGn_w" name="createPoint2D" visibility="public">
+                    <ownedParameter xmi:id="_6Udo1-O8EdyGNPaNHSGn_w" name="point2D" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo2OO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udo2eO8EdyGNPaNHSGn_w" name="createMultipoint2D" visibility="public">
+                    <ownedParameter xmi:id="_6Udo2uO8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo2-O8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo3OO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udo3eO8EdyGNPaNHSGn_w" name="createPolygon2D" visibility="public">
+                    <ownedParameter xmi:id="_6Udo3uO8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo3-O8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo4OO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udo4eO8EdyGNPaNHSGn_w" name="createSimpleFeature" visibility="public">
+                    <ownedParameter xmi:id="_6Udo4uO8EdyGNPaNHSGn_w" name="element" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo4-O8EdyGNPaNHSGn_w" name="type" type="_6UdpB-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo5OO8EdyGNPaNHSGn_w" name="values" type="_6UKs5-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo5eO8EdyGNPaNHSGn_w" name="geometry" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo5uO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udo5-O8EdyGNPaNHSGn_w" name="createGeometry" visibility="public">
+                    <ownedParameter xmi:id="_6Udo6OO8EdyGNPaNHSGn_w" name="gmlGeometry" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo6eO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udo6uO8EdyGNPaNHSGn_w" name="getValues" visibility="private">
+                    <ownedParameter xmi:id="_6Udo6-O8EdyGNPaNHSGn_w" name="values" type="_6UKs5-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo7OO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udo7eO8EdyGNPaNHSGn_w" name="getComplexValue" visibility="private">
+                    <ownedParameter xmi:id="_6Udo7uO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo7-O8EdyGNPaNHSGn_w" name="hash" type="_6UKs5-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo8OO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udo8eO8EdyGNPaNHSGn_w" name="getMultipleValue" visibility="private">
+                    <ownedParameter xmi:id="_6Udo8uO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo8-O8EdyGNPaNHSGn_w" name="al" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo9OO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udo9eO8EdyGNPaNHSGn_w" name="getValue" visibility="private">
+                    <ownedParameter xmi:id="_6Udo9uO8EdyGNPaNHSGn_w" name="attr" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udo9-O8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Udo-OO8EdyGNPaNHSGn_w" name="FeatureWithAttributes">
+                  <ownedAttribute xmi:id="_6Udo-eO8EdyGNPaNHSGn_w" name="feature" visibility="private" type="_6UUetuO8EdyGNPaNHSGn_w" association="_6UdpCOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udo-uO8EdyGNPaNHSGn_w" name="attributeName" visibility="private" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udo--O8EdyGNPaNHSGn_w" name="attributeValue" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Udo_OO8EdyGNPaNHSGn_w" name="getAttributeName" visibility="public">
+                    <ownedParameter xmi:id="_6Udo_eO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udo_uO8EdyGNPaNHSGn_w" name="getFeature" visibility="public">
+                    <ownedParameter xmi:id="_6Udo_-O8EdyGNPaNHSGn_w" name="return" type="_6UUetuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpAOO8EdyGNPaNHSGn_w" name="getAttributeValue" visibility="public">
+                    <ownedParameter xmi:id="_6UdpAeO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdpAuO8EdyGNPaNHSGn_w" name="FeatureType"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdpA-O8EdyGNPaNHSGn_w" name="AttributeType"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdpBOO8EdyGNPaNHSGn_w" name="IGeometriesFactory"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdpBeO8EdyGNPaNHSGn_w" name="IGMLFeaturesIterator"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdpBuO8EdyGNPaNHSGn_w" name="GMLReader"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdpB-O8EdyGNPaNHSGn_w" name="IXMLType"/>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdpCOO8EdyGNPaNHSGn_w" memberEnd="_6Udo-eO8EdyGNPaNHSGn_w _6UdpCeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdpCeO8EdyGNPaNHSGn_w" name="target" type="_6Udo-OO8EdyGNPaNHSGn_w" association="_6UdpCOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UdpCuO8EdyGNPaNHSGn_w" name="gvl">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdpC-O8EdyGNPaNHSGn_w" name="FMapGVLDriver" clientDependency="_6UdpDuO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdpDOO8EdyGNPaNHSGn_w" name="DESCRIPTION" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpDeO8EdyGNPaNHSGn_w" name="FILE_EXTENSION" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdpDuO8EdyGNPaNHSGn_w" name="IFMapLegendDriver" supplier="_6UdpVOO8EdyGNPaNHSGn_w" client="_6UdpC-O8EdyGNPaNHSGn_w" contract="_6UdpVOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdpD-O8EdyGNPaNHSGn_w" name="accept" visibility="public">
+                    <ownedParameter xmi:id="_6UdpEOO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpEeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpEuO8EdyGNPaNHSGn_w" name="getDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UdpE-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpFOO8EdyGNPaNHSGn_w" name="getFileExtension" visibility="public">
+                    <ownedParameter xmi:id="_6UdpFeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpFuO8EdyGNPaNHSGn_w" name="read" visibility="public">
+                    <ownedParameter xmi:id="_6UdpF-O8EdyGNPaNHSGn_w" name="layers" type="_6Ud3i-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpGOO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpGeO8EdyGNPaNHSGn_w" name="file" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpGuO8EdyGNPaNHSGn_w" name="return" type="_6UdsL-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpG-O8EdyGNPaNHSGn_w" name="write" visibility="public">
+                    <ownedParameter xmi:id="_6UdpHOO8EdyGNPaNHSGn_w" name="layers" type="_6Ud3i-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpHeO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpHuO8EdyGNPaNHSGn_w" name="legend" type="_6UnbUOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpH-O8EdyGNPaNHSGn_w" name="file" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UdpIOO8EdyGNPaNHSGn_w" name="kml">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdpIeO8EdyGNPaNHSGn_w" name="KmlFMapUtils"/>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdpIuO8EdyGNPaNHSGn_w" name="KmlFMapDriver" clientDependency="_6UdpL-O8EdyGNPaNHSGn_w _6UdpMOO8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6UdpI-O8EdyGNPaNHSGn_w" general="_6UUuZOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpJOO8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpJeO8EdyGNPaNHSGn_w" name="m_Fich" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpJuO8EdyGNPaNHSGn_w" name="defaultLegend" visibility="private" type="_6UnbseO8EdyGNPaNHSGn_w" association="_6UdpTeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpJ-O8EdyGNPaNHSGn_w" name="defaultSymbol" visibility="private" type="_6UUlkuO8EdyGNPaNHSGn_w" association="_6UdpT-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpKOO8EdyGNPaNHSGn_w" name="factory" visibility="private" type="_6UdpBOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpKeO8EdyGNPaNHSGn_w" name="driver" visibility="private" type="_6UdpSeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpKuO8EdyGNPaNHSGn_w" name="iterator" visibility="private" type="_6UdpSuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpK-O8EdyGNPaNHSGn_w" name="heightText" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpLOO8EdyGNPaNHSGn_w" name="r" visibility="private" type="_6UdpS-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpLeO8EdyGNPaNHSGn_w" name="FOLDER_NAME_POSITION" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpLuO8EdyGNPaNHSGn_w" name="labeler" visibility="private" type="_6UncoOO8EdyGNPaNHSGn_w" association="_6UdpUeO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdpL-O8EdyGNPaNHSGn_w" name="VectorialFileDriver" supplier="_6UUt_OO8EdyGNPaNHSGn_w" client="_6UdpIuO8EdyGNPaNHSGn_w" contract="_6UUt_OO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdpMOO8EdyGNPaNHSGn_w" name="WithDefaultLegend" supplier="_6UUts-O8EdyGNPaNHSGn_w" client="_6UdpIuO8EdyGNPaNHSGn_w" contract="_6UUts-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdpMeO8EdyGNPaNHSGn_w" name="open" visibility="public">
+                    <ownedParameter xmi:id="_6UdpMuO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpM-O8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdpNOO8EdyGNPaNHSGn_w" name="initialize" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdpNeO8EdyGNPaNHSGn_w" name="createLegend" visibility="private"/>
+                  <ownedOperation xmi:id="_6UdpNuO8EdyGNPaNHSGn_w" name="accept" visibility="public">
+                    <ownedParameter xmi:id="_6UdpN-O8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpOOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpOeO8EdyGNPaNHSGn_w" name="getFile" visibility="public">
+                    <ownedParameter xmi:id="_6UdpOuO8EdyGNPaNHSGn_w" name="return" type="_6UnhgeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpO-O8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                    <ownedParameter xmi:id="_6UdpPOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpPeO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                    <ownedParameter xmi:id="_6UdpPuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpP-O8EdyGNPaNHSGn_w" name="getRandomColor" visibility="private">
+                    <ownedParameter xmi:id="_6UdpQOO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpQeO8EdyGNPaNHSGn_w" name="getDefaultSymbol" visibility="private">
+                    <ownedParameter xmi:id="_6UdpQuO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpQ-O8EdyGNPaNHSGn_w" name="getDefaultLegend" visibility="public">
+                    <ownedParameter xmi:id="_6UdpROO8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpReO8EdyGNPaNHSGn_w" name="createInputStream" visibility="private">
+                    <ownedParameter xmi:id="_6UdpRuO8EdyGNPaNHSGn_w" name="return" type="_6UdpTOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpR-O8EdyGNPaNHSGn_w" name="getDefaultLabelingStrategy" visibility="public">
+                    <ownedParameter xmi:id="_6UdpSOO8EdyGNPaNHSGn_w" name="return" type="_6UncoOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdpSeO8EdyGNPaNHSGn_w" name="KmlDriver"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdpSuO8EdyGNPaNHSGn_w" name="IFeaturesIterator"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdpS-O8EdyGNPaNHSGn_w" name="Random"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdpTOO8EdyGNPaNHSGn_w" name="InputStream"/>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdpTeO8EdyGNPaNHSGn_w" memberEnd="_6UdpJuO8EdyGNPaNHSGn_w _6UdpTuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdpTuO8EdyGNPaNHSGn_w" name="target" type="_6UdpIuO8EdyGNPaNHSGn_w" association="_6UdpTeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdpT-O8EdyGNPaNHSGn_w" memberEnd="_6UdpJ-O8EdyGNPaNHSGn_w _6UdpUOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdpUOO8EdyGNPaNHSGn_w" name="target" type="_6UdpIuO8EdyGNPaNHSGn_w" association="_6UdpT-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdpUeO8EdyGNPaNHSGn_w" memberEnd="_6UdpLuO8EdyGNPaNHSGn_w _6UdpUuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdpUuO8EdyGNPaNHSGn_w" name="target" type="_6UdpIuO8EdyGNPaNHSGn_w" association="_6UdpUeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UdpU-O8EdyGNPaNHSGn_w" name="legend">
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UdpVOO8EdyGNPaNHSGn_w" name="IFMapLegendDriver">
+                  <ownedOperation xmi:id="_6UdpVeO8EdyGNPaNHSGn_w" name="accept">
+                    <ownedParameter xmi:id="_6UdpVuO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpV-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpWOO8EdyGNPaNHSGn_w" name="getDescription">
+                    <ownedParameter xmi:id="_6UdpWeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpWuO8EdyGNPaNHSGn_w" name="getFileExtension">
+                    <ownedParameter xmi:id="_6UdpW-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpXOO8EdyGNPaNHSGn_w" name="write">
+                    <ownedParameter xmi:id="_6UdpXeO8EdyGNPaNHSGn_w" name="layers" type="_6Ud3i-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpXuO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpX-O8EdyGNPaNHSGn_w" name="legend" type="_6UnbUOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpYOO8EdyGNPaNHSGn_w" name="file" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpYeO8EdyGNPaNHSGn_w" name="read">
+                    <ownedParameter xmi:id="_6UdpYuO8EdyGNPaNHSGn_w" name="layers" type="_6Ud3i-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpY-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpZOO8EdyGNPaNHSGn_w" name="file" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpZeO8EdyGNPaNHSGn_w" name="return" type="_6UdsL-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdpZuO8EdyGNPaNHSGn_w" name="LegendDriverException">
+                  <generalization xmi:id="_6UdpZ-O8EdyGNPaNHSGn_w" general="_6UnhhOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpaOO8EdyGNPaNHSGn_w" name="CLASSIFICATION_FIELDS_NOT_FOUND" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpaeO8EdyGNPaNHSGn_w" name="CLASSIFICATION_FIELDS_TYPE_MISMATCH" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpauO8EdyGNPaNHSGn_w" name="LEGEND_TYPE_NOT_YET_SUPPORTED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udpa-O8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_NOT_YET_SUPPORTED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpbOO8EdyGNPaNHSGn_w" name="LAYER_SHAPETYPE_MISMATCH" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpbeO8EdyGNPaNHSGn_w" name="PARSE_LEGEND_FILE_ERROR" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpbuO8EdyGNPaNHSGn_w" name="UNSUPPORTED_LEGEND_FILE_VERSION" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udpb-O8EdyGNPaNHSGn_w" name="READ_DRIVER_EXCEPTION" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpcOO8EdyGNPaNHSGn_w" name="SAVE_LEGEND_ERROR" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpceO8EdyGNPaNHSGn_w" name="UNSUPPORTED_LEGEND_CREATION" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpcuO8EdyGNPaNHSGn_w" name="UNSUPPORTED_LEGEND_READING" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udpc-O8EdyGNPaNHSGn_w" name="SYSTEM_ERROR" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpdOO8EdyGNPaNHSGn_w" name="LAYER_NAME_NOT_SPECIFIED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpdeO8EdyGNPaNHSGn_w" name="type" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdpduO8EdyGNPaNHSGn_w" name="getType" visibility="public">
+                    <ownedParameter xmi:id="_6Udpd-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UdpeOO8EdyGNPaNHSGn_w" name="shp">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdpeeO8EdyGNPaNHSGn_w" name="SHPSHXFromGeometries">
+                  <ownedAttribute xmi:id="_6UdpeuO8EdyGNPaNHSGn_w" name="geometries" visibility="private" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udpe-O8EdyGNPaNHSGn_w" name="shpPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpfOO8EdyGNPaNHSGn_w" name="shxPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpfeO8EdyGNPaNHSGn_w" name="temp" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpfuO8EdyGNPaNHSGn_w" name="type" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Udpf-O8EdyGNPaNHSGn_w" name="setFile" visibility="private">
+                    <ownedParameter xmi:id="_6UdpgOO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpgeO8EdyGNPaNHSGn_w" name="create" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdpguO8EdyGNPaNHSGn_w" name="getWriteChannel" visibility="private">
+                    <ownedParameter xmi:id="_6Udpg-O8EdyGNPaNHSGn_w" name="path" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdphOO8EdyGNPaNHSGn_w" name="return" type="_6UUwJeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpheO8EdyGNPaNHSGn_w" name="getTypeShape" visibility="private">
+                    <ownedParameter xmi:id="_6UdphuO8EdyGNPaNHSGn_w" name="geometryType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udph-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdpiOO8EdyGNPaNHSGn_w" name="ShapeFileHeader">
+                  <ownedAttribute xmi:id="_6UdpieO8EdyGNPaNHSGn_w" name="SHAPE_NULL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpiuO8EdyGNPaNHSGn_w" name="SHAPE_POINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udpi-O8EdyGNPaNHSGn_w" name="SHAPE_POLYLINE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpjOO8EdyGNPaNHSGn_w" name="SHAPE_POLYGON" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpjeO8EdyGNPaNHSGn_w" name="SHAPE_MULTIPOINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpjuO8EdyGNPaNHSGn_w" name="SHAPE_POINTZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udpj-O8EdyGNPaNHSGn_w" name="SHAPE_POLYLINEZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpkOO8EdyGNPaNHSGn_w" name="SHAPE_POLYGONZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpkeO8EdyGNPaNHSGn_w" name="SHAPE_MULTIPOINTZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpkuO8EdyGNPaNHSGn_w" name="SHAPE_POINTM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udpk-O8EdyGNPaNHSGn_w" name="SHAPE_POLYLINEM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdplOO8EdyGNPaNHSGn_w" name="SHAPE_POLYGONM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpleO8EdyGNPaNHSGn_w" name="SHAPE_MULTIPOINTM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpluO8EdyGNPaNHSGn_w" name="SHAPE_MULTIPATCH" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udpl-O8EdyGNPaNHSGn_w" name="myFileCode" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpmOO8EdyGNPaNHSGn_w" name="myUnused1" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpmeO8EdyGNPaNHSGn_w" name="myUnused2" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpmuO8EdyGNPaNHSGn_w" name="myUnused3" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udpm-O8EdyGNPaNHSGn_w" name="myUnused4" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpnOO8EdyGNPaNHSGn_w" name="myUnused5" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpneO8EdyGNPaNHSGn_w" name="myFileLength" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpnuO8EdyGNPaNHSGn_w" name="myVersion" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udpn-O8EdyGNPaNHSGn_w" name="myShapeType" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpoOO8EdyGNPaNHSGn_w" name="myXmin" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpoeO8EdyGNPaNHSGn_w" name="myYmin" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpouO8EdyGNPaNHSGn_w" name="myXmax" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udpo-O8EdyGNPaNHSGn_w" name="myYmax" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdppOO8EdyGNPaNHSGn_w" name="myZmin" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdppeO8EdyGNPaNHSGn_w" name="myZmax" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdppuO8EdyGNPaNHSGn_w" name="myMmin" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udpp-O8EdyGNPaNHSGn_w" name="myMmax" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpqOO8EdyGNPaNHSGn_w" name="myWarning" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdpqeO8EdyGNPaNHSGn_w" name="getFileCode" visibility="public">
+                    <ownedParameter xmi:id="_6UdpquO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udpq-O8EdyGNPaNHSGn_w" name="getVersion" visibility="public">
+                    <ownedParameter xmi:id="_6UdprOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpreO8EdyGNPaNHSGn_w" name="getFileExtents" visibility="public">
+                    <ownedParameter xmi:id="_6UdpruO8EdyGNPaNHSGn_w" name="return" type="_6UUyp-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udpr-O8EdyGNPaNHSGn_w" name="setWarnings" visibility="public">
+                    <ownedParameter xmi:id="_6UdpsOO8EdyGNPaNHSGn_w" name="inWarning" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpseO8EdyGNPaNHSGn_w" name="getHeaderLength" visibility="public">
+                    <ownedParameter xmi:id="_6UdpsuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udps-O8EdyGNPaNHSGn_w" name="getFileLength" visibility="public">
+                    <ownedParameter xmi:id="_6UdptOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpteO8EdyGNPaNHSGn_w" name="readHeader" visibility="public">
+                    <ownedParameter xmi:id="_6UdptuO8EdyGNPaNHSGn_w" name="in" type="_6UdsGOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udpt-O8EdyGNPaNHSGn_w" name="write" visibility="public">
+                    <ownedParameter xmi:id="_6UdpuOO8EdyGNPaNHSGn_w" name="out" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpueO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpuuO8EdyGNPaNHSGn_w" name="numGeoms" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udpu-O8EdyGNPaNHSGn_w" name="length" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpvOO8EdyGNPaNHSGn_w" name="minX" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpveO8EdyGNPaNHSGn_w" name="minY" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpvuO8EdyGNPaNHSGn_w" name="maxX" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udpv-O8EdyGNPaNHSGn_w" name="maxY" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpwOO8EdyGNPaNHSGn_w" name="minZ" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpweO8EdyGNPaNHSGn_w" name="maxZ" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpwuO8EdyGNPaNHSGn_w" name="minM" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udpw-O8EdyGNPaNHSGn_w" name="maxM" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdpxOO8EdyGNPaNHSGn_w" name="warn" visibility="private">
+                    <ownedParameter xmi:id="_6UdpxeO8EdyGNPaNHSGn_w" name="inWarn" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdpxuO8EdyGNPaNHSGn_w" name="MyFileFilter">
+                  <ownedAttribute xmi:id="_6Udpx-O8EdyGNPaNHSGn_w" name="shpPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdpyOO8EdyGNPaNHSGn_w" name="accept" visibility="public">
+                    <ownedParameter xmi:id="_6UdpyeO8EdyGNPaNHSGn_w" name="pathname" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdpyuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Udpy-O8EdyGNPaNHSGn_w" name="DbaseFileNIO">
+                  <ownedAttribute xmi:id="_6UdpzOO8EdyGNPaNHSGn_w" name="myHeader" visibility="private" type="_6UdqSeO8EdyGNPaNHSGn_w" association="_6UdsIeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpzeO8EdyGNPaNHSGn_w" name="fin" visibility="private" type="_6UUyqeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdpzuO8EdyGNPaNHSGn_w" name="channel" visibility="private" type="_6UUwG-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udpz-O8EdyGNPaNHSGn_w" name="buffer" visibility="private" type="_6UUwHOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udp0OO8EdyGNPaNHSGn_w" name="charBuffer" type="_6UdsGeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udp0eO8EdyGNPaNHSGn_w" name="decoder" type="_6UdsGuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udp0uO8EdyGNPaNHSGn_w" name="chars" type="_6UUwH-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Udp0-O8EdyGNPaNHSGn_w" name="getRecordCount" visibility="public">
+                    <ownedParameter xmi:id="_6Udp1OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udp1eO8EdyGNPaNHSGn_w" name="getFieldCount" visibility="public">
+                    <ownedParameter xmi:id="_6Udp1uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udp1-O8EdyGNPaNHSGn_w" name="getBooleanFieldValue" visibility="public">
+                    <ownedParameter xmi:id="_6Udp2OO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udp2eO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udp2uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udp2-O8EdyGNPaNHSGn_w" name="getStringFieldValue" visibility="public">
+                    <ownedParameter xmi:id="_6Udp3OO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udp3eO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udp3uO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udp3-O8EdyGNPaNHSGn_w" name="getNumberFieldValue" visibility="public">
+                    <ownedParameter xmi:id="_6Udp4OO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udp4eO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udp4uO8EdyGNPaNHSGn_w" name="return" type="_6UUwHuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udp4-O8EdyGNPaNHSGn_w" name="getFieldName" visibility="public">
+                    <ownedParameter xmi:id="_6Udp5OO8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udp5eO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udp5uO8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                    <ownedParameter xmi:id="_6Udp5-O8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udp6OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udp6eO8EdyGNPaNHSGn_w" name="getFieldLength" visibility="public">
+                    <ownedParameter xmi:id="_6Udp6uO8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udp6-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udp7OO8EdyGNPaNHSGn_w" name="getFieldDecimalLength" visibility="public">
+                    <ownedParameter xmi:id="_6Udp7eO8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udp7uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udp7-O8EdyGNPaNHSGn_w" name="open" visibility="public">
+                    <ownedParameter xmi:id="_6Udp8OO8EdyGNPaNHSGn_w" name="file" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udp8eO8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                  <ownedOperation xmi:id="_6Udp8uO8EdyGNPaNHSGn_w" name="getDBaseHeader" visibility="public">
+                    <ownedParameter xmi:id="_6Udp8-O8EdyGNPaNHSGn_w" name="return" type="_6UdqSeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Udp9OO8EdyGNPaNHSGn_w" name="SHP">
+                  <ownedAttribute xmi:id="_6Udp9eO8EdyGNPaNHSGn_w" name="NULL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udp9uO8EdyGNPaNHSGn_w" name="POINT2D" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udp9-O8EdyGNPaNHSGn_w" name="POLYLINE2D" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udp-OO8EdyGNPaNHSGn_w" name="POLYGON2D" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udp-eO8EdyGNPaNHSGn_w" name="MULTIPOINT2D" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udp-uO8EdyGNPaNHSGn_w" name="POINT3D" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udp--O8EdyGNPaNHSGn_w" name="POLYLINE3D" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udp_OO8EdyGNPaNHSGn_w" name="POLYGON3D" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udp_eO8EdyGNPaNHSGn_w" name="MULTIPOINT3D" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Udp_uO8EdyGNPaNHSGn_w" name="create" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6Udp_-O8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqAOO8EdyGNPaNHSGn_w" name="return" type="_6Udr6-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqAeO8EdyGNPaNHSGn_w" name="SHPFileFromGeometries" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UdqAuO8EdyGNPaNHSGn_w" name="fgs" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqA-O8EdyGNPaNHSGn_w" name="bitset" type="_6UdsG-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqBOO8EdyGNPaNHSGn_w" name="sds" type="_6Ud0m-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqBeO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqBuO8EdyGNPaNHSGn_w" name="SHPOnlyFromGeometries" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UdqB-O8EdyGNPaNHSGn_w" name="fgs" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqCOO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqCeO8EdyGNPaNHSGn_w" name="getZMinMax" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UdqCuO8EdyGNPaNHSGn_w" name="zs" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqC-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqDOO8EdyGNPaNHSGn_w" name="getDbfFile" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UdqDeO8EdyGNPaNHSGn_w" name="shpFile" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqDuO8EdyGNPaNHSGn_w" name="return" type="_6UnhgeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqD-O8EdyGNPaNHSGn_w" name="getShxFile" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UdqEOO8EdyGNPaNHSGn_w" name="shpFile" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqEeO8EdyGNPaNHSGn_w" name="return" type="_6UnhgeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqEuO8EdyGNPaNHSGn_w" name="findEnd" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UdqE-O8EdyGNPaNHSGn_w" name="str" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqFOO8EdyGNPaNHSGn_w" name="files" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqFeO8EdyGNPaNHSGn_w" name="ends" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqFuO8EdyGNPaNHSGn_w" name="return" type="_6UnhgeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdqF-O8EdyGNPaNHSGn_w" name="DbaseFileReaderNIO">
+                  <ownedAttribute xmi:id="_6UdqGOO8EdyGNPaNHSGn_w" name="header" type="_6UdqSeO8EdyGNPaNHSGn_w" association="_6UdsI-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqGeO8EdyGNPaNHSGn_w" name="buffer" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqGuO8EdyGNPaNHSGn_w" name="channel" type="_6UdsHOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqG-O8EdyGNPaNHSGn_w" name="charBuffer" type="_6UdsGeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqHOO8EdyGNPaNHSGn_w" name="decoder" type="_6UdsGuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqHeO8EdyGNPaNHSGn_w" name="fieldTypes" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqHuO8EdyGNPaNHSGn_w" name="fieldLengths" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqH-O8EdyGNPaNHSGn_w" name="cnt" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqIOO8EdyGNPaNHSGn_w" name="row" type="_6UdqReO8EdyGNPaNHSGn_w" association="_6UdsJeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqIeO8EdyGNPaNHSGn_w" name="numberParser" type="_6UdsHeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdqIuO8EdyGNPaNHSGn_w" name="fill" visibility="private">
+                    <ownedParameter xmi:id="_6UdqI-O8EdyGNPaNHSGn_w" name="buffer" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqJOO8EdyGNPaNHSGn_w" name="channel" type="_6UdsHOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqJeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqJuO8EdyGNPaNHSGn_w" name="bufferCheck" visibility="private"/>
+                  <ownedOperation xmi:id="_6UdqJ-O8EdyGNPaNHSGn_w" name="getOffset" visibility="private">
+                    <ownedParameter xmi:id="_6UdqKOO8EdyGNPaNHSGn_w" name="column" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqKeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqKuO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+                  <ownedOperation xmi:id="_6UdqK-O8EdyGNPaNHSGn_w" name="getHeader" visibility="public">
+                    <ownedParameter xmi:id="_6UdqLOO8EdyGNPaNHSGn_w" name="return" type="_6UdqSeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqLeO8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdqLuO8EdyGNPaNHSGn_w" name="hasNext" visibility="public">
+                    <ownedParameter xmi:id="_6UdqL-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqMOO8EdyGNPaNHSGn_w" name="readEntry" visibility="public">
+                    <ownedParameter xmi:id="_6UdqMeO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqMuO8EdyGNPaNHSGn_w" name="readRow" visibility="public">
+                    <ownedParameter xmi:id="_6UdqM-O8EdyGNPaNHSGn_w" name="return" type="_6UdqReO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqNOO8EdyGNPaNHSGn_w" name="skip" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdqNeO8EdyGNPaNHSGn_w" name="readEntry" visibility="public">
+                    <ownedParameter xmi:id="_6UdqNuO8EdyGNPaNHSGn_w" name="entry" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqN-O8EdyGNPaNHSGn_w" name="offset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqOOO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqOeO8EdyGNPaNHSGn_w" name="transferTo" visibility="public">
+                    <ownedParameter xmi:id="_6UdqOuO8EdyGNPaNHSGn_w" name="writer" type="_6UdqnOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqO-O8EdyGNPaNHSGn_w" name="read" visibility="private"/>
+                  <ownedOperation xmi:id="_6UdqPOO8EdyGNPaNHSGn_w" name="readEntry" visibility="public">
+                    <ownedParameter xmi:id="_6UdqPeO8EdyGNPaNHSGn_w" name="entry" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqPuO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqP-O8EdyGNPaNHSGn_w" name="readObject" visibility="private">
+                    <ownedParameter xmi:id="_6UdqQOO8EdyGNPaNHSGn_w" name="fieldOffset" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqQeO8EdyGNPaNHSGn_w" name="fieldNum" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqQuO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqQ-O8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UdqROO8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdqReO8EdyGNPaNHSGn_w" name="Row">
+                  <ownedOperation xmi:id="_6UdqRuO8EdyGNPaNHSGn_w" name="read" visibility="public">
+                    <ownedParameter xmi:id="_6UdqR-O8EdyGNPaNHSGn_w" name="column" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqSOO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdqSeO8EdyGNPaNHSGn_w" name="DbaseFileHeaderNIO">
+                  <ownedAttribute xmi:id="_6UdqSuO8EdyGNPaNHSGn_w" name="FILE_DESCRIPTOR_SIZE" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqS-O8EdyGNPaNHSGn_w" name="MAGIC" visibility="private" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqTOO8EdyGNPaNHSGn_w" name="MINIMUM_HEADER" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqTeO8EdyGNPaNHSGn_w" name="date" visibility="private" type="_6UUwI-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqTuO8EdyGNPaNHSGn_w" name="recordCnt" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqT-O8EdyGNPaNHSGn_w" name="fieldCnt" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqUOO8EdyGNPaNHSGn_w" name="myFileType" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqUeO8EdyGNPaNHSGn_w" name="recordLength" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqUuO8EdyGNPaNHSGn_w" name="headerLength" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqU-O8EdyGNPaNHSGn_w" name="largestFieldSize" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqVOO8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqVeO8EdyGNPaNHSGn_w" name="fields" visibility="private" type="_6UdqluO8EdyGNPaNHSGn_w" association="_6UdsJ-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdqVuO8EdyGNPaNHSGn_w" name="read" visibility="private">
+                    <ownedParameter xmi:id="_6UdqV-O8EdyGNPaNHSGn_w" name="buffer" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqWOO8EdyGNPaNHSGn_w" name="channel" type="_6UdsHOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqWeO8EdyGNPaNHSGn_w" name="getFieldClass" visibility="public">
+                    <ownedParameter xmi:id="_6UdqWuO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqW-O8EdyGNPaNHSGn_w" name="return" type="_6UUiGOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqXOO8EdyGNPaNHSGn_w" name="addColumn" visibility="public">
+                    <ownedParameter xmi:id="_6UdqXeO8EdyGNPaNHSGn_w" name="inFieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqXuO8EdyGNPaNHSGn_w" name="inFieldType" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqX-O8EdyGNPaNHSGn_w" name="inFieldLength" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqYOO8EdyGNPaNHSGn_w" name="inDecimalCount" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqYeO8EdyGNPaNHSGn_w" name="removeColumn" visibility="public">
+                    <ownedParameter xmi:id="_6UdqYuO8EdyGNPaNHSGn_w" name="inFieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqY-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqZOO8EdyGNPaNHSGn_w" name="warn" visibility="private">
+                    <ownedParameter xmi:id="_6UdqZeO8EdyGNPaNHSGn_w" name="inWarn" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqZuO8EdyGNPaNHSGn_w" name="getFieldLength" visibility="public">
+                    <ownedParameter xmi:id="_6UdqZ-O8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqaOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqaeO8EdyGNPaNHSGn_w" name="getFieldDecimalCount" visibility="public">
+                    <ownedParameter xmi:id="_6UdqauO8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udqa-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqbOO8EdyGNPaNHSGn_w" name="getFieldName" visibility="public">
+                    <ownedParameter xmi:id="_6UdqbeO8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqbuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udqb-O8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                    <ownedParameter xmi:id="_6UdqcOO8EdyGNPaNHSGn_w" name="inIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqceO8EdyGNPaNHSGn_w" name="return" type="_6UKs0-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqcuO8EdyGNPaNHSGn_w" name="getLastUpdateDate" visibility="public">
+                    <ownedParameter xmi:id="_6Udqc-O8EdyGNPaNHSGn_w" name="return" type="_6UUwI-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqdOO8EdyGNPaNHSGn_w" name="getNumFields" visibility="public">
+                    <ownedParameter xmi:id="_6UdqdeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqduO8EdyGNPaNHSGn_w" name="getNumRecords" visibility="public">
+                    <ownedParameter xmi:id="_6Udqd-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqeOO8EdyGNPaNHSGn_w" name="getRecordLength" visibility="public">
+                    <ownedParameter xmi:id="_6UdqeeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqeuO8EdyGNPaNHSGn_w" name="getHeaderLength" visibility="public">
+                    <ownedParameter xmi:id="_6Udqe-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqfOO8EdyGNPaNHSGn_w" name="readHeader" visibility="public">
+                    <ownedParameter xmi:id="_6UdqfeO8EdyGNPaNHSGn_w" name="in" type="_6UUwHOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqfuO8EdyGNPaNHSGn_w" name="getLargestFieldSize" visibility="public">
+                    <ownedParameter xmi:id="_6Udqf-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqgOO8EdyGNPaNHSGn_w" name="setNumRecords" visibility="public">
+                    <ownedParameter xmi:id="_6UdqgeO8EdyGNPaNHSGn_w" name="inNumRecords" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqguO8EdyGNPaNHSGn_w" name="writeHeader" visibility="public">
+                    <ownedParameter xmi:id="_6Udqg-O8EdyGNPaNHSGn_w" name="out" type="_6UUwG-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqhOO8EdyGNPaNHSGn_w" name="toString" visibility="public">
+                    <ownedParameter xmi:id="_6UdqheO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqhuO8EdyGNPaNHSGn_w" name="createNewDbaseHeader" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6Udqh-O8EdyGNPaNHSGn_w" name="return" type="_6UdqSeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqiOO8EdyGNPaNHSGn_w" name="createDbaseHeader" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UdqieO8EdyGNPaNHSGn_w" name="ds" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqiuO8EdyGNPaNHSGn_w" name="return" type="_6UdqSeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udqi-O8EdyGNPaNHSGn_w" name="createDbaseHeader" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UdqjOO8EdyGNPaNHSGn_w" name="fieldNames" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqjeO8EdyGNPaNHSGn_w" name="fieldTypes" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqjuO8EdyGNPaNHSGn_w" name="fieldLength" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udqj-O8EdyGNPaNHSGn_w" name="return" type="_6UdqSeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqkOO8EdyGNPaNHSGn_w" name="createDbaseHeader" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UdqkeO8EdyGNPaNHSGn_w" name="fieldsDesc" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqkuO8EdyGNPaNHSGn_w" name="return" type="_6UdqSeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udqk-O8EdyGNPaNHSGn_w" name="setFieldName" visibility="public">
+                    <ownedParameter xmi:id="_6UdqlOO8EdyGNPaNHSGn_w" name="j" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqleO8EdyGNPaNHSGn_w" name="newName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdqluO8EdyGNPaNHSGn_w" name="DbaseField">
+                  <ownedAttribute xmi:id="_6Udql-O8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqmOO8EdyGNPaNHSGn_w" name="fieldType" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqmeO8EdyGNPaNHSGn_w" name="fieldDataAddress" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqmuO8EdyGNPaNHSGn_w" name="fieldLength" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udqm-O8EdyGNPaNHSGn_w" name="decimalCount" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdqnOO8EdyGNPaNHSGn_w" name="DbaseFileWriterNIO">
+                  <ownedAttribute xmi:id="_6UdqneO8EdyGNPaNHSGn_w" name="header" visibility="private" type="_6UdqSeO8EdyGNPaNHSGn_w" association="_6UdsKeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqnuO8EdyGNPaNHSGn_w" name="formatter" visibility="private" type="_6UdsH-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udqn-O8EdyGNPaNHSGn_w" name="channel" type="_6UUwJeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqoOO8EdyGNPaNHSGn_w" name="buffer" visibility="private" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqoeO8EdyGNPaNHSGn_w" name="NULL_NUMBER" visibility="private" type="_6UUwHuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqouO8EdyGNPaNHSGn_w" name="NULL_STRING" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udqo-O8EdyGNPaNHSGn_w" name="NULL_DATE" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqpOO8EdyGNPaNHSGn_w" name="charset" visibility="private" type="_6UUwH-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdqpeO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+                  <ownedOperation xmi:id="_6UdqpuO8EdyGNPaNHSGn_w" name="write" visibility="private"/>
+                  <ownedOperation xmi:id="_6Udqp-O8EdyGNPaNHSGn_w" name="write" visibility="public">
+                    <ownedParameter xmi:id="_6UdqqOO8EdyGNPaNHSGn_w" name="record" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqqeO8EdyGNPaNHSGn_w" name="writeRecord" visibility="public">
+                    <ownedParameter xmi:id="_6UdqquO8EdyGNPaNHSGn_w" name="record" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udqq-O8EdyGNPaNHSGn_w" name="numReg" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqrOO8EdyGNPaNHSGn_w" name="fieldString" visibility="private">
+                    <ownedParameter xmi:id="_6UdqreO8EdyGNPaNHSGn_w" name="obj" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqruO8EdyGNPaNHSGn_w" name="col" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udqr-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqsOO8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdqseO8EdyGNPaNHSGn_w" name="setCharset" visibility="public">
+                    <ownedParameter xmi:id="_6UdqsuO8EdyGNPaNHSGn_w" name="charset" type="_6UUwH-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Udqs-O8EdyGNPaNHSGn_w" name="FieldFormatter">
+                  <ownedAttribute xmi:id="_6UdqtOO8EdyGNPaNHSGn_w" name="buffer" visibility="private" type="_6UUwIOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqteO8EdyGNPaNHSGn_w" name="numFormat" visibility="private" type="_6UUwIeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqtuO8EdyGNPaNHSGn_w" name="calendar" visibility="private" type="_6UUwIuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udqt-O8EdyGNPaNHSGn_w" name="emtpyString" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdquOO8EdyGNPaNHSGn_w" name="MAXCHARS" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdqueO8EdyGNPaNHSGn_w" name="getFieldString" visibility="public">
+                    <ownedParameter xmi:id="_6UdquuO8EdyGNPaNHSGn_w" name="size" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udqu-O8EdyGNPaNHSGn_w" name="s" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqvOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqveO8EdyGNPaNHSGn_w" name="getFieldString" visibility="public">
+                    <ownedParameter xmi:id="_6UdqvuO8EdyGNPaNHSGn_w" name="d" type="_6UUwI-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udqv-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdqwOO8EdyGNPaNHSGn_w" name="getFieldString" visibility="public">
+                    <ownedParameter xmi:id="_6UdqweO8EdyGNPaNHSGn_w" name="size" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqwuO8EdyGNPaNHSGn_w" name="decimalPlaces" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udqw-O8EdyGNPaNHSGn_w" name="n" type="_6UUwHuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdqxOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdqxeO8EdyGNPaNHSGn_w" name="ShapeFileHeader2">
+                  <ownedAttribute xmi:id="_6UdqxuO8EdyGNPaNHSGn_w" name="SHAPE_NULL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udqx-O8EdyGNPaNHSGn_w" name="SHAPE_POINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqyOO8EdyGNPaNHSGn_w" name="SHAPE_POLYLINE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqyeO8EdyGNPaNHSGn_w" name="SHAPE_POLYGON" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqyuO8EdyGNPaNHSGn_w" name="SHAPE_MULTIPOINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udqy-O8EdyGNPaNHSGn_w" name="SHAPE_POINTZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqzOO8EdyGNPaNHSGn_w" name="SHAPE_POLYLINEZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqzeO8EdyGNPaNHSGn_w" name="SHAPE_POLYGONZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdqzuO8EdyGNPaNHSGn_w" name="SHAPE_MULTIPOINTZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udqz-O8EdyGNPaNHSGn_w" name="SHAPE_POINTM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq0OO8EdyGNPaNHSGn_w" name="SHAPE_POLYLINEM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq0eO8EdyGNPaNHSGn_w" name="SHAPE_POLYGONM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq0uO8EdyGNPaNHSGn_w" name="SHAPE_MULTIPOINTM" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq0-O8EdyGNPaNHSGn_w" name="SHAPE_MULTIPATCH" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq1OO8EdyGNPaNHSGn_w" name="myFileCode" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq1eO8EdyGNPaNHSGn_w" name="myUnused1" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq1uO8EdyGNPaNHSGn_w" name="myUnused2" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq1-O8EdyGNPaNHSGn_w" name="myUnused3" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq2OO8EdyGNPaNHSGn_w" name="myUnused4" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq2eO8EdyGNPaNHSGn_w" name="myUnused5" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq2uO8EdyGNPaNHSGn_w" name="myFileLength" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq2-O8EdyGNPaNHSGn_w" name="myVersion" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq3OO8EdyGNPaNHSGn_w" name="myShapeType" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq3eO8EdyGNPaNHSGn_w" name="myXmin" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq3uO8EdyGNPaNHSGn_w" name="myYmin" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq3-O8EdyGNPaNHSGn_w" name="myXmax" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq4OO8EdyGNPaNHSGn_w" name="myYmax" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq4eO8EdyGNPaNHSGn_w" name="myZmin" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq4uO8EdyGNPaNHSGn_w" name="myZmax" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq4-O8EdyGNPaNHSGn_w" name="myMmin" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq5OO8EdyGNPaNHSGn_w" name="myMmax" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udq5eO8EdyGNPaNHSGn_w" name="myWarning" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Udq5uO8EdyGNPaNHSGn_w" name="getFileCode" visibility="public">
+                    <ownedParameter xmi:id="_6Udq5-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udq6OO8EdyGNPaNHSGn_w" name="getVersion" visibility="public">
+                    <ownedParameter xmi:id="_6Udq6eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udq6uO8EdyGNPaNHSGn_w" name="getFileExtents" visibility="public">
+                    <ownedParameter xmi:id="_6Udq6-O8EdyGNPaNHSGn_w" name="return" type="_6UUyp-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udq7OO8EdyGNPaNHSGn_w" name="setWarnings" visibility="public">
+                    <ownedParameter xmi:id="_6Udq7eO8EdyGNPaNHSGn_w" name="inWarning" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udq7uO8EdyGNPaNHSGn_w" name="getHeaderLength" visibility="public">
+                    <ownedParameter xmi:id="_6Udq7-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udq8OO8EdyGNPaNHSGn_w" name="getFileLength" visibility="public">
+                    <ownedParameter xmi:id="_6Udq8eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udq8uO8EdyGNPaNHSGn_w" name="readHeader" visibility="public">
+                    <ownedParameter xmi:id="_6Udq8-O8EdyGNPaNHSGn_w" name="in" type="_6UUwHOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udq9OO8EdyGNPaNHSGn_w" name="write" visibility="public">
+                    <ownedParameter xmi:id="_6Udq9eO8EdyGNPaNHSGn_w" name="out" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udq9uO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udq9-O8EdyGNPaNHSGn_w" name="numGeoms" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udq-OO8EdyGNPaNHSGn_w" name="length" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udq-eO8EdyGNPaNHSGn_w" name="minX" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udq-uO8EdyGNPaNHSGn_w" name="minY" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udq--O8EdyGNPaNHSGn_w" name="maxX" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udq_OO8EdyGNPaNHSGn_w" name="maxY" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udq_eO8EdyGNPaNHSGn_w" name="minZ" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udq_uO8EdyGNPaNHSGn_w" name="maxZ" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udq_-O8EdyGNPaNHSGn_w" name="minM" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdrAOO8EdyGNPaNHSGn_w" name="maxM" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrAeO8EdyGNPaNHSGn_w" name="warn" visibility="private">
+                    <ownedParameter xmi:id="_6UdrAuO8EdyGNPaNHSGn_w" name="inWarn" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdrA-O8EdyGNPaNHSGn_w" name="IndexedShpDriver" clientDependency="_6UdrEuO8EdyGNPaNHSGn_w _6UdrE-O8EdyGNPaNHSGn_w _6UdrFOO8EdyGNPaNHSGn_w _6UdrFeO8EdyGNPaNHSGn_w _6UdrFuO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdrBOO8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrBeO8EdyGNPaNHSGn_w" name="tempDirectoryPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrBuO8EdyGNPaNHSGn_w" name="fileShp" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrB-O8EdyGNPaNHSGn_w" name="fTemp" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrCOO8EdyGNPaNHSGn_w" name="bb" visibility="private" type="_6UUwHOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrCeO8EdyGNPaNHSGn_w" name="channel" visibility="private" type="_6UUwG-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrCuO8EdyGNPaNHSGn_w" name="fin" visibility="private" type="_6UUyqeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrC-O8EdyGNPaNHSGn_w" name="type" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrDOO8EdyGNPaNHSGn_w" name="numReg" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrDeO8EdyGNPaNHSGn_w" name="extent" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrDuO8EdyGNPaNHSGn_w" name="bbShx" visibility="private" type="_6UUwHOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrD-O8EdyGNPaNHSGn_w" name="channelShx" visibility="private" type="_6UUwG-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrEOO8EdyGNPaNHSGn_w" name="finShx" visibility="private" type="_6UUyqeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrEeO8EdyGNPaNHSGn_w" name="shpWriter" visibility="private" type="_6UdzDeO8EdyGNPaNHSGn_w" association="_6UdsK-O8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdrEuO8EdyGNPaNHSGn_w" name="VectorialFileDriver" supplier="_6UUt_OO8EdyGNPaNHSGn_w" client="_6UdrA-O8EdyGNPaNHSGn_w" contract="_6UUt_OO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdrE-O8EdyGNPaNHSGn_w" name="BoundedShapes" supplier="_6UUrZeO8EdyGNPaNHSGn_w" client="_6UdrA-O8EdyGNPaNHSGn_w" contract="_6UUrZeO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdrFOO8EdyGNPaNHSGn_w" name="ExternalData" supplier="_6UUtdOO8EdyGNPaNHSGn_w" client="_6UdrA-O8EdyGNPaNHSGn_w" contract="_6UUtdOO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdrFeO8EdyGNPaNHSGn_w" name="IWriteable" supplier="_6UdtUuO8EdyGNPaNHSGn_w" client="_6UdrA-O8EdyGNPaNHSGn_w" contract="_6UdtUuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdrFuO8EdyGNPaNHSGn_w" name="ISpatialWriter" supplier="_6UdtjuO8EdyGNPaNHSGn_w" client="_6UdrA-O8EdyGNPaNHSGn_w" contract="_6UdtjuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdrF-O8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdrGOO8EdyGNPaNHSGn_w" name="open" visibility="public">
+                    <ownedParameter xmi:id="_6UdrGeO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrGuO8EdyGNPaNHSGn_w" name="getShape" visibility="public">
+                    <ownedParameter xmi:id="_6UdrG-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdrHOO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrHeO8EdyGNPaNHSGn_w" name="getShapeCount" visibility="public">
+                    <ownedParameter xmi:id="_6UdrHuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrH-O8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                    <ownedParameter xmi:id="_6UdrIOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrIeO8EdyGNPaNHSGn_w" name="initialize" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdrIuO8EdyGNPaNHSGn_w" name="readPoint" visibility="private">
+                    <ownedParameter xmi:id="_6UdrI-O8EdyGNPaNHSGn_w" name="in" type="_6UUwHOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdrJOO8EdyGNPaNHSGn_w" name="return" type="_6UdsIOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrJeO8EdyGNPaNHSGn_w" name="readRectangle" visibility="private">
+                    <ownedParameter xmi:id="_6UdrJuO8EdyGNPaNHSGn_w" name="in" type="_6UUwHOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdrJ-O8EdyGNPaNHSGn_w" name="return" type="_6UUyquO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrKOO8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                    <ownedParameter xmi:id="_6UdrKeO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrKuO8EdyGNPaNHSGn_w" name="getShapeBounds" visibility="public">
+                    <ownedParameter xmi:id="_6UdrK-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdrLOO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrLeO8EdyGNPaNHSGn_w" name="accept" visibility="public">
+                    <ownedParameter xmi:id="_6UdrLuO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdrL-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrMOO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                    <ownedParameter xmi:id="_6UdrMeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrMuO8EdyGNPaNHSGn_w" name="getDataDriverName" visibility="public">
+                    <ownedParameter xmi:id="_6UdrM-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrNOO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                    <ownedParameter xmi:id="_6UdrNeO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdrNuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrN-O8EdyGNPaNHSGn_w" name="getDriverAttributes" visibility="public">
+                    <ownedParameter xmi:id="_6UdrOOO8EdyGNPaNHSGn_w" name="return" type="_6UUtbuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrOeO8EdyGNPaNHSGn_w" name="getPositionForRecord" visibility="private">
+                    <ownedParameter xmi:id="_6UdrOuO8EdyGNPaNHSGn_w" name="numRec" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdrO-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrPOO8EdyGNPaNHSGn_w" name="getFile" visibility="public">
+                    <ownedParameter xmi:id="_6UdrPeO8EdyGNPaNHSGn_w" name="return" type="_6UnhgeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrPuO8EdyGNPaNHSGn_w" name="reload" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdrP-O8EdyGNPaNHSGn_w" name="canWriteGeometry" visibility="public">
+                    <ownedParameter xmi:id="_6UdrQOO8EdyGNPaNHSGn_w" name="gvSIGgeometryType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdrQeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrQuO8EdyGNPaNHSGn_w" name="preProcess" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdrQ-O8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6UdrROO8EdyGNPaNHSGn_w" name="row" type="_6UdsWuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrReO8EdyGNPaNHSGn_w" name="postProcess" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdrRuO8EdyGNPaNHSGn_w" name="getCapability" visibility="public">
+                    <ownedParameter xmi:id="_6UdrR-O8EdyGNPaNHSGn_w" name="capability" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdrSOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrSeO8EdyGNPaNHSGn_w" name="setCapabilities" visibility="public">
+                    <ownedParameter xmi:id="_6UdrSuO8EdyGNPaNHSGn_w" name="capabilities" type="_6UUwJuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrS-O8EdyGNPaNHSGn_w" name="canWriteAttribute" visibility="public">
+                    <ownedParameter xmi:id="_6UdrTOO8EdyGNPaNHSGn_w" name="sqlType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdrTeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrTuO8EdyGNPaNHSGn_w" name="getShpWriter" visibility="public">
+                    <ownedParameter xmi:id="_6UdrT-O8EdyGNPaNHSGn_w" name="return" type="_6UdzDeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrUOO8EdyGNPaNHSGn_w" name="setShpWriter" visibility="public">
+                    <ownedParameter xmi:id="_6UdrUeO8EdyGNPaNHSGn_w" name="shpWriter" type="_6UdzDeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrUuO8EdyGNPaNHSGn_w" name="initialize" visibility="public">
+                    <ownedParameter xmi:id="_6UdrU-O8EdyGNPaNHSGn_w" name="layerDef" type="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrVOO8EdyGNPaNHSGn_w" name="isWritable" visibility="public">
+                    <ownedParameter xmi:id="_6UdrVeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrVuO8EdyGNPaNHSGn_w" name="getWriter" visibility="public">
+                    <ownedParameter xmi:id="_6UdrV-O8EdyGNPaNHSGn_w" name="return" type="_6UdsrOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrWOO8EdyGNPaNHSGn_w" name="getTableDefinition" visibility="public">
+                    <ownedParameter xmi:id="_6UdrWeO8EdyGNPaNHSGn_w" name="return" type="_6UUrbOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrWuO8EdyGNPaNHSGn_w" name="canAlterTable" visibility="public">
+                    <ownedParameter xmi:id="_6UdrW-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrXOO8EdyGNPaNHSGn_w" name="canSaveEdits" visibility="public">
+                    <ownedParameter xmi:id="_6UdrXeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrXuO8EdyGNPaNHSGn_w" name="isWriteAll" visibility="public">
+                    <ownedParameter xmi:id="_6UdrX-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrYOO8EdyGNPaNHSGn_w" name="getDataFile" visibility="public">
+                    <ownedParameter xmi:id="_6UdrYeO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdrYuO8EdyGNPaNHSGn_w" name="return" type="_6UnhgeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdrY-O8EdyGNPaNHSGn_w" name="DBFFromGeometries">
+                  <ownedAttribute xmi:id="_6UdrZOO8EdyGNPaNHSGn_w" name="geometries" visibility="private" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrZeO8EdyGNPaNHSGn_w" name="dbfPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrZuO8EdyGNPaNHSGn_w" name="dbfWrite" visibility="private" type="_6UdqnOO8EdyGNPaNHSGn_w" association="_6UdsLeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdrZ-O8EdyGNPaNHSGn_w" name="enteros" visibility="private" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdraOO8EdyGNPaNHSGn_w" name="record" visibility="private" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdraeO8EdyGNPaNHSGn_w" name="setFile" visibility="private">
+                    <ownedParameter xmi:id="_6UdrauO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udra-O8EdyGNPaNHSGn_w" name="create" visibility="public">
+                    <ownedParameter xmi:id="_6UdrbOO8EdyGNPaNHSGn_w" name="sds" type="_6Ud0m-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdrbeO8EdyGNPaNHSGn_w" name="bitset" type="_6UdsG-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrbuO8EdyGNPaNHSGn_w" name="createdbf" visibility="private">
+                    <ownedParameter xmi:id="_6Udrb-O8EdyGNPaNHSGn_w" name="sds" type="_6Ud0m-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdrcOO8EdyGNPaNHSGn_w" name="bitset" type="_6UdsG-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdrceO8EdyGNPaNHSGn_w" name="getWriteChannel" visibility="private">
+                    <ownedParameter xmi:id="_6UdrcuO8EdyGNPaNHSGn_w" name="path" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udrc-O8EdyGNPaNHSGn_w" name="return" type="_6UUwJeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Package" xmi:id="_6UdrdOO8EdyGNPaNHSGn_w" name="write">
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UdrdeO8EdyGNPaNHSGn_w" name="ShapefileException">
+                    <generalization xmi:id="_6UdrduO8EdyGNPaNHSGn_w" general="_6UnhhOO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6Udrd-O8EdyGNPaNHSGn_w" name="SHPMultiPoint" clientDependency="_6UdrfOO8EdyGNPaNHSGn_w">
+                    <ownedAttribute xmi:id="_6UdreOO8EdyGNPaNHSGn_w" name="m_type" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdreeO8EdyGNPaNHSGn_w" name="numpoints" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdreuO8EdyGNPaNHSGn_w" name="points" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udre-O8EdyGNPaNHSGn_w" name="zs" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <interfaceRealization xmi:id="_6UdrfOO8EdyGNPaNHSGn_w" name="SHPShape" supplier="_6Udr6-O8EdyGNPaNHSGn_w" client="_6Udrd-O8EdyGNPaNHSGn_w" contract="_6Udr6-O8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UdrfeO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                      <ownedParameter xmi:id="_6UdrfuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udrf-O8EdyGNPaNHSGn_w" name="read" visibility="public">
+                      <ownedParameter xmi:id="_6UdrgOO8EdyGNPaNHSGn_w" name="buffer" type="_6UUyqOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdrgeO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdrguO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udrg-O8EdyGNPaNHSGn_w" name="write" visibility="public">
+                      <ownedParameter xmi:id="_6UdrhOO8EdyGNPaNHSGn_w" name="buffer" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdrheO8EdyGNPaNHSGn_w" name="geometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdrhuO8EdyGNPaNHSGn_w" name="getLength" visibility="public">
+                      <ownedParameter xmi:id="_6Udrh-O8EdyGNPaNHSGn_w" name="fgeometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdriOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdrieO8EdyGNPaNHSGn_w" name="obtainsPoints" visibility="public">
+                      <ownedParameter xmi:id="_6UdriuO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6Udri-O8EdyGNPaNHSGn_w" name="SHPMultiLine" clientDependency="_6UdrkOO8EdyGNPaNHSGn_w">
+                    <ownedAttribute xmi:id="_6UdrjOO8EdyGNPaNHSGn_w" name="m_type" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdrjeO8EdyGNPaNHSGn_w" name="parts" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdrjuO8EdyGNPaNHSGn_w" name="points" visibility="protected" type="_6UUn_eO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udrj-O8EdyGNPaNHSGn_w" name="zs" visibility="protected" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <interfaceRealization xmi:id="_6UdrkOO8EdyGNPaNHSGn_w" name="SHPShape" supplier="_6Udr6-O8EdyGNPaNHSGn_w" client="_6Udri-O8EdyGNPaNHSGn_w" contract="_6Udr6-O8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UdrkeO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                      <ownedParameter xmi:id="_6UdrkuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udrk-O8EdyGNPaNHSGn_w" name="read" visibility="public">
+                      <ownedParameter xmi:id="_6UdrlOO8EdyGNPaNHSGn_w" name="buffer" type="_6UUyqOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdrleO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdrluO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udrl-O8EdyGNPaNHSGn_w" name="write" visibility="public">
+                      <ownedParameter xmi:id="_6UdrmOO8EdyGNPaNHSGn_w" name="buffer" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdrmeO8EdyGNPaNHSGn_w" name="geometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdrmuO8EdyGNPaNHSGn_w" name="getLength" visibility="public">
+                      <ownedParameter xmi:id="_6Udrm-O8EdyGNPaNHSGn_w" name="fgeometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdrnOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdrneO8EdyGNPaNHSGn_w" name="getGeneralPathX" visibility="protected">
+                      <ownedParameter xmi:id="_6UdrnuO8EdyGNPaNHSGn_w" name="po" type="_6UUn_eO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udrn-O8EdyGNPaNHSGn_w" name="pa" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdroOO8EdyGNPaNHSGn_w" name="return" type="_6UUgc-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdroeO8EdyGNPaNHSGn_w" name="obtainsPoints" visibility="public">
+                      <ownedParameter xmi:id="_6UdrouO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6Udro-O8EdyGNPaNHSGn_w" name="SHPPoint" clientDependency="_6Udrp-O8EdyGNPaNHSGn_w">
+                    <ownedAttribute xmi:id="_6UdrpOO8EdyGNPaNHSGn_w" name="m_type" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdrpeO8EdyGNPaNHSGn_w" name="point" visibility="private" type="_6UUn_eO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdrpuO8EdyGNPaNHSGn_w" name="z" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <interfaceRealization xmi:id="_6Udrp-O8EdyGNPaNHSGn_w" name="SHPShape" supplier="_6Udr6-O8EdyGNPaNHSGn_w" client="_6Udro-O8EdyGNPaNHSGn_w" contract="_6Udr6-O8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UdrqOO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                      <ownedParameter xmi:id="_6UdrqeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdrquO8EdyGNPaNHSGn_w" name="read" visibility="public">
+                      <ownedParameter xmi:id="_6Udrq-O8EdyGNPaNHSGn_w" name="buffer" type="_6UUyqOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdrrOO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdrreO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdrruO8EdyGNPaNHSGn_w" name="write" visibility="public">
+                      <ownedParameter xmi:id="_6Udrr-O8EdyGNPaNHSGn_w" name="buffer" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdrsOO8EdyGNPaNHSGn_w" name="geometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdrseO8EdyGNPaNHSGn_w" name="getLength" visibility="public">
+                      <ownedParameter xmi:id="_6UdrsuO8EdyGNPaNHSGn_w" name="fgeometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udrs-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdrtOO8EdyGNPaNHSGn_w" name="obtainsPoints" visibility="public">
+                      <ownedParameter xmi:id="_6UdrteO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UdrtuO8EdyGNPaNHSGn_w" name="SHPFileWrite">
+                    <ownedAttribute xmi:id="_6Udrt-O8EdyGNPaNHSGn_w" name="m_shape" visibility="private" type="_6Udr6-O8EdyGNPaNHSGn_w" association="_6UdsEuO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdruOO8EdyGNPaNHSGn_w" name="m_bb" visibility="private" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdrueO8EdyGNPaNHSGn_w" name="m_indexBuffer" visibility="private" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdruuO8EdyGNPaNHSGn_w" name="m_pos" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udru-O8EdyGNPaNHSGn_w" name="m_offset" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdrvOO8EdyGNPaNHSGn_w" name="m_type" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdrveO8EdyGNPaNHSGn_w" name="m_cnt" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdrvuO8EdyGNPaNHSGn_w" name="shpChannel" visibility="private" type="_6UUwG-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udrv-O8EdyGNPaNHSGn_w" name="shxChannel" visibility="private" type="_6UUwG-O8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UdrwOO8EdyGNPaNHSGn_w" name="checkShapeBuffer" visibility="private">
+                      <ownedParameter xmi:id="_6UdrweO8EdyGNPaNHSGn_w" name="size" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdrwuO8EdyGNPaNHSGn_w" name="drain" visibility="private"/>
+                    <ownedOperation xmi:id="_6Udrw-O8EdyGNPaNHSGn_w" name="allocateBuffers" visibility="private"/>
+                    <ownedOperation xmi:id="_6UdrxOO8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                    <ownedOperation xmi:id="_6UdrxeO8EdyGNPaNHSGn_w" name="write" visibility="public">
+                      <ownedParameter xmi:id="_6UdrxuO8EdyGNPaNHSGn_w" name="geometries" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udrx-O8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdryOO8EdyGNPaNHSGn_w" name="writeHeaders" visibility="private">
+                      <ownedParameter xmi:id="_6UdryeO8EdyGNPaNHSGn_w" name="geometries" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdryuO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udry-O8EdyGNPaNHSGn_w" name="writeHeaders" visibility="public">
+                      <ownedParameter xmi:id="_6UdrzOO8EdyGNPaNHSGn_w" name="bounds" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdrzeO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdrzuO8EdyGNPaNHSGn_w" name="numberOfGeometries" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udrz-O8EdyGNPaNHSGn_w" name="fileLength" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udr0OO8EdyGNPaNHSGn_w" name="writeIGeometry" visibility="public">
+                      <ownedParameter xmi:id="_6Udr0eO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udr0uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udr0-O8EdyGNPaNHSGn_w" name="writeGeometry" visibility="public">
+                      <ownedParameter xmi:id="_6Udr1OO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udr1eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udr1uO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                      <ownedParameter xmi:id="_6Udr1-O8EdyGNPaNHSGn_w" name="geometryType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udr2OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6Udr2eO8EdyGNPaNHSGn_w" name="SHPPolygon">
+                    <generalization xmi:id="_6Udr2uO8EdyGNPaNHSGn_w" general="_6Udri-O8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6Udr2-O8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                      <ownedParameter xmi:id="_6Udr3OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udr3eO8EdyGNPaNHSGn_w" name="read" visibility="public">
+                      <ownedParameter xmi:id="_6Udr3uO8EdyGNPaNHSGn_w" name="buffer" type="_6UUyqOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udr3-O8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udr4OO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udr4eO8EdyGNPaNHSGn_w" name="readPoints" visibility="private">
+                      <ownedParameter xmi:id="_6Udr4uO8EdyGNPaNHSGn_w" name="buffer" type="_6UUyqOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udr4-O8EdyGNPaNHSGn_w" name="numPoints" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udr5OO8EdyGNPaNHSGn_w" name="return" type="_6UUn_eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udr5eO8EdyGNPaNHSGn_w" name="write" visibility="public">
+                      <ownedParameter xmi:id="_6Udr5uO8EdyGNPaNHSGn_w" name="buffer" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udr5-O8EdyGNPaNHSGn_w" name="geometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udr6OO8EdyGNPaNHSGn_w" name="getLength" visibility="public">
+                      <ownedParameter xmi:id="_6Udr6eO8EdyGNPaNHSGn_w" name="fgeometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udr6uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Interface" xmi:id="_6Udr6-O8EdyGNPaNHSGn_w" name="SHPShape">
+                    <ownedOperation xmi:id="_6Udr7OO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                      <ownedParameter xmi:id="_6Udr7eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udr7uO8EdyGNPaNHSGn_w" name="read" visibility="public">
+                      <ownedParameter xmi:id="_6Udr7-O8EdyGNPaNHSGn_w" name="buffer" type="_6UUyqOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udr8OO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udr8eO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udr8uO8EdyGNPaNHSGn_w" name="write" visibility="public">
+                      <ownedParameter xmi:id="_6Udr8-O8EdyGNPaNHSGn_w" name="buffer" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udr9OO8EdyGNPaNHSGn_w" name="geometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udr9eO8EdyGNPaNHSGn_w" name="getLength" visibility="public">
+                      <ownedParameter xmi:id="_6Udr9uO8EdyGNPaNHSGn_w" name="fgeometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udr9-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udr-OO8EdyGNPaNHSGn_w" name="obtainsPoints" visibility="public">
+                      <ownedParameter xmi:id="_6Udr-eO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6Udr-uO8EdyGNPaNHSGn_w" name="DBFFromSelected">
+                    <ownedAttribute xmi:id="_6Udr--O8EdyGNPaNHSGn_w" name="fgs" visibility="private" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udr_OO8EdyGNPaNHSGn_w" name="hasdbf" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udr_eO8EdyGNPaNHSGn_w" name="dbfPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udr_uO8EdyGNPaNHSGn_w" name="temp" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udr_-O8EdyGNPaNHSGn_w" name="dbfWrite" visibility="private" type="_6UdqnOO8EdyGNPaNHSGn_w" association="_6UdsFOO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdsAOO8EdyGNPaNHSGn_w" name="enteros" visibility="private" type="_6UdsEeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdsAeO8EdyGNPaNHSGn_w" name="sds" visibility="private" type="_6Ud0m-O8EdyGNPaNHSGn_w" association="_6UdsFuO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdsAuO8EdyGNPaNHSGn_w" name="record" visibility="private" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UdsA-O8EdyGNPaNHSGn_w" name="setFile" visibility="public">
+                      <ownedParameter xmi:id="_6UdsBOO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdsBeO8EdyGNPaNHSGn_w" name="setIsNewDBF" visibility="public">
+                      <ownedParameter xmi:id="_6UdsBuO8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdsB-O8EdyGNPaNHSGn_w" name="setGeometries" visibility="public">
+                      <ownedParameter xmi:id="_6UdsCOO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdsCeO8EdyGNPaNHSGn_w" name="start" visibility="public">
+                      <ownedParameter xmi:id="_6UdsCuO8EdyGNPaNHSGn_w" name="sds" type="_6Ud0m-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdsC-O8EdyGNPaNHSGn_w" name="stop" visibility="public"/>
+                    <ownedOperation xmi:id="_6UdsDOO8EdyGNPaNHSGn_w" name="createdbf" visibility="public">
+                      <ownedParameter xmi:id="_6UdsDeO8EdyGNPaNHSGn_w" name="bitset" type="_6Ud3HOO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdsDuO8EdyGNPaNHSGn_w" name="getWriteChannel" visibility="private">
+                      <ownedParameter xmi:id="_6UdsD-O8EdyGNPaNHSGn_w" name="path" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdsEOO8EdyGNPaNHSGn_w" name="return" type="_6UUwJeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsEeO8EdyGNPaNHSGn_w" name="Integer"/>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UdsEuO8EdyGNPaNHSGn_w" memberEnd="_6Udrt-O8EdyGNPaNHSGn_w _6UdsE-O8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UdsE-O8EdyGNPaNHSGn_w" name="target" type="_6UdrtuO8EdyGNPaNHSGn_w" association="_6UdsEuO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UdsFOO8EdyGNPaNHSGn_w" memberEnd="_6Udr_-O8EdyGNPaNHSGn_w _6UdsFeO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UdsFeO8EdyGNPaNHSGn_w" name="target" type="_6Udr-uO8EdyGNPaNHSGn_w" association="_6UdsFOO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UdsFuO8EdyGNPaNHSGn_w" memberEnd="_6UdsAeO8EdyGNPaNHSGn_w _6UdsF-O8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UdsF-O8EdyGNPaNHSGn_w" name="target" type="_6Udr-uO8EdyGNPaNHSGn_w" association="_6UdsFuO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsGOO8EdyGNPaNHSGn_w" name="BigByteBuffer"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsGeO8EdyGNPaNHSGn_w" name="CharBuffer"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsGuO8EdyGNPaNHSGn_w" name="CharsetDecoder"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsG-O8EdyGNPaNHSGn_w" name="BitSet"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsHOO8EdyGNPaNHSGn_w" name="ReadableByteChannel"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsHeO8EdyGNPaNHSGn_w" name="NumberParser"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsHuO8EdyGNPaNHSGn_w" name="DataSource"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsH-O8EdyGNPaNHSGn_w" name="DbaseFileWriterNIO.FieldFormatter"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsIOO8EdyGNPaNHSGn_w" name="Point2D.Double"/>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdsIeO8EdyGNPaNHSGn_w" memberEnd="_6UdpzOO8EdyGNPaNHSGn_w _6UdsIuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdsIuO8EdyGNPaNHSGn_w" name="target" type="_6Udpy-O8EdyGNPaNHSGn_w" association="_6UdsIeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdsI-O8EdyGNPaNHSGn_w" memberEnd="_6UdqGOO8EdyGNPaNHSGn_w _6UdsJOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdsJOO8EdyGNPaNHSGn_w" name="target" type="_6UdqF-O8EdyGNPaNHSGn_w" association="_6UdsI-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdsJeO8EdyGNPaNHSGn_w" memberEnd="_6UdqIOO8EdyGNPaNHSGn_w _6UdsJuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdsJuO8EdyGNPaNHSGn_w" name="target" type="_6UdqF-O8EdyGNPaNHSGn_w" association="_6UdsJeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdsJ-O8EdyGNPaNHSGn_w" memberEnd="_6UdqVeO8EdyGNPaNHSGn_w _6UdsKOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdsKOO8EdyGNPaNHSGn_w" name="target" type="_6UdqSeO8EdyGNPaNHSGn_w" association="_6UdsJ-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdsKeO8EdyGNPaNHSGn_w" memberEnd="_6UdqneO8EdyGNPaNHSGn_w _6UdsKuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdsKuO8EdyGNPaNHSGn_w" name="target" type="_6UdqnOO8EdyGNPaNHSGn_w" association="_6UdsKeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdsK-O8EdyGNPaNHSGn_w" memberEnd="_6UdrEeO8EdyGNPaNHSGn_w _6UdsLOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdsLOO8EdyGNPaNHSGn_w" name="target" type="_6UdrA-O8EdyGNPaNHSGn_w" association="_6UdsK-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdsLeO8EdyGNPaNHSGn_w" memberEnd="_6UdrZuO8EdyGNPaNHSGn_w _6UdsLuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdsLuO8EdyGNPaNHSGn_w" name="target" type="_6UdrY-O8EdyGNPaNHSGn_w" association="_6UdsLeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsL-O8EdyGNPaNHSGn_w" name="Hashtable"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsMOO8EdyGNPaNHSGn_w" name="ResultSet"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsMeO8EdyGNPaNHSGn_w" name="Statement"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsMuO8EdyGNPaNHSGn_w" name="ResultSetMetaData"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsM-O8EdyGNPaNHSGn_w" name="DataSourceFactory"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsNOO8EdyGNPaNHSGn_w" name="DriverEventListener"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsNeO8EdyGNPaNHSGn_w" name="Connection"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsNuO8EdyGNPaNHSGn_w" name="DefaultTableModel"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsN-O8EdyGNPaNHSGn_w" name="DataWare"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsOOO8EdyGNPaNHSGn_w" name="ByteBuffer"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsOeO8EdyGNPaNHSGn_w" name="FMultiPoint2D"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsOuO8EdyGNPaNHSGn_w" name="FPolyline2D"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsO-O8EdyGNPaNHSGn_w" name="FPolygon2D"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsPOO8EdyGNPaNHSGn_w" name="FGeometryCollection"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsPeO8EdyGNPaNHSGn_w" name="Reader"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdsPuO8EdyGNPaNHSGn_w" name="StreamTokenizer"/>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdsP-O8EdyGNPaNHSGn_w" memberEnd="_6UUrxeO8EdyGNPaNHSGn_w _6UdsQOO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdsQOO8EdyGNPaNHSGn_w" name="target" type="_6UUrwuO8EdyGNPaNHSGn_w" association="_6UdsP-O8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdsQeO8EdyGNPaNHSGn_w" memberEnd="_6UUrxuO8EdyGNPaNHSGn_w _6UdsQuO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdsQuO8EdyGNPaNHSGn_w" name="target" type="_6UUrwuO8EdyGNPaNHSGn_w" association="_6UdsQeO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdsQ-O8EdyGNPaNHSGn_w" memberEnd="_6UUsS-O8EdyGNPaNHSGn_w _6UdsROO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdsROO8EdyGNPaNHSGn_w" name="target" type="_6UUsSeO8EdyGNPaNHSGn_w" association="_6UdsQ-O8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdsReO8EdyGNPaNHSGn_w" memberEnd="_6UUs3-O8EdyGNPaNHSGn_w _6UdsRuO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdsRuO8EdyGNPaNHSGn_w" name="target" type="_6UUs3uO8EdyGNPaNHSGn_w" association="_6UdsReO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdsR-O8EdyGNPaNHSGn_w" memberEnd="_6UUtJOO8EdyGNPaNHSGn_w _6UdsSOO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdsSOO8EdyGNPaNHSGn_w" name="target" type="_6UUtGOO8EdyGNPaNHSGn_w" association="_6UdsR-O8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdsSeO8EdyGNPaNHSGn_w" memberEnd="_6UUtO-O8EdyGNPaNHSGn_w _6UdsSuO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdsSuO8EdyGNPaNHSGn_w" name="target" type="_6UUtN-O8EdyGNPaNHSGn_w" association="_6UdsSeO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdsS-O8EdyGNPaNHSGn_w" memberEnd="_6UUtPeO8EdyGNPaNHSGn_w _6UdsTOO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdsTOO8EdyGNPaNHSGn_w" name="target" type="_6UUtN-O8EdyGNPaNHSGn_w" association="_6UdsS-O8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdsTeO8EdyGNPaNHSGn_w" memberEnd="_6UUuTuO8EdyGNPaNHSGn_w _6UdsTuO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdsTuO8EdyGNPaNHSGn_w" name="target" type="_6UUuTOO8EdyGNPaNHSGn_w" association="_6UdsTeO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdsT-O8EdyGNPaNHSGn_w" memberEnd="_6UUur-O8EdyGNPaNHSGn_w _6UdsUOO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdsUOO8EdyGNPaNHSGn_w" name="target" type="_6UUureO8EdyGNPaNHSGn_w" association="_6UdsT-O8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UdsUeO8EdyGNPaNHSGn_w" name="edition">
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UdsUuO8EdyGNPaNHSGn_w" name="AfterFieldEditEvent">
+                <generalization xmi:id="_6UdsU-O8EdyGNPaNHSGn_w" general="_6UdsieO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsVOO8EdyGNPaNHSGn_w" name="fieldChanged" type="_6UUuEOO8EdyGNPaNHSGn_w" association="_6UdzmuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsVeO8EdyGNPaNHSGn_w" name="changeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UdsVuO8EdyGNPaNHSGn_w" name="getChangeType" visibility="public">
+                  <ownedParameter xmi:id="_6UdsV-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsWOO8EdyGNPaNHSGn_w" name="getFieldChanged" visibility="public">
+                  <ownedParameter xmi:id="_6UdsWeO8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UdsWuO8EdyGNPaNHSGn_w" name="IRowEdited">
+                <generalization xmi:id="_6UdsW-O8EdyGNPaNHSGn_w" general="_6UUekOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsXOO8EdyGNPaNHSGn_w" name="STATUS_ORIGINAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsXeO8EdyGNPaNHSGn_w" name="STATUS_MODIFIED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsXuO8EdyGNPaNHSGn_w" name="STATUS_DELETED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsX-O8EdyGNPaNHSGn_w" name="STATUS_ADDED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UdsYOO8EdyGNPaNHSGn_w" name="getLinkedRow">
+                  <ownedParameter xmi:id="_6UdsYeO8EdyGNPaNHSGn_w" name="return" type="_6UUekOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsYuO8EdyGNPaNHSGn_w" name="getStatus">
+                  <ownedParameter xmi:id="_6UdsY-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsZOO8EdyGNPaNHSGn_w" name="getIndex">
+                  <ownedParameter xmi:id="_6UdsZeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UdsZuO8EdyGNPaNHSGn_w" name="DefaultRowEdited" clientDependency="_6UdsauO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UdsZ-O8EdyGNPaNHSGn_w" name="row" visibility="private" type="_6UUekOO8EdyGNPaNHSGn_w" association="_6UdznOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsaOO8EdyGNPaNHSGn_w" name="status" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsaeO8EdyGNPaNHSGn_w" name="index" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UdsauO8EdyGNPaNHSGn_w" name="IRowEdited" supplier="_6UdsWuO8EdyGNPaNHSGn_w" client="_6UdsZuO8EdyGNPaNHSGn_w" contract="_6UdsWuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Udsa-O8EdyGNPaNHSGn_w" name="getLinkedRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdsbOO8EdyGNPaNHSGn_w" name="return" type="_6UUekOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsbeO8EdyGNPaNHSGn_w" name="getStatus" visibility="public">
+                  <ownedParameter xmi:id="_6UdsbuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udsb-O8EdyGNPaNHSGn_w" name="getID" visibility="public">
+                  <ownedParameter xmi:id="_6UdscOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsceO8EdyGNPaNHSGn_w" name="getAttribute" visibility="public">
+                  <ownedParameter xmi:id="_6UdscuO8EdyGNPaNHSGn_w" name="fieldIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udsc-O8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsdOO8EdyGNPaNHSGn_w" name="getAttributes" visibility="public">
+                  <ownedParameter xmi:id="_6UdsdeO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsduO8EdyGNPaNHSGn_w" name="cloneRow" visibility="public">
+                  <ownedParameter xmi:id="_6Udsd-O8EdyGNPaNHSGn_w" name="return" type="_6UUekOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdseOO8EdyGNPaNHSGn_w" name="getIndex" visibility="public">
+                  <ownedParameter xmi:id="_6UdseeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdseuO8EdyGNPaNHSGn_w" name="setID" visibility="public">
+                  <ownedParameter xmi:id="_6Udse-O8EdyGNPaNHSGn_w" name="ID" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsfOO8EdyGNPaNHSGn_w" name="setAttributes" visibility="public">
+                  <ownedParameter xmi:id="_6UdsfeO8EdyGNPaNHSGn_w" name="att" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UdsfuO8EdyGNPaNHSGn_w" name="BeforeFieldEditEvent">
+                <generalization xmi:id="_6Udsf-O8EdyGNPaNHSGn_w" general="_6UdsieO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsgOO8EdyGNPaNHSGn_w" name="newField" type="_6UUuEOO8EdyGNPaNHSGn_w" association="_6UdznuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsgeO8EdyGNPaNHSGn_w" name="changeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsguO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Udsg-O8EdyGNPaNHSGn_w" name="getCancel" visibility="public">
+                  <ownedParameter xmi:id="_6UdshOO8EdyGNPaNHSGn_w" name="return" type="_6UnhkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsheO8EdyGNPaNHSGn_w" name="getChangeType" visibility="public">
+                  <ownedParameter xmi:id="_6UdshuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udsh-O8EdyGNPaNHSGn_w" name="getNewField" visibility="public">
+                  <ownedParameter xmi:id="_6UdsiOO8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UdsieO8EdyGNPaNHSGn_w" name="EditionEvent">
+                <ownedAttribute xmi:id="_6UdsiuO8EdyGNPaNHSGn_w" name="START_EDITION" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udsi-O8EdyGNPaNHSGn_w" name="STOP_EDITION" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsjOO8EdyGNPaNHSGn_w" name="CANCEL_EDITION" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsjeO8EdyGNPaNHSGn_w" name="ROW_EDITION" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsjuO8EdyGNPaNHSGn_w" name="FIELD_EDITION" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udsj-O8EdyGNPaNHSGn_w" name="CHANGE_TYPE_ADD" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdskOO8EdyGNPaNHSGn_w" name="CHANGE_TYPE_MODIFY" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdskeO8EdyGNPaNHSGn_w" name="CHANGE_TYPE_DELETE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdskuO8EdyGNPaNHSGn_w" name="ALPHANUMERIC" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udsk-O8EdyGNPaNHSGn_w" name="GRAPHIC" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdslOO8EdyGNPaNHSGn_w" name="source" type="_6UdtqOO8EdyGNPaNHSGn_w" association="_6UdzoOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsleO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsluO8EdyGNPaNHSGn_w" name="changeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Udsl-O8EdyGNPaNHSGn_w" name="getSource" visibility="public">
+                  <ownedParameter xmi:id="_6UdsmOO8EdyGNPaNHSGn_w" name="return" type="_6UdtqOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsmeO8EdyGNPaNHSGn_w" name="getChangeType" visibility="public">
+                  <ownedParameter xmi:id="_6UdsmuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udsm-O8EdyGNPaNHSGn_w" name="getSourceType" visibility="public">
+                  <ownedParameter xmi:id="_6UdsnOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UdsneO8EdyGNPaNHSGn_w" name="IFieldManager">
+                <ownedOperation xmi:id="_6UdsnuO8EdyGNPaNHSGn_w" name="getOriginalFields" visibility="public">
+                  <ownedParameter xmi:id="_6Udsn-O8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsoOO8EdyGNPaNHSGn_w" name="addField" visibility="public">
+                  <ownedParameter xmi:id="_6UdsoeO8EdyGNPaNHSGn_w" name="fieldDesc" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsouO8EdyGNPaNHSGn_w" name="removeField" visibility="public">
+                  <ownedParameter xmi:id="_6Udso-O8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdspOO8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdspeO8EdyGNPaNHSGn_w" name="renameField" visibility="public">
+                  <ownedParameter xmi:id="_6UdspuO8EdyGNPaNHSGn_w" name="antName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udsp-O8EdyGNPaNHSGn_w" name="newName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsqOO8EdyGNPaNHSGn_w" name="alterTable" visibility="public">
+                  <ownedParameter xmi:id="_6UdsqeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsquO8EdyGNPaNHSGn_w" name="getFields" visibility="public">
+                  <ownedParameter xmi:id="_6Udsq-O8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UdsrOO8EdyGNPaNHSGn_w" name="IWriter">
+                <ownedOperation xmi:id="_6UdsreO8EdyGNPaNHSGn_w" name="preProcess"/>
+                <ownedOperation xmi:id="_6UdsruO8EdyGNPaNHSGn_w" name="process">
+                  <ownedParameter xmi:id="_6Udsr-O8EdyGNPaNHSGn_w" name="row" type="_6UdsWuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdssOO8EdyGNPaNHSGn_w" name="postProcess"/>
+                <ownedOperation xmi:id="_6UdsseO8EdyGNPaNHSGn_w" name="getCapability" visibility="public">
+                  <ownedParameter xmi:id="_6UdssuO8EdyGNPaNHSGn_w" name="capability" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udss-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdstOO8EdyGNPaNHSGn_w" name="setCapabilities" visibility="public">
+                  <ownedParameter xmi:id="_6UdsteO8EdyGNPaNHSGn_w" name="capabilities" type="_6UUwJuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdstuO8EdyGNPaNHSGn_w" name="canWriteAttribute" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6Udst-O8EdyGNPaNHSGn_w" name="sqlType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdsuOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsueO8EdyGNPaNHSGn_w" name="canAlterTable" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UdsuuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udsu-O8EdyGNPaNHSGn_w" name="canSaveEdits" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UdsvOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsveO8EdyGNPaNHSGn_w" name="initialize" visibility="public">
+                  <ownedParameter xmi:id="_6UdsvuO8EdyGNPaNHSGn_w" name="tableDefinition" type="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udsv-O8EdyGNPaNHSGn_w" name="getTableDefinition" visibility="public">
+                  <ownedParameter xmi:id="_6UdswOO8EdyGNPaNHSGn_w" name="return" type="_6UUrbOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdsweO8EdyGNPaNHSGn_w" name="isWriteAll" visibility="public">
+                  <ownedParameter xmi:id="_6UdswuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Udsw-O8EdyGNPaNHSGn_w" name="VectorialEditableAdapter" clientDependency="_6UdszOO8EdyGNPaNHSGn_w _6UdszeO8EdyGNPaNHSGn_w">
+                <generalization xmi:id="_6UdsxOO8EdyGNPaNHSGn_w" general="_6Udu4-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsxeO8EdyGNPaNHSGn_w" name="ova" visibility="protected" type="_6Ud2MeO8EdyGNPaNHSGn_w" association="_6UdzouO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsxuO8EdyGNPaNHSGn_w" name="fmapSpatialIndex" visibility="protected" type="_6UneoOO8EdyGNPaNHSGn_w" association="_6UdzpOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udsx-O8EdyGNPaNHSGn_w" name="fullExtent" visibility="protected" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsyOO8EdyGNPaNHSGn_w" name="selectionImage" visibility="protected" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsyeO8EdyGNPaNHSGn_w" name="handlersImage" visibility="protected" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdsyuO8EdyGNPaNHSGn_w" name="projection" visibility="protected" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udsy-O8EdyGNPaNHSGn_w" name="ct" visibility="private" type="_6UnhkOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UdszOO8EdyGNPaNHSGn_w" name="ReadableVectorial" supplier="_6Ud2MeO8EdyGNPaNHSGn_w" client="_6Udsw-O8EdyGNPaNHSGn_w" contract="_6Ud2MeO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UdszeO8EdyGNPaNHSGn_w" name="BoundedShapes" supplier="_6UUrZeO8EdyGNPaNHSGn_w" client="_6Udsw-O8EdyGNPaNHSGn_w" contract="_6UUrZeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UdszuO8EdyGNPaNHSGn_w" name="setOriginalVectorialAdapter" visibility="public">
+                  <ownedParameter xmi:id="_6Udsz-O8EdyGNPaNHSGn_w" name="rv" type="_6Ud2MeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds0OO8EdyGNPaNHSGn_w" name="start" visibility="public"/>
+                <ownedOperation xmi:id="_6Uds0eO8EdyGNPaNHSGn_w" name="getWriter" visibility="public">
+                  <ownedParameter xmi:id="_6Uds0uO8EdyGNPaNHSGn_w" name="return" type="_6UdsrOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds0-O8EdyGNPaNHSGn_w" name="stop" visibility="public"/>
+                <ownedOperation xmi:id="_6Uds1OO8EdyGNPaNHSGn_w" name="getShape" visibility="public">
+                  <ownedParameter xmi:id="_6Uds1eO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uds1uO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds1-O8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6Uds2OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds2eO8EdyGNPaNHSGn_w" name="getOriginalAdapter" visibility="public">
+                  <ownedParameter xmi:id="_6Uds2uO8EdyGNPaNHSGn_w" name="return" type="_6Ud2MeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds2-O8EdyGNPaNHSGn_w" name="getDriver" visibility="public">
+                  <ownedParameter xmi:id="_6Uds3OO8EdyGNPaNHSGn_w" name="return" type="_6UUuxeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds3eO8EdyGNPaNHSGn_w" name="setDriver" visibility="public">
+                  <ownedParameter xmi:id="_6Uds3uO8EdyGNPaNHSGn_w" name="driver" type="_6UUuxeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds3-O8EdyGNPaNHSGn_w" name="getDriverAttributes" visibility="public">
+                  <ownedParameter xmi:id="_6Uds4OO8EdyGNPaNHSGn_w" name="return" type="_6UUtbuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds4eO8EdyGNPaNHSGn_w" name="startEdition" visibility="public">
+                  <ownedParameter xmi:id="_6Uds4uO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds4-O8EdyGNPaNHSGn_w" name="getRow" visibility="public">
+                  <ownedParameter xmi:id="_6Uds5OO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uds5eO8EdyGNPaNHSGn_w" name="return" type="_6UdsWuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds5uO8EdyGNPaNHSGn_w" name="doRemoveRow" visibility="public">
+                  <ownedParameter xmi:id="_6Uds5-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uds6OO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uds6eO8EdyGNPaNHSGn_w" name="return" type="_6UUekOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds6uO8EdyGNPaNHSGn_w" name="doModifyRow" visibility="public">
+                  <ownedParameter xmi:id="_6Uds6-O8EdyGNPaNHSGn_w" name="calculatedIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uds7OO8EdyGNPaNHSGn_w" name="feat" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uds7eO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uds7uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds7-O8EdyGNPaNHSGn_w" name="undoModifyRow" visibility="public">
+                  <ownedParameter xmi:id="_6Uds8OO8EdyGNPaNHSGn_w" name="calculatedIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uds8eO8EdyGNPaNHSGn_w" name="previousExpansionFileIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uds8uO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds8-O8EdyGNPaNHSGn_w" name="doAddRow" visibility="public">
+                  <ownedParameter xmi:id="_6Uds9OO8EdyGNPaNHSGn_w" name="feat" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uds9eO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uds9uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds9-O8EdyGNPaNHSGn_w" name="undoRemoveRow" visibility="public">
+                  <ownedParameter xmi:id="_6Uds-OO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uds-eO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds-uO8EdyGNPaNHSGn_w" name="undoAddRow" visibility="public">
+                  <ownedParameter xmi:id="_6Uds--O8EdyGNPaNHSGn_w" name="calculatedIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uds_OO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds_eO8EdyGNPaNHSGn_w" name="getShapeCount" visibility="public">
+                  <ownedParameter xmi:id="_6Uds_uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uds_-O8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6UdtAOO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtAeO8EdyGNPaNHSGn_w" name="reCalculateFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6UdtAuO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtA-O8EdyGNPaNHSGn_w" name="getFeature" visibility="public">
+                  <ownedParameter xmi:id="_6UdtBOO8EdyGNPaNHSGn_w" name="numReg" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtBeO8EdyGNPaNHSGn_w" name="return" type="_6UUetuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtBuO8EdyGNPaNHSGn_w" name="stopEdition" visibility="public">
+                  <ownedParameter xmi:id="_6UdtB-O8EdyGNPaNHSGn_w" name="writer" type="_6UdsrOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtCOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtCeO8EdyGNPaNHSGn_w" name="getShapeBounds" visibility="public">
+                  <ownedParameter xmi:id="_6UdtCuO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtC-O8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtDOO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UdtDeO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtDuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtD-O8EdyGNPaNHSGn_w" name="getFeatures" visibility="public">
+                  <ownedParameter xmi:id="_6UdtEOO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtEeO8EdyGNPaNHSGn_w" name="strEPSG" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtEuO8EdyGNPaNHSGn_w" name="return" type="_6UdsWuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtE-O8EdyGNPaNHSGn_w" name="setFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6UdtFOO8EdyGNPaNHSGn_w" name="fullExtent2" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtFeO8EdyGNPaNHSGn_w" name="getSelectionImage" visibility="public">
+                  <ownedParameter xmi:id="_6UdtFuO8EdyGNPaNHSGn_w" name="return" type="_6UUpzeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtF-O8EdyGNPaNHSGn_w" name="getHandlersImage" visibility="public">
+                  <ownedParameter xmi:id="_6UdtGOO8EdyGNPaNHSGn_w" name="return" type="_6UUpzeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtGeO8EdyGNPaNHSGn_w" name="setSelectionImage" visibility="public">
+                  <ownedParameter xmi:id="_6UdtGuO8EdyGNPaNHSGn_w" name="i" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtG-O8EdyGNPaNHSGn_w" name="setHandlersImage" visibility="public">
+                  <ownedParameter xmi:id="_6UdtHOO8EdyGNPaNHSGn_w" name="handlersImage" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtHeO8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6UdtHuO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtH-O8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6UdtIOO8EdyGNPaNHSGn_w" name="fields" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtIeO8EdyGNPaNHSGn_w" name="newProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtIuO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtI-O8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6UdtJOO8EdyGNPaNHSGn_w" name="sql" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtJeO8EdyGNPaNHSGn_w" name="newProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtJuO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtJ-O8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6UdtKOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtKeO8EdyGNPaNHSGn_w" name="fields" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtKuO8EdyGNPaNHSGn_w" name="newProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtK-O8EdyGNPaNHSGn_w" name="fastIteration" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtLOO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtLeO8EdyGNPaNHSGn_w" name="getSpatialIndex" visibility="public">
+                  <ownedParameter xmi:id="_6UdtLuO8EdyGNPaNHSGn_w" name="return" type="_6UneoOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtL-O8EdyGNPaNHSGn_w" name="setSpatialIndex" visibility="public">
+                  <ownedParameter xmi:id="_6UdtMOO8EdyGNPaNHSGn_w" name="spatialIndex" type="_6UneoOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtMeO8EdyGNPaNHSGn_w" name="setProjection" visibility="public">
+                  <ownedParameter xmi:id="_6UdtMuO8EdyGNPaNHSGn_w" name="projection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtM-O8EdyGNPaNHSGn_w" name="getProjection" visibility="public">
+                  <ownedParameter xmi:id="_6UdtNOO8EdyGNPaNHSGn_w" name="return" type="_6UnhiuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtNeO8EdyGNPaNHSGn_w" name="cancelEdition" visibility="public">
+                  <ownedParameter xmi:id="_6UdtNuO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtN-O8EdyGNPaNHSGn_w" name="setCoordTrans" visibility="public">
+                  <ownedParameter xmi:id="_6UdtOOO8EdyGNPaNHSGn_w" name="ct" type="_6UnhkOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UdtOeO8EdyGNPaNHSGn_w" name="DbSchemaManager" clientDependency="_6UdtO-O8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UdtOuO8EdyGNPaNHSGn_w" name="conn" visibility="private" type="_6UdsNeO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UdtO-O8EdyGNPaNHSGn_w" name="IDbSchemaManager" supplier="_6UdwG-O8EdyGNPaNHSGn_w" client="_6UdtOeO8EdyGNPaNHSGn_w" contract="_6UdwG-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UdtPOO8EdyGNPaNHSGn_w" name="getConnection" visibility="public">
+                  <ownedParameter xmi:id="_6UdtPeO8EdyGNPaNHSGn_w" name="return" type="_6UdsNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtPuO8EdyGNPaNHSGn_w" name="createSchema" visibility="public">
+                  <ownedParameter xmi:id="_6UdtP-O8EdyGNPaNHSGn_w" name="dbLayerDef" type="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtQOO8EdyGNPaNHSGn_w" name="removeSchema" visibility="public">
+                  <ownedParameter xmi:id="_6UdtQeO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtQuO8EdyGNPaNHSGn_w" name="renameSchema" visibility="public">
+                  <ownedParameter xmi:id="_6UdtQ-O8EdyGNPaNHSGn_w" name="antName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtROO8EdyGNPaNHSGn_w" name="newName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UdtReO8EdyGNPaNHSGn_w" name="IEditionListener">
+                <ownedOperation xmi:id="_6UdtRuO8EdyGNPaNHSGn_w" name="processEvent">
+                  <ownedParameter xmi:id="_6UdtR-O8EdyGNPaNHSGn_w" name="e" type="_6UdsieO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtSOO8EdyGNPaNHSGn_w" name="beforeRowEditEvent">
+                  <ownedParameter xmi:id="_6UdtSeO8EdyGNPaNHSGn_w" name="feat" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtSuO8EdyGNPaNHSGn_w" name="e" type="_6UdwPOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtS-O8EdyGNPaNHSGn_w" name="afterRowEditEvent">
+                  <ownedParameter xmi:id="_6UdtTOO8EdyGNPaNHSGn_w" name="feat" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtTeO8EdyGNPaNHSGn_w" name="e" type="_6Udv5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtTuO8EdyGNPaNHSGn_w" name="beforeFieldEditEvent">
+                  <ownedParameter xmi:id="_6UdtT-O8EdyGNPaNHSGn_w" name="e" type="_6UdsfuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtUOO8EdyGNPaNHSGn_w" name="afterFieldEditEvent">
+                  <ownedParameter xmi:id="_6UdtUeO8EdyGNPaNHSGn_w" name="e" type="_6UdsUuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UdtUuO8EdyGNPaNHSGn_w" name="IWriteable">
+                <ownedOperation xmi:id="_6UdtU-O8EdyGNPaNHSGn_w" name="getWriter">
+                  <ownedParameter xmi:id="_6UdtVOO8EdyGNPaNHSGn_w" name="return" type="_6UdsrOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UdtVeO8EdyGNPaNHSGn_w" name="AnnotationEditableAdapter">
+                <generalization xmi:id="_6UdtVuO8EdyGNPaNHSGn_w" general="_6Udsw-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdtV-O8EdyGNPaNHSGn_w" name="labels" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdtWOO8EdyGNPaNHSGn_w" name="mapping" visibility="private" type="_6Ud62eO8EdyGNPaNHSGn_w" association="_6UdzpuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdtWeO8EdyGNPaNHSGn_w" name="legend" visibility="private" type="_6UnbUOO8EdyGNPaNHSGn_w" association="_6UdzqOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdtWuO8EdyGNPaNHSGn_w" name="isInPixels" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdtW-O8EdyGNPaNHSGn_w" name="lyrAnnotation" visibility="private" type="_6Ud3J-O8EdyGNPaNHSGn_w" association="_6UdzquO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdtXOO8EdyGNPaNHSGn_w" name="labelExpansion" visibility="private" type="_6UdwH-O8EdyGNPaNHSGn_w" association="_6UdzrOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdtXeO8EdyGNPaNHSGn_w" name="isToSave" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UdtXuO8EdyGNPaNHSGn_w" name="createLabel" visibility="public">
+                  <ownedParameter xmi:id="_6UdtX-O8EdyGNPaNHSGn_w" name="row" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtYOO8EdyGNPaNHSGn_w" name="return" type="_6UUpfOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtYeO8EdyGNPaNHSGn_w" name="doAddRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdtYuO8EdyGNPaNHSGn_w" name="feat" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtY-O8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtZOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtZeO8EdyGNPaNHSGn_w" name="doModifyRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdtZuO8EdyGNPaNHSGn_w" name="calculatedIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtZ-O8EdyGNPaNHSGn_w" name="feat" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtaOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtaeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtauO8EdyGNPaNHSGn_w" name="doRemoveRow" visibility="public">
+                  <ownedParameter xmi:id="_6Udta-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtbOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtbeO8EdyGNPaNHSGn_w" name="return" type="_6UUekOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtbuO8EdyGNPaNHSGn_w" name="undoAddRow" visibility="public">
+                  <ownedParameter xmi:id="_6Udtb-O8EdyGNPaNHSGn_w" name="calculatedIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtcOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtceO8EdyGNPaNHSGn_w" name="undoModifyRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdtcuO8EdyGNPaNHSGn_w" name="calculatedIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udtc-O8EdyGNPaNHSGn_w" name="previousExpansionFileIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtdOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtdeO8EdyGNPaNHSGn_w" name="undoRemoveRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdtduO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udtd-O8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdteOO8EdyGNPaNHSGn_w" name="getFeatures" visibility="public">
+                  <ownedParameter xmi:id="_6UdteeO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdteuO8EdyGNPaNHSGn_w" name="strEPSG" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udte-O8EdyGNPaNHSGn_w" name="return" type="_6UdsWuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtfOO8EdyGNPaNHSGn_w" name="getRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdtfeO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtfuO8EdyGNPaNHSGn_w" name="return" type="_6UdsWuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udtf-O8EdyGNPaNHSGn_w" name="saveEdits" visibility="public">
+                  <ownedParameter xmi:id="_6UdtgOO8EdyGNPaNHSGn_w" name="writer" type="_6UdsrOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtgeO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtguO8EdyGNPaNHSGn_w" name="getGeometry" visibility="private">
+                  <ownedParameter xmi:id="_6Udtg-O8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdthOO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtheO8EdyGNPaNHSGn_w" name="startEdition" visibility="public">
+                  <ownedParameter xmi:id="_6UdthuO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udth-O8EdyGNPaNHSGn_w" name="getShapeBounds" visibility="public">
+                  <ownedParameter xmi:id="_6UdtiOO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtieO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtiuO8EdyGNPaNHSGn_w" name="getLabel" visibility="public">
+                  <ownedParameter xmi:id="_6Udti-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtjOO8EdyGNPaNHSGn_w" name="calculated" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtjeO8EdyGNPaNHSGn_w" name="return" type="_6UUpfOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UdtjuO8EdyGNPaNHSGn_w" name="ISpatialWriter">
+                <generalization xmi:id="_6Udtj-O8EdyGNPaNHSGn_w" general="_6UdsrOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UdtkOO8EdyGNPaNHSGn_w" name="canWriteGeometry" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UdtkeO8EdyGNPaNHSGn_w" name="gvSIGgeometryType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtkuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6Udtk-O8EdyGNPaNHSGn_w" name="ExpansionFile">
+                <ownedOperation xmi:id="_6UdtlOO8EdyGNPaNHSGn_w" name="addRow">
+                  <ownedParameter xmi:id="_6UdtleO8EdyGNPaNHSGn_w" name="row" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtluO8EdyGNPaNHSGn_w" name="status" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udtl-O8EdyGNPaNHSGn_w" name="indexInternalFields" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtmOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtmeO8EdyGNPaNHSGn_w" name="modifyRow">
+                  <ownedParameter xmi:id="_6UdtmuO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udtm-O8EdyGNPaNHSGn_w" name="row" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtnOO8EdyGNPaNHSGn_w" name="indexInternalFields" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtneO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtnuO8EdyGNPaNHSGn_w" name="getRow">
+                  <ownedParameter xmi:id="_6Udtn-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtoOO8EdyGNPaNHSGn_w" name="return" type="_6UdsWuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtoeO8EdyGNPaNHSGn_w" name="compact">
+                  <ownedParameter xmi:id="_6UdtouO8EdyGNPaNHSGn_w" name="relations" type="_6UnhleO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udto-O8EdyGNPaNHSGn_w" name="deleteLastRow"/>
+                <ownedOperation xmi:id="_6UdtpOO8EdyGNPaNHSGn_w" name="open"/>
+                <ownedOperation xmi:id="_6UdtpeO8EdyGNPaNHSGn_w" name="close"/>
+                <ownedOperation xmi:id="_6UdtpuO8EdyGNPaNHSGn_w" name="getSize">
+                  <ownedParameter xmi:id="_6Udtp-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UdtqOO8EdyGNPaNHSGn_w" name="IEditableSource">
+                <ownedOperation xmi:id="_6UdtqeO8EdyGNPaNHSGn_w" name="startEdition">
+                  <ownedParameter xmi:id="_6UdtquO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udtq-O8EdyGNPaNHSGn_w" name="stopEdition">
+                  <ownedParameter xmi:id="_6UdtrOO8EdyGNPaNHSGn_w" name="writer" type="_6UdsrOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtreO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtruO8EdyGNPaNHSGn_w" name="cancelEdition">
+                  <ownedParameter xmi:id="_6Udtr-O8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtsOO8EdyGNPaNHSGn_w" name="getRow">
+                  <ownedParameter xmi:id="_6UdtseO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtsuO8EdyGNPaNHSGn_w" name="return" type="_6UdsWuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udts-O8EdyGNPaNHSGn_w" name="getRowCount">
+                  <ownedParameter xmi:id="_6UdttOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtteO8EdyGNPaNHSGn_w" name="addRow">
+                  <ownedParameter xmi:id="_6UdttuO8EdyGNPaNHSGn_w" name="row" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udtt-O8EdyGNPaNHSGn_w" name="descrip" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtuOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtueO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtuuO8EdyGNPaNHSGn_w" name="undo"/>
+                <ownedOperation xmi:id="_6Udtu-O8EdyGNPaNHSGn_w" name="redo"/>
+                <ownedOperation xmi:id="_6UdtvOO8EdyGNPaNHSGn_w" name="removeRow">
+                  <ownedParameter xmi:id="_6UdtveO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtvuO8EdyGNPaNHSGn_w" name="descrip" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udtv-O8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtwOO8EdyGNPaNHSGn_w" name="modifyRow">
+                  <ownedParameter xmi:id="_6UdtweO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtwuO8EdyGNPaNHSGn_w" name="row" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udtw-O8EdyGNPaNHSGn_w" name="descrip" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtxOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtxeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtxuO8EdyGNPaNHSGn_w" name="compact"/>
+                <ownedOperation xmi:id="_6Udtx-O8EdyGNPaNHSGn_w" name="startComplexRow"/>
+                <ownedOperation xmi:id="_6UdtyOO8EdyGNPaNHSGn_w" name="endComplexRow">
+                  <ownedParameter xmi:id="_6UdtyeO8EdyGNPaNHSGn_w" name="description" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtyuO8EdyGNPaNHSGn_w" name="undoModifyRow" visibility="public">
+                  <ownedParameter xmi:id="_6Udty-O8EdyGNPaNHSGn_w" name="geometryIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtzOO8EdyGNPaNHSGn_w" name="previousExpansionFileIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdtzeO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdtzuO8EdyGNPaNHSGn_w" name="doRemoveRow" visibility="public">
+                  <ownedParameter xmi:id="_6Udtz-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udt0OO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udt0eO8EdyGNPaNHSGn_w" name="return" type="_6UUekOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt0uO8EdyGNPaNHSGn_w" name="doModifyRow" visibility="public">
+                  <ownedParameter xmi:id="_6Udt0-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udt1OO8EdyGNPaNHSGn_w" name="feat" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udt1eO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udt1uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt1-O8EdyGNPaNHSGn_w" name="doAddRow" visibility="public">
+                  <ownedParameter xmi:id="_6Udt2OO8EdyGNPaNHSGn_w" name="feat" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udt2eO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udt2uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt2-O8EdyGNPaNHSGn_w" name="undoRemoveRow" visibility="public">
+                  <ownedParameter xmi:id="_6Udt3OO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udt3eO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt3uO8EdyGNPaNHSGn_w" name="undoAddRow" visibility="public">
+                  <ownedParameter xmi:id="_6Udt3-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udt4OO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt4eO8EdyGNPaNHSGn_w" name="getRecordset" visibility="public">
+                  <ownedParameter xmi:id="_6Udt4uO8EdyGNPaNHSGn_w" name="return" type="_6Ud0m-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt4-O8EdyGNPaNHSGn_w" name="isEditing" visibility="public">
+                  <ownedParameter xmi:id="_6Udt5OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt5eO8EdyGNPaNHSGn_w" name="getSelection" visibility="public">
+                  <ownedParameter xmi:id="_6Udt5uO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt5-O8EdyGNPaNHSGn_w" name="getCommandRecord" visibility="public">
+                  <ownedParameter xmi:id="_6Udt6OO8EdyGNPaNHSGn_w" name="return" type="_6UdwyeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt6eO8EdyGNPaNHSGn_w" name="addEditionListener" visibility="public">
+                  <ownedParameter xmi:id="_6Udt6uO8EdyGNPaNHSGn_w" name="listener" type="_6UdtReO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt6-O8EdyGNPaNHSGn_w" name="removeEditionListener" visibility="public">
+                  <ownedParameter xmi:id="_6Udt7OO8EdyGNPaNHSGn_w" name="listener" type="_6UdtReO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt7eO8EdyGNPaNHSGn_w" name="getTableDefinition" visibility="public">
+                  <ownedParameter xmi:id="_6Udt7uO8EdyGNPaNHSGn_w" name="return" type="_6UUrbOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt7-O8EdyGNPaNHSGn_w" name="validateRow" visibility="public">
+                  <ownedParameter xmi:id="_6Udt8OO8EdyGNPaNHSGn_w" name="row" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udt8eO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt8uO8EdyGNPaNHSGn_w" name="getFieldManager" visibility="public">
+                  <ownedParameter xmi:id="_6Udt8-O8EdyGNPaNHSGn_w" name="return" type="_6UdsneO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt9OO8EdyGNPaNHSGn_w" name="saveEdits" visibility="public">
+                  <ownedParameter xmi:id="_6Udt9eO8EdyGNPaNHSGn_w" name="writer" type="_6UdsrOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udt9uO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt9-O8EdyGNPaNHSGn_w" name="getOriginalDriver" visibility="public">
+                  <ownedParameter xmi:id="_6Udt-OO8EdyGNPaNHSGn_w" name="return" type="_6UdzluO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udt-eO8EdyGNPaNHSGn_w" name="getFieldsDescription" visibility="public">
+                  <ownedParameter xmi:id="_6Udt-uO8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Udt--O8EdyGNPaNHSGn_w" name="PruebaVicenteExpansionFile2" clientDependency="_6UduG-O8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6Udt_OO8EdyGNPaNHSGn_w" name="ukLocale" visibility="private" type="_6UUiKuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udt_eO8EdyGNPaNHSGn_w" name="edAdapter" visibility="private" type="_6Udu4-O8EdyGNPaNHSGn_w" association="_6UdzruO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udt_uO8EdyGNPaNHSGn_w" name="charset" visibility="private" type="_6UUwH-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udt_-O8EdyGNPaNHSGn_w" name="formatter" visibility="private" type="_6UdsH-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduAOO8EdyGNPaNHSGn_w" name="NULL_NUMBER" visibility="private" type="_6UUwHuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduAeO8EdyGNPaNHSGn_w" name="NULL_STRING" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduAuO8EdyGNPaNHSGn_w" name="NULL_DATE" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduA-O8EdyGNPaNHSGn_w" name="m_shape" visibility="private" type="_6Udr6-O8EdyGNPaNHSGn_w" association="_6UdzsOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduBOO8EdyGNPaNHSGn_w" name="readChannel" visibility="private" type="_6UUwG-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduBeO8EdyGNPaNHSGn_w" name="shpChannelWriter" visibility="private" type="_6UUwG-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduBuO8EdyGNPaNHSGn_w" name="shxChannelWriter" visibility="private" type="_6UUwG-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduB-O8EdyGNPaNHSGn_w" name="dbfChannelWriter" visibility="private" type="_6UUwG-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduCOO8EdyGNPaNHSGn_w" name="m_pos" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduCeO8EdyGNPaNHSGn_w" name="m_offset" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduCuO8EdyGNPaNHSGn_w" name="m_cnt" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduC-O8EdyGNPaNHSGn_w" name="indexControl" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduDOO8EdyGNPaNHSGn_w" name="bbRead" visibility="private" type="_6UUwHOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduDeO8EdyGNPaNHSGn_w" name="bbShxRead" visibility="private" type="_6UUwHOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduDuO8EdyGNPaNHSGn_w" name="bbDbfRead" visibility="private" type="_6UUwHOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduD-O8EdyGNPaNHSGn_w" name="bbWriter" visibility="private" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduEOO8EdyGNPaNHSGn_w" name="bbShxWriter" visibility="private" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduEeO8EdyGNPaNHSGn_w" name="readChannelShx" visibility="private" type="_6UUwG-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduEuO8EdyGNPaNHSGn_w" name="cachedRecordRead" visibility="private" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduE-O8EdyGNPaNHSGn_w" name="posActual" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduFOO8EdyGNPaNHSGn_w" name="recordOffset" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduFeO8EdyGNPaNHSGn_w" name="bytesCachedRecord" visibility="private" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduFuO8EdyGNPaNHSGn_w" name="chars" visibility="private" type="_6UUwH-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduF-O8EdyGNPaNHSGn_w" name="raf" visibility="private" type="_6UUwGuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduGOO8EdyGNPaNHSGn_w" name="mode" visibility="private" type="_6Udzl-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduGeO8EdyGNPaNHSGn_w" name="finShx" visibility="private" type="_6UUyqeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduGuO8EdyGNPaNHSGn_w" name="dbfBuffer" visibility="private" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UduG-O8EdyGNPaNHSGn_w" name="ExpansionFile" supplier="_6Udtk-O8EdyGNPaNHSGn_w" client="_6Udt--O8EdyGNPaNHSGn_w" contract="_6Udtk-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UduHOO8EdyGNPaNHSGn_w" name="addRow" visibility="public">
+                  <ownedParameter xmi:id="_6UduHeO8EdyGNPaNHSGn_w" name="row" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduHuO8EdyGNPaNHSGn_w" name="status" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduH-O8EdyGNPaNHSGn_w" name="indexInternalFields" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduIOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduIeO8EdyGNPaNHSGn_w" name="getShape" visibility="public">
+                  <ownedParameter xmi:id="_6UduIuO8EdyGNPaNHSGn_w" name="position" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduI-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduJOO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduJeO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduJuO8EdyGNPaNHSGn_w" name="doAddRow" visibility="private">
+                  <ownedParameter xmi:id="_6UduJ-O8EdyGNPaNHSGn_w" name="values" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduKOO8EdyGNPaNHSGn_w" name="geometry" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduKeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduKuO8EdyGNPaNHSGn_w" name="modifyRow" visibility="public">
+                  <ownedParameter xmi:id="_6UduK-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduLOO8EdyGNPaNHSGn_w" name="row" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduLeO8EdyGNPaNHSGn_w" name="indexInternalFields" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduLuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduL-O8EdyGNPaNHSGn_w" name="getRow" visibility="public">
+                  <ownedParameter xmi:id="_6UduMOO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduMeO8EdyGNPaNHSGn_w" name="return" type="_6UdsWuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduMuO8EdyGNPaNHSGn_w" name="doGetRow" visibility="private">
+                  <ownedParameter xmi:id="_6UduM-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduNOO8EdyGNPaNHSGn_w" name="return" type="_6UdsWuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduNeO8EdyGNPaNHSGn_w" name="compact" visibility="public">
+                  <ownedParameter xmi:id="_6UduNuO8EdyGNPaNHSGn_w" name="relations" type="_6UnhleO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduN-O8EdyGNPaNHSGn_w" name="deleteLastRow" visibility="public"/>
+                <ownedOperation xmi:id="_6UduOOO8EdyGNPaNHSGn_w" name="open" visibility="public"/>
+                <ownedOperation xmi:id="_6UduOeO8EdyGNPaNHSGn_w" name="getShxFile" visibility="public">
+                  <ownedParameter xmi:id="_6UduOuO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduO-O8EdyGNPaNHSGn_w" name="return" type="_6UnhgeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduPOO8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                <ownedOperation xmi:id="_6UduPeO8EdyGNPaNHSGn_w" name="getSize" visibility="public">
+                  <ownedParameter xmi:id="_6UduPuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduP-O8EdyGNPaNHSGn_w" name="write" visibility="public">
+                  <ownedParameter xmi:id="_6UduQOO8EdyGNPaNHSGn_w" name="record" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduQeO8EdyGNPaNHSGn_w" name="write" visibility="private"/>
+                <ownedOperation xmi:id="_6UduQuO8EdyGNPaNHSGn_w" name="initDBFBuffer" visibility="private"/>
+                <ownedOperation xmi:id="_6UduQ-O8EdyGNPaNHSGn_w" name="fieldString" visibility="private">
+                  <ownedParameter xmi:id="_6UduROO8EdyGNPaNHSGn_w" name="obj" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduReO8EdyGNPaNHSGn_w" name="col" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduRuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduR-O8EdyGNPaNHSGn_w" name="getWriteChannel" visibility="private">
+                  <ownedParameter xmi:id="_6UduSOO8EdyGNPaNHSGn_w" name="path" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduSeO8EdyGNPaNHSGn_w" name="return" type="_6UUwJeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduSuO8EdyGNPaNHSGn_w" name="writeIGeometry" visibility="public">
+                  <ownedParameter xmi:id="_6UduS-O8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduTOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduTeO8EdyGNPaNHSGn_w" name="writeGeometry" visibility="public">
+                  <ownedParameter xmi:id="_6UduTuO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduT-O8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduUOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduUeO8EdyGNPaNHSGn_w" name="allocateBuffers" visibility="private"/>
+                <ownedOperation xmi:id="_6UduUuO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UduU-O8EdyGNPaNHSGn_w" name="geometryType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduVOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduVeO8EdyGNPaNHSGn_w" name="checkShapeBuffer" visibility="private">
+                  <ownedParameter xmi:id="_6UduVuO8EdyGNPaNHSGn_w" name="size" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduV-O8EdyGNPaNHSGn_w" name="drain" visibility="private"/>
+                <ownedOperation xmi:id="_6UduWOO8EdyGNPaNHSGn_w" name="readPoint" visibility="private">
+                  <ownedParameter xmi:id="_6UduWeO8EdyGNPaNHSGn_w" name="in" type="_6UUwHOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduWuO8EdyGNPaNHSGn_w" name="return" type="_6UdsIOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduW-O8EdyGNPaNHSGn_w" name="getPositionForRecord" visibility="private">
+                  <ownedParameter xmi:id="_6UduXOO8EdyGNPaNHSGn_w" name="numRec" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduXeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduXuO8EdyGNPaNHSGn_w" name="getFieldValue" visibility="public">
+                  <ownedParameter xmi:id="_6UduX-O8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduYOO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduYeO8EdyGNPaNHSGn_w" name="position" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduYuO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduY-O8EdyGNPaNHSGn_w" name="getBooleanFieldValue" visibility="public">
+                  <ownedParameter xmi:id="_6UduZOO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduZeO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduZuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduZ-O8EdyGNPaNHSGn_w" name="getStringFieldValue" visibility="public">
+                  <ownedParameter xmi:id="_6UduaOO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduaeO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduauO8EdyGNPaNHSGn_w" name="position" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udua-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UdubOO8EdyGNPaNHSGn_w" name="Index" visibility="private">
+                <ownedAttribute xmi:id="_6UdubeO8EdyGNPaNHSGn_w" name="internalIndex" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdubuO8EdyGNPaNHSGn_w" name="position" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udub-O8EdyGNPaNHSGn_w" name="status" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UducOO8EdyGNPaNHSGn_w" name="type" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UduceO8EdyGNPaNHSGn_w" name="getInternalIndex" visibility="public">
+                  <ownedParameter xmi:id="_6UducuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uduc-O8EdyGNPaNHSGn_w" name="setInternalIndex" visibility="public">
+                  <ownedParameter xmi:id="_6UdudOO8EdyGNPaNHSGn_w" name="internalIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdudeO8EdyGNPaNHSGn_w" name="getPosition" visibility="public">
+                  <ownedParameter xmi:id="_6UduduO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udud-O8EdyGNPaNHSGn_w" name="setPosition" visibility="public">
+                  <ownedParameter xmi:id="_6UdueOO8EdyGNPaNHSGn_w" name="position" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdueeO8EdyGNPaNHSGn_w" name="getStatus" visibility="public">
+                  <ownedParameter xmi:id="_6UdueuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udue-O8EdyGNPaNHSGn_w" name="setStatus" visibility="public">
+                  <ownedParameter xmi:id="_6UdufOO8EdyGNPaNHSGn_w" name="status" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdufeO8EdyGNPaNHSGn_w" name="getType" visibility="public">
+                  <ownedParameter xmi:id="_6UdufuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uduf-O8EdyGNPaNHSGn_w" name="setType" visibility="public">
+                  <ownedParameter xmi:id="_6UdugOO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UdugeO8EdyGNPaNHSGn_w" name="InternalRow" visibility="private">
+                <ownedAttribute xmi:id="_6UduguO8EdyGNPaNHSGn_w" name="row" visibility="private" type="_6UdsWuO8EdyGNPaNHSGn_w" association="_6UdzsuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udug-O8EdyGNPaNHSGn_w" name="indexInternalFields" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduhOO8EdyGNPaNHSGn_w" name="row" visibility="private" type="_6UdsWuO8EdyGNPaNHSGn_w" association="_6UdztOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UduheO8EdyGNPaNHSGn_w" name="indexInternalFields" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UduhuO8EdyGNPaNHSGn_w" name="getIndexInternalFields" visibility="public">
+                  <ownedParameter xmi:id="_6Uduh-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduiOO8EdyGNPaNHSGn_w" name="getRow" visibility="public">
+                  <ownedParameter xmi:id="_6UduieO8EdyGNPaNHSGn_w" name="return" type="_6UdsWuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduiuO8EdyGNPaNHSGn_w" name="getIndexInternalFields" visibility="public">
+                  <ownedParameter xmi:id="_6Udui-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdujOO8EdyGNPaNHSGn_w" name="getRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdujeO8EdyGNPaNHSGn_w" name="return" type="_6UdsWuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UdujuO8EdyGNPaNHSGn_w" name="ISchemaManager">
+                <ownedOperation xmi:id="_6Uduj-O8EdyGNPaNHSGn_w" name="createSchema" visibility="public">
+                  <ownedParameter xmi:id="_6UdukOO8EdyGNPaNHSGn_w" name="layerDefinition" type="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdukeO8EdyGNPaNHSGn_w" name="removeSchema" visibility="public">
+                  <ownedParameter xmi:id="_6UdukuO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uduk-O8EdyGNPaNHSGn_w" name="renameSchema" visibility="public">
+                  <ownedParameter xmi:id="_6UdulOO8EdyGNPaNHSGn_w" name="antName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduleO8EdyGNPaNHSGn_w" name="newName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UduluO8EdyGNPaNHSGn_w" name="VectorialEditableDBAdapter" clientDependency="_6UdumeO8EdyGNPaNHSGn_w">
+                <generalization xmi:id="_6Udul-O8EdyGNPaNHSGn_w" general="_6Udsw-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdumOO8EdyGNPaNHSGn_w" name="mapFID2index" visibility="private" type="_6UdsL-O8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UdumeO8EdyGNPaNHSGn_w" name="ISpatialDB" supplier="_6Udz9uO8EdyGNPaNHSGn_w" client="_6UduluO8EdyGNPaNHSGn_w" contract="_6Udz9uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UdumuO8EdyGNPaNHSGn_w" name="getFeatures" visibility="public">
+                  <ownedParameter xmi:id="_6Udum-O8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdunOO8EdyGNPaNHSGn_w" name="strEPSG" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduneO8EdyGNPaNHSGn_w" name="return" type="_6UdsWuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdunuO8EdyGNPaNHSGn_w" name="startEdition" visibility="public">
+                  <ownedParameter xmi:id="_6Udun-O8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduoOO8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6UduoeO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduouO8EdyGNPaNHSGn_w" name="strEPSG" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uduo-O8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdupOO8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6UdupeO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdupuO8EdyGNPaNHSGn_w" name="strEPSG" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udup-O8EdyGNPaNHSGn_w" name="alphaNumericFieldsNeeded" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduqOO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduqeO8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6UduquO8EdyGNPaNHSGn_w" name="fields" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uduq-O8EdyGNPaNHSGn_w" name="newProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdurOO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdureO8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6UduruO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udur-O8EdyGNPaNHSGn_w" name="fields" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdusOO8EdyGNPaNHSGn_w" name="newProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduseO8EdyGNPaNHSGn_w" name="fastIteration" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdusuO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udus-O8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6UdutOO8EdyGNPaNHSGn_w" name="sql" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduteO8EdyGNPaNHSGn_w" name="newProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdutuO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udut-O8EdyGNPaNHSGn_w" name="getLyrDef" visibility="public">
+                  <ownedParameter xmi:id="_6UduuOO8EdyGNPaNHSGn_w" name="return" type="_6UUsSeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduueO8EdyGNPaNHSGn_w" name="getRowIndexByFID" visibility="public">
+                  <ownedParameter xmi:id="_6UduuuO8EdyGNPaNHSGn_w" name="feat" type="_6UUetuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uduu-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduvOO8EdyGNPaNHSGn_w" name="doAddRow" visibility="public">
+                  <ownedParameter xmi:id="_6UduveO8EdyGNPaNHSGn_w" name="feat" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduvuO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uduv-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduwOO8EdyGNPaNHSGn_w" name="doModifyRow" visibility="public">
+                  <ownedParameter xmi:id="_6UduweO8EdyGNPaNHSGn_w" name="calculatedIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduwuO8EdyGNPaNHSGn_w" name="feat" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uduw-O8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduxOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduxeO8EdyGNPaNHSGn_w" name="doRemoveRow" visibility="public">
+                  <ownedParameter xmi:id="_6UduxuO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udux-O8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UduyOO8EdyGNPaNHSGn_w" name="return" type="_6UUekOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduyeO8EdyGNPaNHSGn_w" name="undoAddRow" visibility="public">
+                  <ownedParameter xmi:id="_6UduyuO8EdyGNPaNHSGn_w" name="calculatedIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uduy-O8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduzOO8EdyGNPaNHSGn_w" name="cancelEdition" visibility="public">
+                  <ownedParameter xmi:id="_6UduzeO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UduzuO8EdyGNPaNHSGn_w" name="stopEdition" visibility="public">
+                  <ownedParameter xmi:id="_6Uduz-O8EdyGNPaNHSGn_w" name="writer" type="_6UdsrOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udu0OO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Udu0eO8EdyGNPaNHSGn_w" name="MyIterator" visibility="private" clientDependency="_6Udu3OO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6Udu0uO8EdyGNPaNHSGn_w" name="extent" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu0-O8EdyGNPaNHSGn_w" name="orig" visibility="private" type="_6Ud1V-O8EdyGNPaNHSGn_w" association="_6UdztuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu1OO8EdyGNPaNHSGn_w" name="feat" visibility="private" type="_6UUetuO8EdyGNPaNHSGn_w" association="_6UdzuOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu1eO8EdyGNPaNHSGn_w" name="featIt" visibility="private" type="_6UUu1OO8EdyGNPaNHSGn_w" association="_6UdzuuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu1uO8EdyGNPaNHSGn_w" name="epsg" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu1-O8EdyGNPaNHSGn_w" name="dbDriver" visibility="private" type="_6UUrdeO8EdyGNPaNHSGn_w" association="_6UdzvOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu2OO8EdyGNPaNHSGn_w" name="alreadyDone" type="_6UdsL-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu2eO8EdyGNPaNHSGn_w" name="idFromExpansion" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu2uO8EdyGNPaNHSGn_w" name="listFromExpansion" visibility="private" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu2-O8EdyGNPaNHSGn_w" name="bOriginalCursorOpened" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Udu3OO8EdyGNPaNHSGn_w" name="IFeatureIterator" supplier="_6UUu1OO8EdyGNPaNHSGn_w" client="_6Udu0eO8EdyGNPaNHSGn_w" contract="_6UUu1OO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Udu3eO8EdyGNPaNHSGn_w" name="hasNext" visibility="public">
+                  <ownedParameter xmi:id="_6Udu3uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udu3-O8EdyGNPaNHSGn_w" name="next" visibility="public">
+                  <ownedParameter xmi:id="_6Udu4OO8EdyGNPaNHSGn_w" name="return" type="_6UUetuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udu4eO8EdyGNPaNHSGn_w" name="closeIterator" visibility="public"/>
+                <ownedOperation xmi:id="_6Udu4uO8EdyGNPaNHSGn_w" name="getFeaturesFromExpansionFile" visibility="private"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Udu4-O8EdyGNPaNHSGn_w" name="EditableAdapter" clientDependency="_6Udu--O8EdyGNPaNHSGn_w _6Udu_OO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6Udu5OO8EdyGNPaNHSGn_w" name="isEditing" visibility="protected" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu5eO8EdyGNPaNHSGn_w" name="ds" visibility="private" type="_6Ud0m-O8EdyGNPaNHSGn_w" association="_6UdzvuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu5uO8EdyGNPaNHSGn_w" name="delRows" visibility="protected" type="_6Ud3HOO8EdyGNPaNHSGn_w" association="_6UdzwOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu5-O8EdyGNPaNHSGn_w" name="cr" visibility="private" type="_6UdwyeO8EdyGNPaNHSGn_w" association="_6UdzwuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu6OO8EdyGNPaNHSGn_w" name="writer" visibility="protected" type="_6UdsrOO8EdyGNPaNHSGn_w" association="_6UdzxOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu6eO8EdyGNPaNHSGn_w" name="complex" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu6uO8EdyGNPaNHSGn_w" name="commands" visibility="private" type="_6UdwSOO8EdyGNPaNHSGn_w" association="_6UdzxuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu6-O8EdyGNPaNHSGn_w" name="listFields" visibility="protected" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu7OO8EdyGNPaNHSGn_w" name="listInternalFields" visibility="protected" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu7eO8EdyGNPaNHSGn_w" name="bFieldsHasBeenChanged" visibility="protected" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu7uO8EdyGNPaNHSGn_w" name="actualFields" visibility="protected" type="_6UdzmOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu7-O8EdyGNPaNHSGn_w" name="fastAccessFields" visibility="protected" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu8OO8EdyGNPaNHSGn_w" name="relations" visibility="protected" type="_6UnhleO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu8eO8EdyGNPaNHSGn_w" name="expansionFile" visibility="protected" type="_6Udtk-O8EdyGNPaNHSGn_w" association="_6UdzyOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu8uO8EdyGNPaNHSGn_w" name="numAdd" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu8-O8EdyGNPaNHSGn_w" name="editingDriver" visibility="private" type="_6UdzmeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu9OO8EdyGNPaNHSGn_w" name="ods" visibility="private" type="_6Ud0m-O8EdyGNPaNHSGn_w" association="_6UdzyuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu9eO8EdyGNPaNHSGn_w" name="editionListeners" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu9uO8EdyGNPaNHSGn_w" name="rules" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu9-O8EdyGNPaNHSGn_w" name="actualIndexFields" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu-OO8EdyGNPaNHSGn_w" name="isFullExtentDirty" visibility="protected" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu-eO8EdyGNPaNHSGn_w" name="fieldEvents" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udu-uO8EdyGNPaNHSGn_w" name="rowEvents" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Udu--O8EdyGNPaNHSGn_w" name="IEditableSource" supplier="_6UdtqOO8EdyGNPaNHSGn_w" client="_6Udu4-O8EdyGNPaNHSGn_w" contract="_6UdtqOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Udu_OO8EdyGNPaNHSGn_w" name="IWriteable" supplier="_6UdtUuO8EdyGNPaNHSGn_w" client="_6Udu4-O8EdyGNPaNHSGn_w" contract="_6UdtUuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Udu_eO8EdyGNPaNHSGn_w" name="setOriginalDataSource" visibility="public">
+                  <ownedParameter xmi:id="_6Udu_uO8EdyGNPaNHSGn_w" name="ds" type="_6Ud0m-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udu_-O8EdyGNPaNHSGn_w" name="initalizeFields" visibility="private">
+                  <ownedParameter xmi:id="_6UdvAOO8EdyGNPaNHSGn_w" name="ds" type="_6Ud0m-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvAeO8EdyGNPaNHSGn_w" name="deepCloneInternalFields" visibility="private">
+                  <ownedParameter xmi:id="_6UdvAuO8EdyGNPaNHSGn_w" name="col" type="_6UdzmOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvA-O8EdyGNPaNHSGn_w" name="return" type="_6UdzmOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvBOO8EdyGNPaNHSGn_w" name="fieldsChanged" visibility="private"/>
+                <ownedOperation xmi:id="_6UdvBeO8EdyGNPaNHSGn_w" name="startEdition" visibility="public">
+                  <ownedParameter xmi:id="_6UdvBuO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvB-O8EdyGNPaNHSGn_w" name="stopEdition" visibility="public">
+                  <ownedParameter xmi:id="_6UdvCOO8EdyGNPaNHSGn_w" name="writer" type="_6UdsrOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvCeO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvCuO8EdyGNPaNHSGn_w" name="saveEdits" visibility="public">
+                  <ownedParameter xmi:id="_6UdvC-O8EdyGNPaNHSGn_w" name="writer" type="_6UdsrOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvDOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvDeO8EdyGNPaNHSGn_w" name="cancelEdition" visibility="public">
+                  <ownedParameter xmi:id="_6UdvDuO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvD-O8EdyGNPaNHSGn_w" name="getRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdvEOO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvEeO8EdyGNPaNHSGn_w" name="return" type="_6UdsWuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvEuO8EdyGNPaNHSGn_w" name="getRowCount" visibility="public">
+                  <ownedParameter xmi:id="_6UdvE-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvFOO8EdyGNPaNHSGn_w" name="addRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdvFeO8EdyGNPaNHSGn_w" name="row" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvFuO8EdyGNPaNHSGn_w" name="descrip" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvF-O8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvGOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvGeO8EdyGNPaNHSGn_w" name="undo" visibility="public"/>
+                <ownedOperation xmi:id="_6UdvGuO8EdyGNPaNHSGn_w" name="redo" visibility="public"/>
+                <ownedOperation xmi:id="_6UdvG-O8EdyGNPaNHSGn_w" name="removeRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdvHOO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvHeO8EdyGNPaNHSGn_w" name="descrip" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvHuO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvH-O8EdyGNPaNHSGn_w" name="modifyRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdvIOO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvIeO8EdyGNPaNHSGn_w" name="row" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvIuO8EdyGNPaNHSGn_w" name="descrip" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvI-O8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvJOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvJeO8EdyGNPaNHSGn_w" name="compact" visibility="public"/>
+                <ownedOperation xmi:id="_6UdvJuO8EdyGNPaNHSGn_w" name="startComplexRow" visibility="public"/>
+                <ownedOperation xmi:id="_6UdvJ-O8EdyGNPaNHSGn_w" name="endComplexRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdvKOO8EdyGNPaNHSGn_w" name="description" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvKeO8EdyGNPaNHSGn_w" name="undoModifyRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdvKuO8EdyGNPaNHSGn_w" name="geometryIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvK-O8EdyGNPaNHSGn_w" name="previousExpansionFileIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvLOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvLeO8EdyGNPaNHSGn_w" name="doRemoveRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdvLuO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvL-O8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvMOO8EdyGNPaNHSGn_w" name="return" type="_6UUekOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvMeO8EdyGNPaNHSGn_w" name="doModifyRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdvMuO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvM-O8EdyGNPaNHSGn_w" name="feat" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvNOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvNeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvNuO8EdyGNPaNHSGn_w" name="doAddRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdvN-O8EdyGNPaNHSGn_w" name="feat" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvOOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvOeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvOuO8EdyGNPaNHSGn_w" name="undoRemoveRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdvO-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvPOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvPeO8EdyGNPaNHSGn_w" name="undoAddRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdvPuO8EdyGNPaNHSGn_w" name="calculatedIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvP-O8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvQOO8EdyGNPaNHSGn_w" name="getRecordset" visibility="public">
+                  <ownedParameter xmi:id="_6UdvQeO8EdyGNPaNHSGn_w" name="return" type="_6Ud0m-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvQuO8EdyGNPaNHSGn_w" name="getOriginalRecordset" visibility="public">
+                  <ownedParameter xmi:id="_6UdvQ-O8EdyGNPaNHSGn_w" name="return" type="_6Ud0m-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvROO8EdyGNPaNHSGn_w" name="getSelection" visibility="public">
+                  <ownedParameter xmi:id="_6UdvReO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvRuO8EdyGNPaNHSGn_w" name="setSelection" visibility="public">
+                  <ownedParameter xmi:id="_6UdvR-O8EdyGNPaNHSGn_w" name="selection" type="_6Ud3HOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvSOO8EdyGNPaNHSGn_w" name="isEditing" visibility="public">
+                  <ownedParameter xmi:id="_6UdvSeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvSuO8EdyGNPaNHSGn_w" name="getInversedIndex" visibility="public">
+                  <ownedParameter xmi:id="_6UdvS-O8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvTOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvTeO8EdyGNPaNHSGn_w" name="getCalculatedIndex" visibility="public">
+                  <ownedParameter xmi:id="_6UdvTuO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvT-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvUOO8EdyGNPaNHSGn_w" name="getCommandRecord" visibility="public">
+                  <ownedParameter xmi:id="_6UdvUeO8EdyGNPaNHSGn_w" name="return" type="_6UdwyeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvUuO8EdyGNPaNHSGn_w" name="fireAfterRemoveRow" visibility="protected">
+                  <ownedParameter xmi:id="_6UdvU-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvVOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvVeO8EdyGNPaNHSGn_w" name="fireBeforeRemoveRow" visibility="protected">
+                  <ownedParameter xmi:id="_6UdvVuO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvV-O8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvWOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvWeO8EdyGNPaNHSGn_w" name="fireAfterRowAdded" visibility="protected">
+                  <ownedParameter xmi:id="_6UdvWuO8EdyGNPaNHSGn_w" name="feat" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvW-O8EdyGNPaNHSGn_w" name="calculatedIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvXOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvXeO8EdyGNPaNHSGn_w" name="fireAfterFieldAdded" visibility="protected">
+                  <ownedParameter xmi:id="_6UdvXuO8EdyGNPaNHSGn_w" name="field" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvX-O8EdyGNPaNHSGn_w" name="fireAfterFieldRemoved" visibility="protected">
+                  <ownedParameter xmi:id="_6UdvYOO8EdyGNPaNHSGn_w" name="field" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvYeO8EdyGNPaNHSGn_w" name="fireAfterFieldModified" visibility="protected">
+                  <ownedParameter xmi:id="_6UdvYuO8EdyGNPaNHSGn_w" name="field" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvY-O8EdyGNPaNHSGn_w" name="fireBeforeRowAdded" visibility="protected">
+                  <ownedParameter xmi:id="_6UdvZOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvZeO8EdyGNPaNHSGn_w" name="newFID" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvZuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvZ-O8EdyGNPaNHSGn_w" name="fireBeforeFieldAdded" visibility="protected">
+                  <ownedParameter xmi:id="_6UdvaOO8EdyGNPaNHSGn_w" name="field" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvaeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvauO8EdyGNPaNHSGn_w" name="fireBeforeRemoveField" visibility="protected">
+                  <ownedParameter xmi:id="_6Udva-O8EdyGNPaNHSGn_w" name="field" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvbOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvbeO8EdyGNPaNHSGn_w" name="fireBeforeModifyRow" visibility="protected">
+                  <ownedParameter xmi:id="_6UdvbuO8EdyGNPaNHSGn_w" name="feat" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udvb-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvcOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvceO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvcuO8EdyGNPaNHSGn_w" name="fireAfterModifyRow" visibility="protected">
+                  <ownedParameter xmi:id="_6Udvc-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvdOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvdeO8EdyGNPaNHSGn_w" name="fireStartEditionEvent" visibility="protected">
+                  <ownedParameter xmi:id="_6UdvduO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udvd-O8EdyGNPaNHSGn_w" name="fireStopEditionEvent" visibility="protected">
+                  <ownedParameter xmi:id="_6UdveOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdveeO8EdyGNPaNHSGn_w" name="fireCancelEditionEvent" visibility="protected">
+                  <ownedParameter xmi:id="_6UdveuO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udve-O8EdyGNPaNHSGn_w" name="addEditionListener" visibility="public">
+                  <ownedParameter xmi:id="_6UdvfOO8EdyGNPaNHSGn_w" name="listener" type="_6UdtReO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvfeO8EdyGNPaNHSGn_w" name="removeEditionListener" visibility="public">
+                  <ownedParameter xmi:id="_6UdvfuO8EdyGNPaNHSGn_w" name="listener" type="_6UdtReO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udvf-O8EdyGNPaNHSGn_w" name="getWriter" visibility="public">
+                  <ownedParameter xmi:id="_6UdvgOO8EdyGNPaNHSGn_w" name="return" type="_6UdsrOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvgeO8EdyGNPaNHSGn_w" name="setWriter" visibility="protected">
+                  <ownedParameter xmi:id="_6UdvguO8EdyGNPaNHSGn_w" name="writer" type="_6UdsrOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udvg-O8EdyGNPaNHSGn_w" name="getTableDefinition" visibility="public">
+                  <ownedParameter xmi:id="_6UdvhOO8EdyGNPaNHSGn_w" name="return" type="_6UUrbOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvheO8EdyGNPaNHSGn_w" name="validateRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdvhuO8EdyGNPaNHSGn_w" name="row" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udvh-O8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdviOO8EdyGNPaNHSGn_w" name="getRules" visibility="public">
+                  <ownedParameter xmi:id="_6UdvieO8EdyGNPaNHSGn_w" name="return" type="_6UnhiOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdviuO8EdyGNPaNHSGn_w" name="setRules" visibility="public">
+                  <ownedParameter xmi:id="_6Udvi-O8EdyGNPaNHSGn_w" name="rules" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvjOO8EdyGNPaNHSGn_w" name="clean" visibility="private"/>
+                <ownedOperation xmi:id="_6UdvjeO8EdyGNPaNHSGn_w" name="getFieldManager" visibility="public">
+                  <ownedParameter xmi:id="_6UdvjuO8EdyGNPaNHSGn_w" name="return" type="_6UdsneO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udvj-O8EdyGNPaNHSGn_w" name="createExternalRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdvkOO8EdyGNPaNHSGn_w" name="edRow" type="_6UdsWuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvkeO8EdyGNPaNHSGn_w" name="indexInternalFields" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvkuO8EdyGNPaNHSGn_w" name="return" type="_6UdsWuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udvk-O8EdyGNPaNHSGn_w" name="removeField" visibility="public">
+                  <ownedParameter xmi:id="_6UdvlOO8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvleO8EdyGNPaNHSGn_w" name="findFieldByName" visibility="private">
+                  <ownedParameter xmi:id="_6UdvluO8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udvl-O8EdyGNPaNHSGn_w" name="return" type="_6Udv7uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvmOO8EdyGNPaNHSGn_w" name="undoRemoveField" visibility="public">
+                  <ownedParameter xmi:id="_6UdvmeO8EdyGNPaNHSGn_w" name="field" type="_6Udv7uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvmuO8EdyGNPaNHSGn_w" name="doRemoveField" visibility="public">
+                  <ownedParameter xmi:id="_6Udvm-O8EdyGNPaNHSGn_w" name="field" type="_6Udv7uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvnOO8EdyGNPaNHSGn_w" name="renameField" visibility="public">
+                  <ownedParameter xmi:id="_6UdvneO8EdyGNPaNHSGn_w" name="antName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvnuO8EdyGNPaNHSGn_w" name="newName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udvn-O8EdyGNPaNHSGn_w" name="undoRenameField" visibility="public">
+                  <ownedParameter xmi:id="_6UdvoOO8EdyGNPaNHSGn_w" name="field" type="_6Udv7uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvoeO8EdyGNPaNHSGn_w" name="antName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvouO8EdyGNPaNHSGn_w" name="doRenameField" visibility="public">
+                  <ownedParameter xmi:id="_6Udvo-O8EdyGNPaNHSGn_w" name="field" type="_6Udv7uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvpOO8EdyGNPaNHSGn_w" name="newName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvpeO8EdyGNPaNHSGn_w" name="addField" visibility="public">
+                  <ownedParameter xmi:id="_6UdvpuO8EdyGNPaNHSGn_w" name="field" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udvp-O8EdyGNPaNHSGn_w" name="undoAddField" visibility="public">
+                  <ownedParameter xmi:id="_6UdvqOO8EdyGNPaNHSGn_w" name="field" type="_6Udv7uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvqeO8EdyGNPaNHSGn_w" name="doAddField" visibility="public">
+                  <ownedParameter xmi:id="_6UdvquO8EdyGNPaNHSGn_w" name="field" type="_6Udv7uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udvq-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvrOO8EdyGNPaNHSGn_w" name="getOriginalDriver" visibility="public">
+                  <ownedParameter xmi:id="_6UdvreO8EdyGNPaNHSGn_w" name="return" type="_6UdzluO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvruO8EdyGNPaNHSGn_w" name="cleanSelectableDatasource" visibility="public"/>
+                <ownedOperation xmi:id="_6Udvr-O8EdyGNPaNHSGn_w" name="getFieldsDescription" visibility="public">
+                  <ownedParameter xmi:id="_6UdvsOO8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvseO8EdyGNPaNHSGn_w" name="getNewFID" visibility="public">
+                  <ownedParameter xmi:id="_6UdvsuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Udvs-O8EdyGNPaNHSGn_w" name="MyFieldManager" visibility="protected">
+                <generalization xmi:id="_6UdvtOO8EdyGNPaNHSGn_w" general="_6UdxD-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UdvteO8EdyGNPaNHSGn_w" name="alterTable" visibility="public">
+                  <ownedParameter xmi:id="_6UdvtuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udvt-O8EdyGNPaNHSGn_w" name="addField" visibility="public">
+                  <ownedParameter xmi:id="_6UdvuOO8EdyGNPaNHSGn_w" name="fieldDesc" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvueO8EdyGNPaNHSGn_w" name="removeField" visibility="public">
+                  <ownedParameter xmi:id="_6UdvuuO8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udvu-O8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvvOO8EdyGNPaNHSGn_w" name="renameField" visibility="public">
+                  <ownedParameter xmi:id="_6UdvveO8EdyGNPaNHSGn_w" name="antName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvvuO8EdyGNPaNHSGn_w" name="newName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Udvv-O8EdyGNPaNHSGn_w" name="myObjectDriver" visibility="private">
+                <ownedOperation xmi:id="_6UdvwOO8EdyGNPaNHSGn_w" name="getPrimaryKeys" visibility="public">
+                  <ownedParameter xmi:id="_6UdvweO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvwuO8EdyGNPaNHSGn_w" name="write" visibility="public">
+                  <ownedParameter xmi:id="_6Udvw-O8EdyGNPaNHSGn_w" name="dataWare" type="_6UdsN-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvxOO8EdyGNPaNHSGn_w" name="setDataSourceFactory" visibility="public">
+                  <ownedParameter xmi:id="_6UdvxeO8EdyGNPaNHSGn_w" name="dsf" type="_6UdsM-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvxuO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                  <ownedParameter xmi:id="_6Udvx-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvyOO8EdyGNPaNHSGn_w" name="getFieldValue" visibility="public">
+                  <ownedParameter xmi:id="_6UdvyeO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdvyuO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udvy-O8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvzOO8EdyGNPaNHSGn_w" name="getFieldCount" visibility="public">
+                  <ownedParameter xmi:id="_6UdvzeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdvzuO8EdyGNPaNHSGn_w" name="getFieldName" visibility="public">
+                  <ownedParameter xmi:id="_6Udvz-O8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udv0OO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udv0eO8EdyGNPaNHSGn_w" name="getRowCount" visibility="public">
+                  <ownedParameter xmi:id="_6Udv0uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udv0-O8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                  <ownedParameter xmi:id="_6Udv1OO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udv1eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udv1uO8EdyGNPaNHSGn_w" name="getFieldWidth" visibility="public">
+                  <ownedParameter xmi:id="_6Udv1-O8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udv2OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udv2eO8EdyGNPaNHSGn_w" name="reload" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Udv2uO8EdyGNPaNHSGn_w" name="ShpSchemaManager" clientDependency="_6Udv3OO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6Udv2-O8EdyGNPaNHSGn_w" name="shpFile" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Udv3OO8EdyGNPaNHSGn_w" name="ISchemaManager" supplier="_6UdujuO8EdyGNPaNHSGn_w" client="_6Udv2uO8EdyGNPaNHSGn_w" contract="_6UdujuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Udv3eO8EdyGNPaNHSGn_w" name="createSchema" visibility="public">
+                  <ownedParameter xmi:id="_6Udv3uO8EdyGNPaNHSGn_w" name="layerDefinition" type="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udv3-O8EdyGNPaNHSGn_w" name="removeSchema" visibility="public">
+                  <ownedParameter xmi:id="_6Udv4OO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udv4eO8EdyGNPaNHSGn_w" name="renameSchema" visibility="public">
+                  <ownedParameter xmi:id="_6Udv4uO8EdyGNPaNHSGn_w" name="antName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udv4-O8EdyGNPaNHSGn_w" name="newName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Udv5OO8EdyGNPaNHSGn_w" name="EditionExceptionOld">
+                <generalization xmi:id="_6Udv5eO8EdyGNPaNHSGn_w" general="_6UnhhOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Udv5uO8EdyGNPaNHSGn_w" name="AfterRowEditEvent">
+                <generalization xmi:id="_6Udv5-O8EdyGNPaNHSGn_w" general="_6UdsieO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udv6OO8EdyGNPaNHSGn_w" name="numRow" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udv6eO8EdyGNPaNHSGn_w" name="changeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Udv6uO8EdyGNPaNHSGn_w" name="getChangeType" visibility="public">
+                  <ownedParameter xmi:id="_6Udv6-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udv7OO8EdyGNPaNHSGn_w" name="getNumRow" visibility="public">
+                  <ownedParameter xmi:id="_6Udv7eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Udv7uO8EdyGNPaNHSGn_w" name="InternalField">
+                <ownedAttribute xmi:id="_6Udv7-O8EdyGNPaNHSGn_w" name="ORIGINAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udv8OO8EdyGNPaNHSGn_w" name="DELETED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udv8eO8EdyGNPaNHSGn_w" name="ADDED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udv8uO8EdyGNPaNHSGn_w" name="fieldType" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udv8-O8EdyGNPaNHSGn_w" name="fieldId" visibility="private" type="_6UdsEeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udv9OO8EdyGNPaNHSGn_w" name="fieldDesc" visibility="private" type="_6UUuEOO8EdyGNPaNHSGn_w" association="_6UdzzOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udv9eO8EdyGNPaNHSGn_w" name="fieldIndex" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Udv9uO8EdyGNPaNHSGn_w" name="getFieldDesc" visibility="public">
+                  <ownedParameter xmi:id="_6Udv9-O8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udv-OO8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                  <ownedParameter xmi:id="_6Udv-eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udv-uO8EdyGNPaNHSGn_w" name="getFieldId" visibility="public">
+                  <ownedParameter xmi:id="_6Udv--O8EdyGNPaNHSGn_w" name="return" type="_6UdsEeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udv_OO8EdyGNPaNHSGn_w" name="getFieldIndex" visibility="public">
+                  <ownedParameter xmi:id="_6Udv_eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udv_uO8EdyGNPaNHSGn_w" name="setFieldIndex" visibility="public">
+                  <ownedParameter xmi:id="_6Udv_-O8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdwAOO8EdyGNPaNHSGn_w" name="cloneInternalField" visibility="public">
+                  <ownedParameter xmi:id="_6UdwAeO8EdyGNPaNHSGn_w" name="return" type="_6Udv7uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UdwAuO8EdyGNPaNHSGn_w" name="MemoryExpansionFile" clientDependency="_6UdwBeO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UdwA-O8EdyGNPaNHSGn_w" name="rows" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdwBOO8EdyGNPaNHSGn_w" name="edAdapter" type="_6Udu4-O8EdyGNPaNHSGn_w" association="_6UdzzuO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UdwBeO8EdyGNPaNHSGn_w" name="ExpansionFile" supplier="_6Udtk-O8EdyGNPaNHSGn_w" client="_6UdwAuO8EdyGNPaNHSGn_w" contract="_6Udtk-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UdwBuO8EdyGNPaNHSGn_w" name="addRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdwB-O8EdyGNPaNHSGn_w" name="row" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdwCOO8EdyGNPaNHSGn_w" name="status" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdwCeO8EdyGNPaNHSGn_w" name="indexInternalFields" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdwCuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdwC-O8EdyGNPaNHSGn_w" name="modifyRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdwDOO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdwDeO8EdyGNPaNHSGn_w" name="row" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdwDuO8EdyGNPaNHSGn_w" name="indexInternalFields" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdwD-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdwEOO8EdyGNPaNHSGn_w" name="getRow" visibility="public">
+                  <ownedParameter xmi:id="_6UdwEeO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdwEuO8EdyGNPaNHSGn_w" name="return" type="_6UdsWuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdwE-O8EdyGNPaNHSGn_w" name="compact" visibility="public">
+                  <ownedParameter xmi:id="_6UdwFOO8EdyGNPaNHSGn_w" name="relations" type="_6UnhleO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdwFeO8EdyGNPaNHSGn_w" name="deleteLastRow" visibility="public"/>
+                <ownedOperation xmi:id="_6UdwFuO8EdyGNPaNHSGn_w" name="open" visibility="public"/>
+                <ownedOperation xmi:id="_6UdwF-O8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                <ownedOperation xmi:id="_6UdwGOO8EdyGNPaNHSGn_w" name="getSize" visibility="public">
+                  <ownedParameter xmi:id="_6UdwGeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UdwGuO8EdyGNPaNHSGn_w" name="InternalRow" visibility="private"/>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UdwG-O8EdyGNPaNHSGn_w" name="IDbSchemaManager">
+                <generalization xmi:id="_6UdwHOO8EdyGNPaNHSGn_w" general="_6UdujuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UdwHeO8EdyGNPaNHSGn_w" name="getConnection" visibility="public">
+                  <ownedParameter xmi:id="_6UdwHuO8EdyGNPaNHSGn_w" name="return" type="_6UdsNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UdwH-O8EdyGNPaNHSGn_w" name="LabelExpansion">
+                <ownedAttribute xmi:id="_6UdwIOO8EdyGNPaNHSGn_w" name="labels" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UdwIeO8EdyGNPaNHSGn_w" name="addLabel" visibility="public">
+                  <ownedParameter xmi:id="_6UdwIuO8EdyGNPaNHSGn_w" name="label" type="_6UUpfOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdwI-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdwJOO8EdyGNPaNHSGn_w" name="modifyLabel" visibility="public">
+                  <ownedParameter xmi:id="_6UdwJeO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdwJuO8EdyGNPaNHSGn_w" name="label" type="_6UUpfOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdwJ-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdwKOO8EdyGNPaNHSGn_w" name="getLabel" visibility="public">
+                  <ownedParameter xmi:id="_6UdwKeO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdwKuO8EdyGNPaNHSGn_w" name="return" type="_6UUpfOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdwK-O8EdyGNPaNHSGn_w" name="compact" visibility="public">
+                  <ownedParameter xmi:id="_6UdwLOO8EdyGNPaNHSGn_w" name="relations" type="_6UnhleO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdwLeO8EdyGNPaNHSGn_w" name="deleteLastLabel" visibility="public"/>
+                <ownedOperation xmi:id="_6UdwLuO8EdyGNPaNHSGn_w" name="open" visibility="public"/>
+                <ownedOperation xmi:id="_6UdwL-O8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                <ownedOperation xmi:id="_6UdwMOO8EdyGNPaNHSGn_w" name="getSize" visibility="public">
+                  <ownedParameter xmi:id="_6UdwMeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UdwMuO8EdyGNPaNHSGn_w" name="FileSchemaManager" clientDependency="_6UdwNOO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UdwM-O8EdyGNPaNHSGn_w" name="path" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UdwNOO8EdyGNPaNHSGn_w" name="ISchemaManager" supplier="_6UdujuO8EdyGNPaNHSGn_w" client="_6UdwMuO8EdyGNPaNHSGn_w" contract="_6UdujuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UdwNeO8EdyGNPaNHSGn_w" name="createSchema" visibility="public">
+                  <ownedParameter xmi:id="_6UdwNuO8EdyGNPaNHSGn_w" name="layerDefinition" type="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdwN-O8EdyGNPaNHSGn_w" name="removeSchema" visibility="public">
+                  <ownedParameter xmi:id="_6UdwOOO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdwOeO8EdyGNPaNHSGn_w" name="renameSchema" visibility="public">
+                  <ownedParameter xmi:id="_6UdwOuO8EdyGNPaNHSGn_w" name="antName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UdwO-O8EdyGNPaNHSGn_w" name="newName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UdwPOO8EdyGNPaNHSGn_w" name="BeforeRowEditEvent">
+                <generalization xmi:id="_6UdwPeO8EdyGNPaNHSGn_w" general="_6UdsieO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdwPuO8EdyGNPaNHSGn_w" name="newFID" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdwP-O8EdyGNPaNHSGn_w" name="changeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UdwQOO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UdwQeO8EdyGNPaNHSGn_w" name="getCancel" visibility="public">
+                  <ownedParameter xmi:id="_6UdwQuO8EdyGNPaNHSGn_w" name="return" type="_6UnhkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdwQ-O8EdyGNPaNHSGn_w" name="getChangeType" visibility="public">
+                  <ownedParameter xmi:id="_6UdwROO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UdwReO8EdyGNPaNHSGn_w" name="getFID" visibility="public">
+                  <ownedParameter xmi:id="_6UdwRuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UdwR-O8EdyGNPaNHSGn_w" name="commands">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdwSOO8EdyGNPaNHSGn_w" name="CommandCollection">
+                  <generalization xmi:id="_6UdwSeO8EdyGNPaNHSGn_w" general="_6UdwU-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwSuO8EdyGNPaNHSGn_w" name="commands" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdwS-O8EdyGNPaNHSGn_w" name="isEmpty" visibility="public">
+                    <ownedParameter xmi:id="_6UdwTOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwTeO8EdyGNPaNHSGn_w" name="undo" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdwTuO8EdyGNPaNHSGn_w" name="redo" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdwT-O8EdyGNPaNHSGn_w" name="add" visibility="public">
+                    <ownedParameter xmi:id="_6UdwUOO8EdyGNPaNHSGn_w" name="c" type="_6Udwm-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwUeO8EdyGNPaNHSGn_w" name="getType" visibility="public">
+                    <ownedParameter xmi:id="_6UdwUuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdwU-O8EdyGNPaNHSGn_w" name="AbstractCommand" clientDependency="_6UdwW-O8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdwVOO8EdyGNPaNHSGn_w" name="description" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwVeO8EdyGNPaNHSGn_w" name="hour" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwVuO8EdyGNPaNHSGn_w" name="minute" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwV-O8EdyGNPaNHSGn_w" name="second" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwWOO8EdyGNPaNHSGn_w" name="day" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwWeO8EdyGNPaNHSGn_w" name="month" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwWuO8EdyGNPaNHSGn_w" name="year" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdwW-O8EdyGNPaNHSGn_w" name="Command" supplier="_6Udwm-O8EdyGNPaNHSGn_w" client="_6UdwU-O8EdyGNPaNHSGn_w" contract="_6Udwm-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdwXOO8EdyGNPaNHSGn_w" name="getDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UdwXeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwXuO8EdyGNPaNHSGn_w" name="setDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UdwX-O8EdyGNPaNHSGn_w" name="descrip" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwYOO8EdyGNPaNHSGn_w" name="getDate" visibility="public">
+                    <ownedParameter xmi:id="_6UdwYeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwYuO8EdyGNPaNHSGn_w" name="getTime" visibility="public">
+                    <ownedParameter xmi:id="_6UdwY-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwZOO8EdyGNPaNHSGn_w" name="toString" visibility="public">
+                    <ownedParameter xmi:id="_6UdwZeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdwZuO8EdyGNPaNHSGn_w" name="AddRowCommand">
+                  <generalization xmi:id="_6UdwZ-O8EdyGNPaNHSGn_w" general="_6UdwU-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwaOO8EdyGNPaNHSGn_w" name="row" visibility="private" type="_6UUekOO8EdyGNPaNHSGn_w" association="_6Udw7-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwaeO8EdyGNPaNHSGn_w" name="calculatedIndex" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwauO8EdyGNPaNHSGn_w" name="efs" visibility="private" type="_6Udu4-O8EdyGNPaNHSGn_w" association="_6Udw8eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udwa-O8EdyGNPaNHSGn_w" name="sourceType" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdwbOO8EdyGNPaNHSGn_w" name="undo" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdwbeO8EdyGNPaNHSGn_w" name="redo" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdwbuO8EdyGNPaNHSGn_w" name="getType" visibility="public">
+                    <ownedParameter xmi:id="_6Udwb-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdwcOO8EdyGNPaNHSGn_w" name="RemoveFieldCommand">
+                  <generalization xmi:id="_6UdwceO8EdyGNPaNHSGn_w" general="_6UdwU-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwcuO8EdyGNPaNHSGn_w" name="edAdapter" type="_6Udu4-O8EdyGNPaNHSGn_w" association="_6Udw8-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udwc-O8EdyGNPaNHSGn_w" name="field" type="_6Udv7uO8EdyGNPaNHSGn_w" association="_6Udw9eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdwdOO8EdyGNPaNHSGn_w" name="undo" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdwdeO8EdyGNPaNHSGn_w" name="redo" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdwduO8EdyGNPaNHSGn_w" name="getType" visibility="public">
+                    <ownedParameter xmi:id="_6Udwd-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdweOO8EdyGNPaNHSGn_w" name="RenameFieldCommand">
+                  <generalization xmi:id="_6UdweeO8EdyGNPaNHSGn_w" general="_6UdwU-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdweuO8EdyGNPaNHSGn_w" name="edAdapter" type="_6Udu4-O8EdyGNPaNHSGn_w" association="_6Udw9-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udwe-O8EdyGNPaNHSGn_w" name="field" type="_6Udv7uO8EdyGNPaNHSGn_w" association="_6Udw-eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwfOO8EdyGNPaNHSGn_w" name="antName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwfeO8EdyGNPaNHSGn_w" name="newName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdwfuO8EdyGNPaNHSGn_w" name="undo" visibility="public"/>
+                  <ownedOperation xmi:id="_6Udwf-O8EdyGNPaNHSGn_w" name="redo" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdwgOO8EdyGNPaNHSGn_w" name="getType" visibility="public">
+                    <ownedParameter xmi:id="_6UdwgeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdwguO8EdyGNPaNHSGn_w" name="AddFieldCommand">
+                  <generalization xmi:id="_6Udwg-O8EdyGNPaNHSGn_w" general="_6UdwU-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwhOO8EdyGNPaNHSGn_w" name="edAdapter" type="_6Udu4-O8EdyGNPaNHSGn_w" association="_6Udw--O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwheO8EdyGNPaNHSGn_w" name="field" type="_6Udv7uO8EdyGNPaNHSGn_w" association="_6Udw_eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdwhuO8EdyGNPaNHSGn_w" name="undo" visibility="public"/>
+                  <ownedOperation xmi:id="_6Udwh-O8EdyGNPaNHSGn_w" name="redo" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdwiOO8EdyGNPaNHSGn_w" name="getType" visibility="public">
+                    <ownedParameter xmi:id="_6UdwieO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UdwiuO8EdyGNPaNHSGn_w" name="CommandListener">
+                  <ownedOperation xmi:id="_6Udwi-O8EdyGNPaNHSGn_w" name="commandRepaint" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdwjOO8EdyGNPaNHSGn_w" name="commandRefresh" visibility="public"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdwjeO8EdyGNPaNHSGn_w" name="CommandEvent">
+                  <generalization xmi:id="_6UdwjuO8EdyGNPaNHSGn_w" general="_6UKts-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udwj-O8EdyGNPaNHSGn_w" name="command" visibility="private" type="_6Udwm-O8EdyGNPaNHSGn_w" association="_6Udw_-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdwkOO8EdyGNPaNHSGn_w" name="getCommand" visibility="public">
+                    <ownedParameter xmi:id="_6UdwkeO8EdyGNPaNHSGn_w" name="return" type="_6Udwm-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdwkuO8EdyGNPaNHSGn_w" name="RemoveRowCommand">
+                  <generalization xmi:id="_6Udwk-O8EdyGNPaNHSGn_w" general="_6UdwU-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwlOO8EdyGNPaNHSGn_w" name="efs" visibility="private" type="_6Udu4-O8EdyGNPaNHSGn_w" association="_6UdxAeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwleO8EdyGNPaNHSGn_w" name="index" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwluO8EdyGNPaNHSGn_w" name="sourceType" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Udwl-O8EdyGNPaNHSGn_w" name="undo" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdwmOO8EdyGNPaNHSGn_w" name="redo" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdwmeO8EdyGNPaNHSGn_w" name="getType" visibility="public">
+                    <ownedParameter xmi:id="_6UdwmuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Udwm-O8EdyGNPaNHSGn_w" name="Command">
+                  <ownedOperation xmi:id="_6UdwnOO8EdyGNPaNHSGn_w" name="undo"/>
+                  <ownedOperation xmi:id="_6UdwneO8EdyGNPaNHSGn_w" name="redo"/>
+                  <ownedOperation xmi:id="_6UdwnuO8EdyGNPaNHSGn_w" name="getType">
+                    <ownedParameter xmi:id="_6Udwn-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwoOO8EdyGNPaNHSGn_w" name="getDescription">
+                    <ownedParameter xmi:id="_6UdwoeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwouO8EdyGNPaNHSGn_w" name="setDescription">
+                    <ownedParameter xmi:id="_6Udwo-O8EdyGNPaNHSGn_w" name="descrip" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwpOO8EdyGNPaNHSGn_w" name="getDate">
+                    <ownedParameter xmi:id="_6UdwpeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwpuO8EdyGNPaNHSGn_w" name="getTime">
+                    <ownedParameter xmi:id="_6Udwp-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdwqOO8EdyGNPaNHSGn_w" name="MemoryCommandRecord" clientDependency="_6UdwruO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdwqeO8EdyGNPaNHSGn_w" name="undos" visibility="private" type="_6Udw7uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwquO8EdyGNPaNHSGn_w" name="redos" visibility="private" type="_6Udw7uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udwq-O8EdyGNPaNHSGn_w" name="commandsListener" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwrOO8EdyGNPaNHSGn_w" name="refresh" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdwreO8EdyGNPaNHSGn_w" name="undosCount" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdwruO8EdyGNPaNHSGn_w" name="CommandRecord" supplier="_6UdwyeO8EdyGNPaNHSGn_w" client="_6UdwqOO8EdyGNPaNHSGn_w" contract="_6UdwyeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Udwr-O8EdyGNPaNHSGn_w" name="pushCommand" visibility="public">
+                    <ownedParameter xmi:id="_6UdwsOO8EdyGNPaNHSGn_w" name="command" type="_6Udwm-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwseO8EdyGNPaNHSGn_w" name="undoCommand" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdwsuO8EdyGNPaNHSGn_w" name="redoCommand" visibility="public"/>
+                  <ownedOperation xmi:id="_6Udws-O8EdyGNPaNHSGn_w" name="moreUndoCommands" visibility="public">
+                    <ownedParameter xmi:id="_6UdwtOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwteO8EdyGNPaNHSGn_w" name="moreRedoCommands" visibility="public">
+                    <ownedParameter xmi:id="_6UdwtuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udwt-O8EdyGNPaNHSGn_w" name="getUndoCommands" visibility="public">
+                    <ownedParameter xmi:id="_6UdwuOO8EdyGNPaNHSGn_w" name="return" type="_6Udwm-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwueO8EdyGNPaNHSGn_w" name="getRedoCommands" visibility="public">
+                    <ownedParameter xmi:id="_6UdwuuO8EdyGNPaNHSGn_w" name="return" type="_6Udwm-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udwu-O8EdyGNPaNHSGn_w" name="getPos" visibility="public">
+                    <ownedParameter xmi:id="_6UdwvOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwveO8EdyGNPaNHSGn_w" name="setPos" visibility="public">
+                    <ownedParameter xmi:id="_6UdwvuO8EdyGNPaNHSGn_w" name="newpos" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udwv-O8EdyGNPaNHSGn_w" name="addCommandListener" visibility="public">
+                    <ownedParameter xmi:id="_6UdwwOO8EdyGNPaNHSGn_w" name="cl" type="_6UdwiuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwweO8EdyGNPaNHSGn_w" name="fireCommandsRepaint" visibility="public">
+                    <ownedParameter xmi:id="_6UdwwuO8EdyGNPaNHSGn_w" name="e" type="_6UdwjeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udww-O8EdyGNPaNHSGn_w" name="fireCommandRefresh" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdwxOO8EdyGNPaNHSGn_w" name="getCommandCount" visibility="public">
+                    <ownedParameter xmi:id="_6UdwxeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwxuO8EdyGNPaNHSGn_w" name="removeCommandListener" visibility="public">
+                    <ownedParameter xmi:id="_6Udwx-O8EdyGNPaNHSGn_w" name="e" type="_6UdwiuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwyOO8EdyGNPaNHSGn_w" name="clearAll" visibility="public"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UdwyeO8EdyGNPaNHSGn_w" name="CommandRecord">
+                  <ownedOperation xmi:id="_6UdwyuO8EdyGNPaNHSGn_w" name="pushCommand">
+                    <ownedParameter xmi:id="_6Udwy-O8EdyGNPaNHSGn_w" name="command" type="_6Udwm-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdwzOO8EdyGNPaNHSGn_w" name="undoCommand"/>
+                  <ownedOperation xmi:id="_6UdwzeO8EdyGNPaNHSGn_w" name="redoCommand"/>
+                  <ownedOperation xmi:id="_6UdwzuO8EdyGNPaNHSGn_w" name="moreUndoCommands">
+                    <ownedParameter xmi:id="_6Udwz-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udw0OO8EdyGNPaNHSGn_w" name="moreRedoCommands">
+                    <ownedParameter xmi:id="_6Udw0eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udw0uO8EdyGNPaNHSGn_w" name="getUndoCommands" visibility="public">
+                    <ownedParameter xmi:id="_6Udw0-O8EdyGNPaNHSGn_w" name="return" type="_6Udwm-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udw1OO8EdyGNPaNHSGn_w" name="getRedoCommands" visibility="public">
+                    <ownedParameter xmi:id="_6Udw1eO8EdyGNPaNHSGn_w" name="return" type="_6Udwm-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udw1uO8EdyGNPaNHSGn_w" name="getPos" visibility="public">
+                    <ownedParameter xmi:id="_6Udw1-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udw2OO8EdyGNPaNHSGn_w" name="setPos" visibility="public">
+                    <ownedParameter xmi:id="_6Udw2eO8EdyGNPaNHSGn_w" name="pos" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udw2uO8EdyGNPaNHSGn_w" name="addCommandListener" visibility="public">
+                    <ownedParameter xmi:id="_6Udw2-O8EdyGNPaNHSGn_w" name="ecl" type="_6UdwiuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udw3OO8EdyGNPaNHSGn_w" name="removeCommandListener" visibility="public">
+                    <ownedParameter xmi:id="_6Udw3eO8EdyGNPaNHSGn_w" name="e" type="_6UdwiuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udw3uO8EdyGNPaNHSGn_w" name="fireCommandsRepaint" visibility="public">
+                    <ownedParameter xmi:id="_6Udw3-O8EdyGNPaNHSGn_w" name="e" type="_6UdwjeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udw4OO8EdyGNPaNHSGn_w" name="getCommandCount" visibility="public">
+                    <ownedParameter xmi:id="_6Udw4eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udw4uO8EdyGNPaNHSGn_w" name="clearAll" visibility="public"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Udw4-O8EdyGNPaNHSGn_w" name="ModifyRowCommand">
+                  <generalization xmi:id="_6Udw5OO8EdyGNPaNHSGn_w" general="_6UdwU-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udw5eO8EdyGNPaNHSGn_w" name="efs" visibility="private" type="_6Udu4-O8EdyGNPaNHSGn_w" association="_6UdxA-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udw5uO8EdyGNPaNHSGn_w" name="rowNext" visibility="private" type="_6UUekOO8EdyGNPaNHSGn_w" association="_6UdxBeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udw5-O8EdyGNPaNHSGn_w" name="calculatedIndexAnt" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udw6OO8EdyGNPaNHSGn_w" name="previousIndexInExpansionFile" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Udw6eO8EdyGNPaNHSGn_w" name="type" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Udw6uO8EdyGNPaNHSGn_w" name="undo" visibility="public"/>
+                  <ownedOperation xmi:id="_6Udw6-O8EdyGNPaNHSGn_w" name="redo" visibility="public"/>
+                  <ownedOperation xmi:id="_6Udw7OO8EdyGNPaNHSGn_w" name="getType" visibility="public">
+                    <ownedParameter xmi:id="_6Udw7eO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6Udw7uO8EdyGNPaNHSGn_w" name="Stack"/>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Udw7-O8EdyGNPaNHSGn_w" memberEnd="_6UdwaOO8EdyGNPaNHSGn_w _6Udw8OO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6Udw8OO8EdyGNPaNHSGn_w" name="target" type="_6UdwZuO8EdyGNPaNHSGn_w" association="_6Udw7-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Udw8eO8EdyGNPaNHSGn_w" memberEnd="_6UdwauO8EdyGNPaNHSGn_w _6Udw8uO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6Udw8uO8EdyGNPaNHSGn_w" name="target" type="_6UdwZuO8EdyGNPaNHSGn_w" association="_6Udw8eO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Udw8-O8EdyGNPaNHSGn_w" memberEnd="_6UdwcuO8EdyGNPaNHSGn_w _6Udw9OO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6Udw9OO8EdyGNPaNHSGn_w" name="target" type="_6UdwcOO8EdyGNPaNHSGn_w" association="_6Udw8-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Udw9eO8EdyGNPaNHSGn_w" memberEnd="_6Udwc-O8EdyGNPaNHSGn_w _6Udw9uO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6Udw9uO8EdyGNPaNHSGn_w" name="target" type="_6UdwcOO8EdyGNPaNHSGn_w" association="_6Udw9eO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Udw9-O8EdyGNPaNHSGn_w" memberEnd="_6UdweuO8EdyGNPaNHSGn_w _6Udw-OO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6Udw-OO8EdyGNPaNHSGn_w" name="target" type="_6UdweOO8EdyGNPaNHSGn_w" association="_6Udw9-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Udw-eO8EdyGNPaNHSGn_w" memberEnd="_6Udwe-O8EdyGNPaNHSGn_w _6Udw-uO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6Udw-uO8EdyGNPaNHSGn_w" name="target" type="_6UdweOO8EdyGNPaNHSGn_w" association="_6Udw-eO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Udw--O8EdyGNPaNHSGn_w" memberEnd="_6UdwhOO8EdyGNPaNHSGn_w _6Udw_OO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6Udw_OO8EdyGNPaNHSGn_w" name="target" type="_6UdwguO8EdyGNPaNHSGn_w" association="_6Udw--O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Udw_eO8EdyGNPaNHSGn_w" memberEnd="_6UdwheO8EdyGNPaNHSGn_w _6Udw_uO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6Udw_uO8EdyGNPaNHSGn_w" name="target" type="_6UdwguO8EdyGNPaNHSGn_w" association="_6Udw_eO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Udw_-O8EdyGNPaNHSGn_w" memberEnd="_6Udwj-O8EdyGNPaNHSGn_w _6UdxAOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdxAOO8EdyGNPaNHSGn_w" name="target" type="_6UdwjeO8EdyGNPaNHSGn_w" association="_6Udw_-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdxAeO8EdyGNPaNHSGn_w" memberEnd="_6UdwlOO8EdyGNPaNHSGn_w _6UdxAuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdxAuO8EdyGNPaNHSGn_w" name="target" type="_6UdwkuO8EdyGNPaNHSGn_w" association="_6UdxAeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdxA-O8EdyGNPaNHSGn_w" memberEnd="_6Udw5eO8EdyGNPaNHSGn_w _6UdxBOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdxBOO8EdyGNPaNHSGn_w" name="target" type="_6Udw4-O8EdyGNPaNHSGn_w" association="_6UdxA-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdxBeO8EdyGNPaNHSGn_w" memberEnd="_6Udw5uO8EdyGNPaNHSGn_w _6UdxBuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdxBuO8EdyGNPaNHSGn_w" name="target" type="_6Udw4-O8EdyGNPaNHSGn_w" association="_6UdxBeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UdxB-O8EdyGNPaNHSGn_w" name="fieldmanagers">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdxCOO8EdyGNPaNHSGn_w" name="JdbcFieldManager">
+                  <generalization xmi:id="_6UdxCeO8EdyGNPaNHSGn_w" general="_6UdxD-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdxCuO8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdxC-O8EdyGNPaNHSGn_w" name="conn" type="_6UdsNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdxDOO8EdyGNPaNHSGn_w" name="tableName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdxDeO8EdyGNPaNHSGn_w" name="alterTable" visibility="public">
+                    <ownedParameter xmi:id="_6UdxDuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdxD-O8EdyGNPaNHSGn_w" name="AbstractFieldManager" clientDependency="_6UdxEuO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdxEOO8EdyGNPaNHSGn_w" name="fieldCommands" visibility="protected" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdxEeO8EdyGNPaNHSGn_w" name="originalFields" visibility="protected" type="_6UUuEOO8EdyGNPaNHSGn_w" association="_6UdxOOO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdxEuO8EdyGNPaNHSGn_w" name="IFieldManager" supplier="_6UdsneO8EdyGNPaNHSGn_w" client="_6UdxD-O8EdyGNPaNHSGn_w" contract="_6UdsneO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdxE-O8EdyGNPaNHSGn_w" name="getOriginalFields" visibility="public">
+                    <ownedParameter xmi:id="_6UdxFOO8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxFeO8EdyGNPaNHSGn_w" name="setOriginalFields" visibility="public">
+                    <ownedParameter xmi:id="_6UdxFuO8EdyGNPaNHSGn_w" name="fields" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxF-O8EdyGNPaNHSGn_w" name="addField" visibility="public">
+                    <ownedParameter xmi:id="_6UdxGOO8EdyGNPaNHSGn_w" name="fieldDesc" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxGeO8EdyGNPaNHSGn_w" name="removeField" visibility="public">
+                    <ownedParameter xmi:id="_6UdxGuO8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdxG-O8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxHOO8EdyGNPaNHSGn_w" name="renameField" visibility="public">
+                    <ownedParameter xmi:id="_6UdxHeO8EdyGNPaNHSGn_w" name="antName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdxHuO8EdyGNPaNHSGn_w" name="newName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxH-O8EdyGNPaNHSGn_w" name="getFields" visibility="public">
+                    <ownedParameter xmi:id="_6UdxIOO8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdxIeO8EdyGNPaNHSGn_w" name="AddFieldCommand" clientDependency="_6UdxI-O8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdxIuO8EdyGNPaNHSGn_w" name="fieldDesc" visibility="private" type="_6UUuEOO8EdyGNPaNHSGn_w" association="_6UdxOuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdxI-O8EdyGNPaNHSGn_w" name="FieldCommand" supplier="_6UdxM-O8EdyGNPaNHSGn_w" client="_6UdxIeO8EdyGNPaNHSGn_w" contract="_6UdxM-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdxJOO8EdyGNPaNHSGn_w" name="getFieldDesc" visibility="public">
+                    <ownedParameter xmi:id="_6UdxJeO8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdxJuO8EdyGNPaNHSGn_w" name="RenameFieldCommand" clientDependency="_6UdxKeO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdxJ-O8EdyGNPaNHSGn_w" name="antName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdxKOO8EdyGNPaNHSGn_w" name="newName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdxKeO8EdyGNPaNHSGn_w" name="FieldCommand" supplier="_6UdxM-O8EdyGNPaNHSGn_w" client="_6UdxJuO8EdyGNPaNHSGn_w" contract="_6UdxM-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdxKuO8EdyGNPaNHSGn_w" name="getAntName" visibility="public">
+                    <ownedParameter xmi:id="_6UdxK-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxLOO8EdyGNPaNHSGn_w" name="getNewName" visibility="public">
+                    <ownedParameter xmi:id="_6UdxLeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdxLuO8EdyGNPaNHSGn_w" name="RemoveFieldCommand" clientDependency="_6UdxMOO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdxL-O8EdyGNPaNHSGn_w" name="fieldName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdxMOO8EdyGNPaNHSGn_w" name="FieldCommand" supplier="_6UdxM-O8EdyGNPaNHSGn_w" client="_6UdxLuO8EdyGNPaNHSGn_w" contract="_6UdxM-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdxMeO8EdyGNPaNHSGn_w" name="getFieldName" visibility="public">
+                    <ownedParameter xmi:id="_6UdxMuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UdxM-O8EdyGNPaNHSGn_w" name="FieldCommand"/>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdxNOO8EdyGNPaNHSGn_w" name="ShpFieldManager">
+                  <generalization xmi:id="_6UdxNeO8EdyGNPaNHSGn_w" general="_6UdxD-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdxNuO8EdyGNPaNHSGn_w" name="alterTable" visibility="public">
+                    <ownedParameter xmi:id="_6UdxN-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdxOOO8EdyGNPaNHSGn_w" memberEnd="_6UdxEeO8EdyGNPaNHSGn_w _6UdxOeO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdxOeO8EdyGNPaNHSGn_w" name="target" type="_6UdxD-O8EdyGNPaNHSGn_w" association="_6UdxOOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdxOuO8EdyGNPaNHSGn_w" memberEnd="_6UdxIuO8EdyGNPaNHSGn_w _6UdxO-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdxO-O8EdyGNPaNHSGn_w" name="target" type="_6UdxIeO8EdyGNPaNHSGn_w" association="_6UdxOuO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UdxPOO8EdyGNPaNHSGn_w" name="rules">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdxPeO8EdyGNPaNHSGn_w" name="AbstractRule" clientDependency="_6UdxQeO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdxPuO8EdyGNPaNHSGn_w" name="name" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdxP-O8EdyGNPaNHSGn_w" name="description" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdxQOO8EdyGNPaNHSGn_w" name="priority" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UdxQeO8EdyGNPaNHSGn_w" name="IRule" supplier="_6UdxTuO8EdyGNPaNHSGn_w" client="_6UdxPeO8EdyGNPaNHSGn_w" contract="_6UdxTuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdxQuO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                    <ownedParameter xmi:id="_6UdxQ-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxROO8EdyGNPaNHSGn_w" name="getDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UdxReO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxRuO8EdyGNPaNHSGn_w" name="getPriority" visibility="public">
+                    <ownedParameter xmi:id="_6UdxR-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdxSOO8EdyGNPaNHSGn_w" name="RulePolygon">
+                  <generalization xmi:id="_6UdxSeO8EdyGNPaNHSGn_w" general="_6UdxPeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdxSuO8EdyGNPaNHSGn_w" name="validate" visibility="public">
+                    <ownedParameter xmi:id="_6UdxS-O8EdyGNPaNHSGn_w" name="row" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdxTOO8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdxTeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UdxTuO8EdyGNPaNHSGn_w" name="IRule">
+                  <ownedOperation xmi:id="_6UdxT-O8EdyGNPaNHSGn_w" name="getName">
+                    <ownedParameter xmi:id="_6UdxUOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxUeO8EdyGNPaNHSGn_w" name="getDescription">
+                    <ownedParameter xmi:id="_6UdxUuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxU-O8EdyGNPaNHSGn_w" name="getPriority">
+                    <ownedParameter xmi:id="_6UdxVOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxVeO8EdyGNPaNHSGn_w" name="validate">
+                    <ownedParameter xmi:id="_6UdxVuO8EdyGNPaNHSGn_w" name="row" type="_6UUekOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdxV-O8EdyGNPaNHSGn_w" name="sourceType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdxWOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UdxWeO8EdyGNPaNHSGn_w" name="writers">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UdxWuO8EdyGNPaNHSGn_w" name="JdbcWriter">
+                  <generalization xmi:id="_6UdxW-O8EdyGNPaNHSGn_w" general="_6Udxe-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdxXOO8EdyGNPaNHSGn_w" name="conn" type="_6UdsNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdxXeO8EdyGNPaNHSGn_w" name="rs" type="_6UdsMOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdxXuO8EdyGNPaNHSGn_w" name="record" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdxX-O8EdyGNPaNHSGn_w" name="numRecord" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdxYOO8EdyGNPaNHSGn_w" name="bCreateTable" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdxYeO8EdyGNPaNHSGn_w" name="metaData" visibility="private" type="_6UdsMuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdxYuO8EdyGNPaNHSGn_w" name="initialize" visibility="public">
+                    <ownedParameter xmi:id="_6UdxY-O8EdyGNPaNHSGn_w" name="conn" type="_6UdsNeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdxZOO8EdyGNPaNHSGn_w" name="rs" type="_6UdsMOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxZeO8EdyGNPaNHSGn_w" name="preProcess" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdxZuO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6UdxZ-O8EdyGNPaNHSGn_w" name="editedRow" type="_6UdsWuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxaOO8EdyGNPaNHSGn_w" name="postProcess" visibility="public"/>
+                  <ownedOperation xmi:id="_6UdxaeO8EdyGNPaNHSGn_w" name="canWriteAttribute" visibility="public">
+                    <ownedParameter xmi:id="_6UdxauO8EdyGNPaNHSGn_w" name="sqlType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udxa-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxbOO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                    <ownedParameter xmi:id="_6UdxbeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxbuO8EdyGNPaNHSGn_w" name="isCreateTable" visibility="public">
+                    <ownedParameter xmi:id="_6Udxb-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxcOO8EdyGNPaNHSGn_w" name="setCreateTable" visibility="public">
+                    <ownedParameter xmi:id="_6UdxceO8EdyGNPaNHSGn_w" name="createTable" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxcuO8EdyGNPaNHSGn_w" name="isWriteAll" visibility="public">
+                    <ownedParameter xmi:id="_6Udxc-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxdOO8EdyGNPaNHSGn_w" name="setWriteAll" visibility="public">
+                    <ownedParameter xmi:id="_6UdxdeO8EdyGNPaNHSGn_w" name="writeAll" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxduO8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                  <ownedOperation xmi:id="_6Udxd-O8EdyGNPaNHSGn_w" name="canAlterTable" visibility="public">
+                    <ownedParameter xmi:id="_6UdxeOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxeeO8EdyGNPaNHSGn_w" name="canSaveEdits" visibility="public">
+                    <ownedParameter xmi:id="_6UdxeuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Udxe-O8EdyGNPaNHSGn_w" name="AbstractWriter" clientDependency="_6Udxf-O8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UdxfOO8EdyGNPaNHSGn_w" name="capabilities" visibility="protected" type="_6UUwJuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdxfeO8EdyGNPaNHSGn_w" name="tableDef" visibility="protected" type="_6UUrbOO8EdyGNPaNHSGn_w" association="_6UdzlOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UdxfuO8EdyGNPaNHSGn_w" name="bWriteAll" visibility="protected" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6Udxf-O8EdyGNPaNHSGn_w" name="IWriter" supplier="_6UdsrOO8EdyGNPaNHSGn_w" client="_6Udxe-O8EdyGNPaNHSGn_w" contract="_6UdsrOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UdxgOO8EdyGNPaNHSGn_w" name="getCapability" visibility="public">
+                    <ownedParameter xmi:id="_6UdxgeO8EdyGNPaNHSGn_w" name="capability" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UdxguO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Udxg-O8EdyGNPaNHSGn_w" name="setCapabilities" visibility="public">
+                    <ownedParameter xmi:id="_6UdxhOO8EdyGNPaNHSGn_w" name="capabilities" type="_6UUwJuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxheO8EdyGNPaNHSGn_w" name="canWriteAttribute" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UdxhuO8EdyGNPaNHSGn_w" name="sqlType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Udxh-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxiOO8EdyGNPaNHSGn_w" name="initialize" visibility="public">
+                    <ownedParameter xmi:id="_6UdxieO8EdyGNPaNHSGn_w" name="tableDefinition" type="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxiuO8EdyGNPaNHSGn_w" name="getTableDefinition" visibility="public">
+                    <ownedParameter xmi:id="_6Udxi-O8EdyGNPaNHSGn_w" name="return" type="_6UUrbOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxjOO8EdyGNPaNHSGn_w" name="isWriteAll" visibility="public">
+                    <ownedParameter xmi:id="_6UdxjeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UdxjuO8EdyGNPaNHSGn_w" name="setWriteAll" visibility="public">
+                    <ownedParameter xmi:id="_6Udxj-O8EdyGNPaNHSGn_w" name="writeAll" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Package" xmi:id="_6UdxkOO8EdyGNPaNHSGn_w" name="dbf">
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UdxkeO8EdyGNPaNHSGn_w" name="DbfWriter">
+                    <generalization xmi:id="_6UdxkuO8EdyGNPaNHSGn_w" general="_6Udxe-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udxk-O8EdyGNPaNHSGn_w" name="dbfPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdxlOO8EdyGNPaNHSGn_w" name="dbfWrite" visibility="private" type="_6UdqnOO8EdyGNPaNHSGn_w" association="_6UdxveO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdxleO8EdyGNPaNHSGn_w" name="myHeader" visibility="private" type="_6UdqSeO8EdyGNPaNHSGn_w" association="_6Udxv-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdxluO8EdyGNPaNHSGn_w" name="numRows" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udxl-O8EdyGNPaNHSGn_w" name="record" visibility="private" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdxmOO8EdyGNPaNHSGn_w" name="fieldCommands" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdxmeO8EdyGNPaNHSGn_w" name="selection" visibility="private" type="_6Ud3HOO8EdyGNPaNHSGn_w" association="_6UdxweO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdxmuO8EdyGNPaNHSGn_w" name="originalFields" visibility="private" type="_6UUuEOO8EdyGNPaNHSGn_w" association="_6Udxw-O8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6Udxm-O8EdyGNPaNHSGn_w" name="setFile" visibility="public">
+                      <ownedParameter xmi:id="_6UdxnOO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdxneO8EdyGNPaNHSGn_w" name="getWriteChannel" visibility="private">
+                      <ownedParameter xmi:id="_6UdxnuO8EdyGNPaNHSGn_w" name="path" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udxn-O8EdyGNPaNHSGn_w" name="return" type="_6UUwJeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdxoOO8EdyGNPaNHSGn_w" name="preProcess" visibility="public"/>
+                    <ownedOperation xmi:id="_6UdxoeO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                      <ownedParameter xmi:id="_6UdxouO8EdyGNPaNHSGn_w" name="row" type="_6UdsWuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udxo-O8EdyGNPaNHSGn_w" name="postProcess" visibility="public"/>
+                    <ownedOperation xmi:id="_6UdxpOO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                      <ownedParameter xmi:id="_6UdxpeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdxpuO8EdyGNPaNHSGn_w" name="canWriteAttribute" visibility="public">
+                      <ownedParameter xmi:id="_6Udxp-O8EdyGNPaNHSGn_w" name="sqlType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdxqOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdxqeO8EdyGNPaNHSGn_w" name="initialize" visibility="public">
+                      <ownedParameter xmi:id="_6UdxquO8EdyGNPaNHSGn_w" name="tableDefinition" type="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udxq-O8EdyGNPaNHSGn_w" name="getOriginalFields" visibility="public">
+                      <ownedParameter xmi:id="_6UdxrOO8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdxreO8EdyGNPaNHSGn_w" name="alterTable" visibility="public">
+                      <ownedParameter xmi:id="_6UdxruO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udxr-O8EdyGNPaNHSGn_w" name="addField" visibility="public">
+                      <ownedParameter xmi:id="_6UdxsOO8EdyGNPaNHSGn_w" name="fieldDesc" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdxseO8EdyGNPaNHSGn_w" name="removeField" visibility="public">
+                      <ownedParameter xmi:id="_6UdxsuO8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udxs-O8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdxtOO8EdyGNPaNHSGn_w" name="renameField" visibility="public">
+                      <ownedParameter xmi:id="_6UdxteO8EdyGNPaNHSGn_w" name="antName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdxtuO8EdyGNPaNHSGn_w" name="newName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udxt-O8EdyGNPaNHSGn_w" name="getFields" visibility="public">
+                      <ownedParameter xmi:id="_6UdxuOO8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdxueO8EdyGNPaNHSGn_w" name="canAlterTable" visibility="public">
+                      <ownedParameter xmi:id="_6UdxuuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udxu-O8EdyGNPaNHSGn_w" name="canSaveEdits" visibility="public">
+                      <ownedParameter xmi:id="_6UdxvOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UdxveO8EdyGNPaNHSGn_w" memberEnd="_6UdxlOO8EdyGNPaNHSGn_w _6UdxvuO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UdxvuO8EdyGNPaNHSGn_w" name="target" type="_6UdxkeO8EdyGNPaNHSGn_w" association="_6UdxveO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6Udxv-O8EdyGNPaNHSGn_w" memberEnd="_6UdxleO8EdyGNPaNHSGn_w _6UdxwOO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UdxwOO8EdyGNPaNHSGn_w" name="target" type="_6UdxkeO8EdyGNPaNHSGn_w" association="_6Udxv-O8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UdxweO8EdyGNPaNHSGn_w" memberEnd="_6UdxmeO8EdyGNPaNHSGn_w _6UdxwuO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UdxwuO8EdyGNPaNHSGn_w" name="target" type="_6UdxkeO8EdyGNPaNHSGn_w" association="_6UdxweO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6Udxw-O8EdyGNPaNHSGn_w" memberEnd="_6UdxmuO8EdyGNPaNHSGn_w _6UdxxOO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UdxxOO8EdyGNPaNHSGn_w" name="target" type="_6UdxkeO8EdyGNPaNHSGn_w" association="_6Udxw-O8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Package" xmi:id="_6UdxxeO8EdyGNPaNHSGn_w" name="dxf">
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UdxxuO8EdyGNPaNHSGn_w" name="DxfFieldsMapping">
+                    <ownedAttribute xmi:id="_6Udxx-O8EdyGNPaNHSGn_w" name="layerField" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdxyOO8EdyGNPaNHSGn_w" name="colorField" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdxyeO8EdyGNPaNHSGn_w" name="elevationField" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdxyuO8EdyGNPaNHSGn_w" name="thicknessField" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udxy-O8EdyGNPaNHSGn_w" name="textField" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdxzOO8EdyGNPaNHSGn_w" name="heightText" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdxzeO8EdyGNPaNHSGn_w" name="rotationText" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UdxzuO8EdyGNPaNHSGn_w" name="getColorField" visibility="public">
+                      <ownedParameter xmi:id="_6Udxz-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udx0OO8EdyGNPaNHSGn_w" name="setColorField" visibility="public">
+                      <ownedParameter xmi:id="_6Udx0eO8EdyGNPaNHSGn_w" name="colorField" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udx0uO8EdyGNPaNHSGn_w" name="getElevationField" visibility="public">
+                      <ownedParameter xmi:id="_6Udx0-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udx1OO8EdyGNPaNHSGn_w" name="setElevationField" visibility="public">
+                      <ownedParameter xmi:id="_6Udx1eO8EdyGNPaNHSGn_w" name="elevationField" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udx1uO8EdyGNPaNHSGn_w" name="getHeightText" visibility="public">
+                      <ownedParameter xmi:id="_6Udx1-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udx2OO8EdyGNPaNHSGn_w" name="setHeightText" visibility="public">
+                      <ownedParameter xmi:id="_6Udx2eO8EdyGNPaNHSGn_w" name="heightText" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udx2uO8EdyGNPaNHSGn_w" name="getLayerField" visibility="public">
+                      <ownedParameter xmi:id="_6Udx2-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udx3OO8EdyGNPaNHSGn_w" name="setLayerField" visibility="public">
+                      <ownedParameter xmi:id="_6Udx3eO8EdyGNPaNHSGn_w" name="layerField" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udx3uO8EdyGNPaNHSGn_w" name="getRotationText" visibility="public">
+                      <ownedParameter xmi:id="_6Udx3-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udx4OO8EdyGNPaNHSGn_w" name="setRotationText" visibility="public">
+                      <ownedParameter xmi:id="_6Udx4eO8EdyGNPaNHSGn_w" name="rotationText" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udx4uO8EdyGNPaNHSGn_w" name="getTextField" visibility="public">
+                      <ownedParameter xmi:id="_6Udx4-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udx5OO8EdyGNPaNHSGn_w" name="setTextField" visibility="public">
+                      <ownedParameter xmi:id="_6Udx5eO8EdyGNPaNHSGn_w" name="textField" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udx5uO8EdyGNPaNHSGn_w" name="getThicknessField" visibility="public">
+                      <ownedParameter xmi:id="_6Udx5-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udx6OO8EdyGNPaNHSGn_w" name="setThicknessField" visibility="public">
+                      <ownedParameter xmi:id="_6Udx6eO8EdyGNPaNHSGn_w" name="thicknessField" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6Udx6uO8EdyGNPaNHSGn_w" name="DxfWriter" clientDependency="_6Udx_-O8EdyGNPaNHSGn_w">
+                    <generalization xmi:id="_6Udx6-O8EdyGNPaNHSGn_w" general="_6Udxe-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx7OO8EdyGNPaNHSGn_w" name="DEFAULT_LAYER" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx7eO8EdyGNPaNHSGn_w" name="DEFAULT_COLOR" visibility="private" type="_6UdsEeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx7uO8EdyGNPaNHSGn_w" name="DEFAULT_ELEVATION" visibility="private" type="_6UdyauO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx7-O8EdyGNPaNHSGn_w" name="DEFAULT_THICKNESS" visibility="private" type="_6UdyauO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx8OO8EdyGNPaNHSGn_w" name="DEFAULT_TEXT" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx8eO8EdyGNPaNHSGn_w" name="DEFAULT_HEIGHTTEXT" visibility="private" type="_6UdyauO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx8uO8EdyGNPaNHSGn_w" name="DEFAULT_ROTATIONTEXT" visibility="private" type="_6UdyauO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx8-O8EdyGNPaNHSGn_w" name="fieldMapping" visibility="private" type="_6UdxxuO8EdyGNPaNHSGn_w" association="_6Udyb-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx9OO8EdyGNPaNHSGn_w" name="file" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx9eO8EdyGNPaNHSGn_w" name="fieldsDesc" visibility="private" type="_6UUuEOO8EdyGNPaNHSGn_w" association="_6UdyceO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx9uO8EdyGNPaNHSGn_w" name="entityMaker" visibility="private" type="_6UdnxOO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx9-O8EdyGNPaNHSGn_w" name="proj" visibility="private" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx-OO8EdyGNPaNHSGn_w" name="dxfFile" visibility="private" type="_6UdnxeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx-eO8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx-uO8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx--O8EdyGNPaNHSGn_w" name="dxf3DFile" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx_OO8EdyGNPaNHSGn_w" name="indexText" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx_eO8EdyGNPaNHSGn_w" name="indexHeightText" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udx_uO8EdyGNPaNHSGn_w" name="indexRotationText" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <interfaceRealization xmi:id="_6Udx_-O8EdyGNPaNHSGn_w" name="ISpatialWriter" supplier="_6UdtjuO8EdyGNPaNHSGn_w" client="_6Udx6uO8EdyGNPaNHSGn_w" contract="_6UdtjuO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UdyAOO8EdyGNPaNHSGn_w" name="setFile" visibility="public">
+                      <ownedParameter xmi:id="_6UdyAeO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyAuO8EdyGNPaNHSGn_w" name="canWriteAttribute" visibility="public">
+                      <ownedParameter xmi:id="_6UdyA-O8EdyGNPaNHSGn_w" name="sqlType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyBOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyBeO8EdyGNPaNHSGn_w" name="canAlterTable" visibility="public">
+                      <ownedParameter xmi:id="_6UdyBuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyB-O8EdyGNPaNHSGn_w" name="canWriteGeometry" visibility="public">
+                      <ownedParameter xmi:id="_6UdyCOO8EdyGNPaNHSGn_w" name="gvSIGgeometryType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyCeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyCuO8EdyGNPaNHSGn_w" name="initialize" visibility="public">
+                      <ownedParameter xmi:id="_6UdyC-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyDOO8EdyGNPaNHSGn_w" name="initialize" visibility="public">
+                      <ownedParameter xmi:id="_6UdyDeO8EdyGNPaNHSGn_w" name="lyrDef" type="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyDuO8EdyGNPaNHSGn_w" name="preProcess" visibility="public"/>
+                    <ownedOperation xmi:id="_6UdyD-O8EdyGNPaNHSGn_w" name="process" visibility="public">
+                      <ownedParameter xmi:id="_6UdyEOO8EdyGNPaNHSGn_w" name="row" type="_6UdsWuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyEeO8EdyGNPaNHSGn_w" name="createArc2D" visibility="private">
+                      <ownedParameter xmi:id="_6UdyEuO8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyE-O8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyFOO8EdyGNPaNHSGn_w" name="fArc" type="_6Udya-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyFeO8EdyGNPaNHSGn_w" name="values" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyFuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyF-O8EdyGNPaNHSGn_w" name="createCircle2D" visibility="private">
+                      <ownedParameter xmi:id="_6UdyGOO8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyGeO8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyGuO8EdyGNPaNHSGn_w" name="geom" type="_6UdybOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyG-O8EdyGNPaNHSGn_w" name="values" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyHOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyHeO8EdyGNPaNHSGn_w" name="createEllipse2D" visibility="private">
+                      <ownedParameter xmi:id="_6UdyHuO8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyH-O8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyIOO8EdyGNPaNHSGn_w" name="fElip" type="_6UdybeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyIeO8EdyGNPaNHSGn_w" name="values" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyIuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyI-O8EdyGNPaNHSGn_w" name="postProcess" visibility="public"/>
+                    <ownedOperation xmi:id="_6UdyJOO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                      <ownedParameter xmi:id="_6UdyJeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyJuO8EdyGNPaNHSGn_w" name="getFieldMapping" visibility="public">
+                      <ownedParameter xmi:id="_6UdyJ-O8EdyGNPaNHSGn_w" name="return" type="_6UdxxuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyKOO8EdyGNPaNHSGn_w" name="setFieldMapping" visibility="public">
+                      <ownedParameter xmi:id="_6UdyKeO8EdyGNPaNHSGn_w" name="fieldMapping" type="_6UdxxuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyKuO8EdyGNPaNHSGn_w" name="write" visibility="public">
+                      <ownedParameter xmi:id="_6UdyK-O8EdyGNPaNHSGn_w" name="geometries" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyLOO8EdyGNPaNHSGn_w" name="file" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyLeO8EdyGNPaNHSGn_w" name="createPolygon3D" visibility="private">
+                      <ownedParameter xmi:id="_6UdyLuO8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyL-O8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyMOO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyMeO8EdyGNPaNHSGn_w" name="values" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyMuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyM-O8EdyGNPaNHSGn_w" name="createPolygon2D" visibility="private">
+                      <ownedParameter xmi:id="_6UdyNOO8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyNeO8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyNuO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyN-O8EdyGNPaNHSGn_w" name="values" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyOOO8EdyGNPaNHSGn_w" name="createPolyline3D" visibility="private">
+                      <ownedParameter xmi:id="_6UdyOeO8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyOuO8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyO-O8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyPOO8EdyGNPaNHSGn_w" name="values" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyPeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyPuO8EdyGNPaNHSGn_w" name="updateProperties" visibility="private">
+                      <ownedParameter xmi:id="_6UdyP-O8EdyGNPaNHSGn_w" name="values" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyQOO8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyQeO8EdyGNPaNHSGn_w" name="return" type="_6UdybuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyQuO8EdyGNPaNHSGn_w" name="createLwPolyline2D" visibility="private">
+                      <ownedParameter xmi:id="_6UdyQ-O8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyROO8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyReO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyRuO8EdyGNPaNHSGn_w" name="isPolygon" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyR-O8EdyGNPaNHSGn_w" name="values" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdySOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdySeO8EdyGNPaNHSGn_w" name="createPoint3D" visibility="private">
+                      <ownedParameter xmi:id="_6UdySuO8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyS-O8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyTOO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyTeO8EdyGNPaNHSGn_w" name="values" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyTuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyT-O8EdyGNPaNHSGn_w" name="createPoint2D" visibility="private">
+                      <ownedParameter xmi:id="_6UdyUOO8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyUeO8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyUuO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyU-O8EdyGNPaNHSGn_w" name="values" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyVOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyVeO8EdyGNPaNHSGn_w" name="createText2D" visibility="private">
+                      <ownedParameter xmi:id="_6UdyVuO8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyV-O8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyWOO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyWeO8EdyGNPaNHSGn_w" name="values" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyWuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyW-O8EdyGNPaNHSGn_w" name="createText3D" visibility="private">
+                      <ownedParameter xmi:id="_6UdyXOO8EdyGNPaNHSGn_w" name="handle" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyXeO8EdyGNPaNHSGn_w" name="k" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyXuO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyX-O8EdyGNPaNHSGn_w" name="values" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyYOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyYeO8EdyGNPaNHSGn_w" name="constantElevation" visibility="private">
+                      <ownedParameter xmi:id="_6UdyYuO8EdyGNPaNHSGn_w" name="velev" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyY-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyZOO8EdyGNPaNHSGn_w" name="getProjection" visibility="public">
+                      <ownedParameter xmi:id="_6UdyZeO8EdyGNPaNHSGn_w" name="return" type="_6UnhiuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyZuO8EdyGNPaNHSGn_w" name="setProjection" visibility="public">
+                      <ownedParameter xmi:id="_6UdyZ-O8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyaOO8EdyGNPaNHSGn_w" name="canSaveEdits" visibility="public">
+                      <ownedParameter xmi:id="_6UdyaeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UdyauO8EdyGNPaNHSGn_w" name="Double"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6Udya-O8EdyGNPaNHSGn_w" name="FArc2D"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UdybOO8EdyGNPaNHSGn_w" name="FCircle2D"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UdybeO8EdyGNPaNHSGn_w" name="FEllipse2D"/>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6UdybuO8EdyGNPaNHSGn_w" name="DxfGroupVector"/>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6Udyb-O8EdyGNPaNHSGn_w" memberEnd="_6Udx8-O8EdyGNPaNHSGn_w _6UdycOO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UdycOO8EdyGNPaNHSGn_w" name="target" type="_6Udx6uO8EdyGNPaNHSGn_w" association="_6Udyb-O8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UdyceO8EdyGNPaNHSGn_w" memberEnd="_6Udx9eO8EdyGNPaNHSGn_w _6UdycuO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UdycuO8EdyGNPaNHSGn_w" name="target" type="_6Udx6uO8EdyGNPaNHSGn_w" association="_6UdyceO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Package" xmi:id="_6Udyc-O8EdyGNPaNHSGn_w" name="gdbms">
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UdydOO8EdyGNPaNHSGn_w" name="GdbmsWriter">
+                    <generalization xmi:id="_6UdydeO8EdyGNPaNHSGn_w" general="_6Udxe-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdyduO8EdyGNPaNHSGn_w" name="dataWare" type="_6UdsN-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udyd-O8EdyGNPaNHSGn_w" name="record" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdyeOO8EdyGNPaNHSGn_w" name="numRecord" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UdyeeO8EdyGNPaNHSGn_w" name="initialize" visibility="public">
+                      <ownedParameter xmi:id="_6UdyeuO8EdyGNPaNHSGn_w" name="tableDef" type="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udye-O8EdyGNPaNHSGn_w" name="setDataWare" visibility="public">
+                      <ownedParameter xmi:id="_6UdyfOO8EdyGNPaNHSGn_w" name="dataWare" type="_6UdsN-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyfeO8EdyGNPaNHSGn_w" name="preProcess" visibility="public"/>
+                    <ownedOperation xmi:id="_6UdyfuO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                      <ownedParameter xmi:id="_6Udyf-O8EdyGNPaNHSGn_w" name="editedRow" type="_6UdsWuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdygOO8EdyGNPaNHSGn_w" name="postProcess" visibility="public"/>
+                    <ownedOperation xmi:id="_6UdygeO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                      <ownedParameter xmi:id="_6UdyguO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udyg-O8EdyGNPaNHSGn_w" name="canWriteGeometry" visibility="public">
+                      <ownedParameter xmi:id="_6UdyhOO8EdyGNPaNHSGn_w" name="gvSIGgeometryType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyheO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyhuO8EdyGNPaNHSGn_w" name="canWriteAttribute" visibility="public">
+                      <ownedParameter xmi:id="_6Udyh-O8EdyGNPaNHSGn_w" name="sqlType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyiOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyieO8EdyGNPaNHSGn_w" name="canAlterTable" visibility="public">
+                      <ownedParameter xmi:id="_6UdyiuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udyi-O8EdyGNPaNHSGn_w" name="canSaveEdits" visibility="public">
+                      <ownedParameter xmi:id="_6UdyjOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Package" xmi:id="_6UdyjeO8EdyGNPaNHSGn_w" name="gml">
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UdyjuO8EdyGNPaNHSGn_w" name="GMLBoundedBy">
+                    <ownedAttribute xmi:id="_6Udyj-O8EdyGNPaNHSGn_w" name="EPSG_URL" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UdykOO8EdyGNPaNHSGn_w" name="fromGvSigToGML" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UdykeO8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdykuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udyk-O8EdyGNPaNHSGn_w" name="fromGMLToGvSIG" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UdylOO8EdyGNPaNHSGn_w" name="srs" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyleO8EdyGNPaNHSGn_w" name="return" type="_6UnhiuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UdyluO8EdyGNPaNHSGn_w" name="GMLFileCreator">
+                    <ownedAttribute xmi:id="_6Udyl-O8EdyGNPaNHSGn_w" name="schemaFileName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdymOO8EdyGNPaNHSGn_w" name="writer" visibility="private" type="_6UUiKeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdymeO8EdyGNPaNHSGn_w" name="featureWriter" visibility="private" type="_6Udy_OO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdymuO8EdyGNPaNHSGn_w" name="projection" visibility="private" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udym-O8EdyGNPaNHSGn_w" name="srsName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdynOO8EdyGNPaNHSGn_w" name="extent" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdyneO8EdyGNPaNHSGn_w" name="m_File" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdynuO8EdyGNPaNHSGn_w" name="attributes" visibility="private" type="_6UUuEOO8EdyGNPaNHSGn_w" association="_6Udy_eO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6Udyn-O8EdyGNPaNHSGn_w" name="initialize" visibility="public"/>
+                    <ownedOperation xmi:id="_6UdyoOO8EdyGNPaNHSGn_w" name="insertFeature" visibility="public">
+                      <ownedParameter xmi:id="_6UdyoeO8EdyGNPaNHSGn_w" name="geom" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdyouO8EdyGNPaNHSGn_w" name="attributes" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udyo-O8EdyGNPaNHSGn_w" name="writeFile" visibility="public"/>
+                    <ownedOperation xmi:id="_6UdypOO8EdyGNPaNHSGn_w" name="setBoundedBy" visibility="public">
+                      <ownedParameter xmi:id="_6UdypeO8EdyGNPaNHSGn_w" name="extent" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdypuO8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udyp-O8EdyGNPaNHSGn_w" name="setAttibutes" visibility="public">
+                      <ownedParameter xmi:id="_6UdyqOO8EdyGNPaNHSGn_w" name="attributes" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyqeO8EdyGNPaNHSGn_w" name="getInitfeature" visibility="private">
+                      <ownedParameter xmi:id="_6UdyquO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udyq-O8EdyGNPaNHSGn_w" name="getEndFeature" visibility="private">
+                      <ownedParameter xmi:id="_6UdyrOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyreO8EdyGNPaNHSGn_w" name="getInitFile" visibility="private">
+                      <ownedParameter xmi:id="_6UdyruO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udyr-O8EdyGNPaNHSGn_w" name="getInitGeomAttribute" visibility="private">
+                      <ownedParameter xmi:id="_6UdysOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyseO8EdyGNPaNHSGn_w" name="getAttribute" visibility="private">
+                      <ownedParameter xmi:id="_6UdysuO8EdyGNPaNHSGn_w" name="attributeName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udys-O8EdyGNPaNHSGn_w" name="attributeValue" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdytOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyteO8EdyGNPaNHSGn_w" name="getEndGeomAttribute" visibility="private">
+                      <ownedParameter xmi:id="_6UdytuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udyt-O8EdyGNPaNHSGn_w" name="getEndFile" visibility="private">
+                      <ownedParameter xmi:id="_6UdyuOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyueO8EdyGNPaNHSGn_w" name="getBoundedBy" visibility="private">
+                      <ownedParameter xmi:id="_6UdyuuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6Udyu-O8EdyGNPaNHSGn_w" name="GMLSchemaCreator">
+                    <ownedAttribute xmi:id="_6UdyvOO8EdyGNPaNHSGn_w" name="GML_SUBSTITUTION_GROUP" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdyveO8EdyGNPaNHSGn_w" name="GML_GEOMETRY" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdyvuO8EdyGNPaNHSGn_w" name="NAMESPACE" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udyv-O8EdyGNPaNHSGn_w" name="TARGET_NAMESPACE" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdywOO8EdyGNPaNHSGn_w" name="GML_VERSION" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdyweO8EdyGNPaNHSGn_w" name="featureName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdywuO8EdyGNPaNHSGn_w" name="featureType" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udyw-O8EdyGNPaNHSGn_w" name="writer" visibility="private" type="_6UUiKeO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UdyxOO8EdyGNPaNHSGn_w" name="createFile" visibility="public">
+                      <ownedParameter xmi:id="_6UdyxeO8EdyGNPaNHSGn_w" name="lyrDef" type="_6UUuP-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyxuO8EdyGNPaNHSGn_w" name="writeFile" visibility="public"/>
+                    <ownedOperation xmi:id="_6Udyx-O8EdyGNPaNHSGn_w" name="getInitFile" visibility="private">
+                      <ownedParameter xmi:id="_6UdyyOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyyeO8EdyGNPaNHSGn_w" name="getEndFile" visibility="private">
+                      <ownedParameter xmi:id="_6UdyyuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udyy-O8EdyGNPaNHSGn_w" name="getInitComplexTypes" visibility="private">
+                      <ownedParameter xmi:id="_6UdyzOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdyzeO8EdyGNPaNHSGn_w" name="getEndComplexTypes" visibility="private">
+                      <ownedParameter xmi:id="_6UdyzuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udyz-O8EdyGNPaNHSGn_w" name="getAttribute" visibility="private">
+                      <ownedParameter xmi:id="_6Udy0OO8EdyGNPaNHSGn_w" name="fieldDescription" type="_6UUuEOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udy0eO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udy0uO8EdyGNPaNHSGn_w" name="getAttribute" visibility="private">
+                      <ownedParameter xmi:id="_6Udy0-O8EdyGNPaNHSGn_w" name="attributeName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udy1OO8EdyGNPaNHSGn_w" name="attributeType" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udy1eO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udy1uO8EdyGNPaNHSGn_w" name="getFeatureName" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6Udy1-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udy2OO8EdyGNPaNHSGn_w" name="getFeatureType" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6Udy2eO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6Udy2uO8EdyGNPaNHSGn_w" name="GMLWriter" clientDependency="_6Udy4OO8EdyGNPaNHSGn_w">
+                    <generalization xmi:id="_6Udy2-O8EdyGNPaNHSGn_w" general="_6Udxe-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udy3OO8EdyGNPaNHSGn_w" name="m_File" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udy3eO8EdyGNPaNHSGn_w" name="featureType" visibility="private" type="_6UdpAuO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udy3uO8EdyGNPaNHSGn_w" name="gmlFile" visibility="private" type="_6UdyluO8EdyGNPaNHSGn_w" association="_6Udy_-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Udy3-O8EdyGNPaNHSGn_w" name="gmlSchemaFileCreator" visibility="private" type="_6Udyu-O8EdyGNPaNHSGn_w" association="_6UdzAeO8EdyGNPaNHSGn_w"/>
+                    <interfaceRealization xmi:id="_6Udy4OO8EdyGNPaNHSGn_w" name="ISpatialWriter" supplier="_6UdtjuO8EdyGNPaNHSGn_w" client="_6Udy2uO8EdyGNPaNHSGn_w" contract="_6UdtjuO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6Udy4eO8EdyGNPaNHSGn_w" name="setFile" visibility="public">
+                      <ownedParameter xmi:id="_6Udy4uO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udy4-O8EdyGNPaNHSGn_w" name="setSchema" visibility="public">
+                      <ownedParameter xmi:id="_6Udy5OO8EdyGNPaNHSGn_w" name="lyrDef" type="_6UUuP-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udy5eO8EdyGNPaNHSGn_w" name="setBoundedBy" visibility="public">
+                      <ownedParameter xmi:id="_6Udy5uO8EdyGNPaNHSGn_w" name="extend" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udy5-O8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udy6OO8EdyGNPaNHSGn_w" name="canWriteAttribute" visibility="public">
+                      <ownedParameter xmi:id="_6Udy6eO8EdyGNPaNHSGn_w" name="sqlType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udy6uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udy6-O8EdyGNPaNHSGn_w" name="canWriteGeometry" visibility="public">
+                      <ownedParameter xmi:id="_6Udy7OO8EdyGNPaNHSGn_w" name="gvSIGgeometryType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udy7eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udy7uO8EdyGNPaNHSGn_w" name="setFlatness" visibility="public">
+                      <ownedParameter xmi:id="_6Udy7-O8EdyGNPaNHSGn_w" name="flatness" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udy8OO8EdyGNPaNHSGn_w" name="preProcess" visibility="public"/>
+                    <ownedOperation xmi:id="_6Udy8eO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                      <ownedParameter xmi:id="_6Udy8uO8EdyGNPaNHSGn_w" name="row" type="_6UdsWuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udy8-O8EdyGNPaNHSGn_w" name="postProcess" visibility="public"/>
+                    <ownedOperation xmi:id="_6Udy9OO8EdyGNPaNHSGn_w" name="initialize" visibility="public">
+                      <ownedParameter xmi:id="_6Udy9eO8EdyGNPaNHSGn_w" name="tableDefinition" type="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udy9uO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                      <ownedParameter xmi:id="_6Udy9-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udy-OO8EdyGNPaNHSGn_w" name="canAlterTable" visibility="public">
+                      <ownedParameter xmi:id="_6Udy-eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udy-uO8EdyGNPaNHSGn_w" name="canSaveEdits" visibility="public">
+                      <ownedParameter xmi:id="_6Udy--O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:DataType" xmi:id="_6Udy_OO8EdyGNPaNHSGn_w" name="com.vividsolutions.jts.io.gml2.GMLWriter"/>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6Udy_eO8EdyGNPaNHSGn_w" memberEnd="_6UdynuO8EdyGNPaNHSGn_w _6Udy_uO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6Udy_uO8EdyGNPaNHSGn_w" name="target" type="_6UdyluO8EdyGNPaNHSGn_w" association="_6Udy_eO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6Udy_-O8EdyGNPaNHSGn_w" memberEnd="_6Udy3uO8EdyGNPaNHSGn_w _6UdzAOO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UdzAOO8EdyGNPaNHSGn_w" name="target" type="_6Udy2uO8EdyGNPaNHSGn_w" association="_6Udy_-O8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UdzAeO8EdyGNPaNHSGn_w" memberEnd="_6Udy3-O8EdyGNPaNHSGn_w _6UdzAuO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UdzAuO8EdyGNPaNHSGn_w" name="target" type="_6Udy2uO8EdyGNPaNHSGn_w" association="_6UdzAeO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Package" xmi:id="_6UdzA-O8EdyGNPaNHSGn_w" name="shp">
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UdzBOO8EdyGNPaNHSGn_w" name="Prueba">
+                    <ownedOperation xmi:id="_6UdzBeO8EdyGNPaNHSGn_w" name="createLayer" visibility="public">
+                      <ownedParameter xmi:id="_6UdzBuO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzB-O8EdyGNPaNHSGn_w" name="d" type="_6UUt_OO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzCOO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzCeO8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzCuO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzC-O8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UdzDOO8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UdzDeO8EdyGNPaNHSGn_w" name="ShpWriter" clientDependency="_6UdzIOO8EdyGNPaNHSGn_w">
+                    <generalization xmi:id="_6UdzDuO8EdyGNPaNHSGn_w" general="_6Udxe-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzD-O8EdyGNPaNHSGn_w" name="shpPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzEOO8EdyGNPaNHSGn_w" name="shxPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzEeO8EdyGNPaNHSGn_w" name="dbfPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzEuO8EdyGNPaNHSGn_w" name="shpFile" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzE-O8EdyGNPaNHSGn_w" name="shpWrite" visibility="private" type="_6UdrtuO8EdyGNPaNHSGn_w" association="_6UdzhOO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzFOO8EdyGNPaNHSGn_w" name="dbfWrite" visibility="private" type="_6UdqnOO8EdyGNPaNHSGn_w" association="_6UdzhuO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzFeO8EdyGNPaNHSGn_w" name="myHeader" visibility="private" type="_6UdqSeO8EdyGNPaNHSGn_w" association="_6UdziOO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzFuO8EdyGNPaNHSGn_w" name="shapeType" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzF-O8EdyGNPaNHSGn_w" name="numRows" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzGOO8EdyGNPaNHSGn_w" name="fileSize" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzGeO8EdyGNPaNHSGn_w" name="fullExtent" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzGuO8EdyGNPaNHSGn_w" name="record" visibility="private" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzG-O8EdyGNPaNHSGn_w" name="selection" visibility="private" type="_6Ud3HOO8EdyGNPaNHSGn_w" association="_6UdziuO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzHOO8EdyGNPaNHSGn_w" name="bWriteHeaders" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzHeO8EdyGNPaNHSGn_w" name="gvSIG_geometryType" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzHuO8EdyGNPaNHSGn_w" name="supportedGeometryTypes" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzH-O8EdyGNPaNHSGn_w" name="charset" visibility="private" type="_6UUwH-O8EdyGNPaNHSGn_w"/>
+                    <interfaceRealization xmi:id="_6UdzIOO8EdyGNPaNHSGn_w" name="ISpatialWriter" supplier="_6UdtjuO8EdyGNPaNHSGn_w" client="_6UdzDeO8EdyGNPaNHSGn_w" contract="_6UdtjuO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UdzIeO8EdyGNPaNHSGn_w" name="setFile" visibility="public">
+                      <ownedParameter xmi:id="_6UdzIuO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzI-O8EdyGNPaNHSGn_w" name="getWriteChannel" visibility="private">
+                      <ownedParameter xmi:id="_6UdzJOO8EdyGNPaNHSGn_w" name="path" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzJeO8EdyGNPaNHSGn_w" name="return" type="_6UUwJeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzJuO8EdyGNPaNHSGn_w" name="initialize" visibility="public">
+                      <ownedParameter xmi:id="_6UdzJ-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzKOO8EdyGNPaNHSGn_w" name="initialize" visibility="public">
+                      <ownedParameter xmi:id="_6UdzKeO8EdyGNPaNHSGn_w" name="lyrDef" type="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzKuO8EdyGNPaNHSGn_w" name="initialize" visibility="private">
+                      <ownedParameter xmi:id="_6UdzK-O8EdyGNPaNHSGn_w" name="shpFile" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzLOO8EdyGNPaNHSGn_w" name="typeFShape" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzLeO8EdyGNPaNHSGn_w" name="setSupportedGeometryTypes" visibility="private"/>
+                    <ownedOperation xmi:id="_6UdzLuO8EdyGNPaNHSGn_w" name="preProcess" visibility="public"/>
+                    <ownedOperation xmi:id="_6UdzL-O8EdyGNPaNHSGn_w" name="process" visibility="public">
+                      <ownedParameter xmi:id="_6UdzMOO8EdyGNPaNHSGn_w" name="row" type="_6UdsWuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzMeO8EdyGNPaNHSGn_w" name="postProcess" visibility="public"/>
+                    <ownedOperation xmi:id="_6UdzMuO8EdyGNPaNHSGn_w" name="getShpPath" visibility="public">
+                      <ownedParameter xmi:id="_6UdzM-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzNOO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                      <ownedParameter xmi:id="_6UdzNeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzNuO8EdyGNPaNHSGn_w" name="canWriteGeometry" visibility="public">
+                      <ownedParameter xmi:id="_6UdzN-O8EdyGNPaNHSGn_w" name="gvSIGgeometryType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzOOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzOeO8EdyGNPaNHSGn_w" name="canWriteAttribute" visibility="public">
+                      <ownedParameter xmi:id="_6UdzOuO8EdyGNPaNHSGn_w" name="sqlType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzO-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzPOO8EdyGNPaNHSGn_w" name="setWriteHeaders" visibility="public">
+                      <ownedParameter xmi:id="_6UdzPeO8EdyGNPaNHSGn_w" name="bWriteHeaders" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzPuO8EdyGNPaNHSGn_w" name="canAlterTable" visibility="public">
+                      <ownedParameter xmi:id="_6UdzP-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzQOO8EdyGNPaNHSGn_w" name="canSaveEdits" visibility="public">
+                      <ownedParameter xmi:id="_6UdzQeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzQuO8EdyGNPaNHSGn_w" name="setCharsetForWriting" visibility="public">
+                      <ownedParameter xmi:id="_6UdzQ-O8EdyGNPaNHSGn_w" name="charset" type="_6UUwH-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzROO8EdyGNPaNHSGn_w" name="getCharsetForWriting" visibility="public">
+                      <ownedParameter xmi:id="_6UdzReO8EdyGNPaNHSGn_w" name="return" type="_6UUwH-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UdzRuO8EdyGNPaNHSGn_w" name="testWriter">
+                    <ownedOperation xmi:id="_6UdzR-O8EdyGNPaNHSGn_w" name="createLayer" visibility="public">
+                      <ownedParameter xmi:id="_6UdzSOO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzSeO8EdyGNPaNHSGn_w" name="d" type="_6UUt_OO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzSuO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzS-O8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzTOO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzTeO8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6UdzTuO8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UdzT-O8EdyGNPaNHSGn_w" name="MultiShpWriter" clientDependency="_6UdzWOO8EdyGNPaNHSGn_w">
+                    <ownedAttribute xmi:id="_6UdzUOO8EdyGNPaNHSGn_w" name="file" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzUeO8EdyGNPaNHSGn_w" name="layerDefinition" type="_6UUt8uO8EdyGNPaNHSGn_w" association="_6UdzjOO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzUuO8EdyGNPaNHSGn_w" name="polygons" type="_6UdsrOO8EdyGNPaNHSGn_w" association="_6UdzjuO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzU-O8EdyGNPaNHSGn_w" name="polygonsFile" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzVOO8EdyGNPaNHSGn_w" name="lines" type="_6UdsrOO8EdyGNPaNHSGn_w" association="_6UdzkOO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzVeO8EdyGNPaNHSGn_w" name="linesFile" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzVuO8EdyGNPaNHSGn_w" name="points" type="_6UdsrOO8EdyGNPaNHSGn_w" association="_6UdzkuO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UdzV-O8EdyGNPaNHSGn_w" name="pointsFile" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    <interfaceRealization xmi:id="_6UdzWOO8EdyGNPaNHSGn_w" name="IWriter" supplier="_6UdsrOO8EdyGNPaNHSGn_w" client="_6UdzT-O8EdyGNPaNHSGn_w" contract="_6UdsrOO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UdzWeO8EdyGNPaNHSGn_w" name="preProcess" visibility="public"/>
+                    <ownedOperation xmi:id="_6UdzWuO8EdyGNPaNHSGn_w" name="getWriters" visibility="public">
+                      <ownedParameter xmi:id="_6UdzW-O8EdyGNPaNHSGn_w" name="return" type="_6UdsrOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzXOO8EdyGNPaNHSGn_w" name="postProcess" visibility="public"/>
+                    <ownedOperation xmi:id="_6UdzXeO8EdyGNPaNHSGn_w" name="getPolygonsWriter" visibility="private">
+                      <ownedParameter xmi:id="_6UdzXuO8EdyGNPaNHSGn_w" name="return" type="_6UdsrOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzX-O8EdyGNPaNHSGn_w" name="getSchemaManager" visibility="private">
+                      <ownedParameter xmi:id="_6UdzYOO8EdyGNPaNHSGn_w" name="writer" type="_6UdsrOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzYeO8EdyGNPaNHSGn_w" name="file" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzYuO8EdyGNPaNHSGn_w" name="return" type="_6UdujuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzY-O8EdyGNPaNHSGn_w" name="cloneDef" visibility="private">
+                      <ownedParameter xmi:id="_6UdzZOO8EdyGNPaNHSGn_w" name="definition" type="_6UUt8uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzZeO8EdyGNPaNHSGn_w" name="return" type="_6UUt8uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzZuO8EdyGNPaNHSGn_w" name="getLinesWriter" visibility="private">
+                      <ownedParameter xmi:id="_6UdzZ-O8EdyGNPaNHSGn_w" name="return" type="_6UdsrOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzaOO8EdyGNPaNHSGn_w" name="getPointsWriter" visibility="private">
+                      <ownedParameter xmi:id="_6UdzaeO8EdyGNPaNHSGn_w" name="return" type="_6UdsrOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzauO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                      <ownedParameter xmi:id="_6Udza-O8EdyGNPaNHSGn_w" name="row" type="_6UdsWuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzbOO8EdyGNPaNHSGn_w" name="setFile" visibility="public">
+                      <ownedParameter xmi:id="_6UdzbeO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzbuO8EdyGNPaNHSGn_w" name="getFileName" visibility="public">
+                      <ownedParameter xmi:id="_6Udzb-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzcOO8EdyGNPaNHSGn_w" name="getCapability" visibility="public">
+                      <ownedParameter xmi:id="_6UdzceO8EdyGNPaNHSGn_w" name="capability" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UdzcuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Udzc-O8EdyGNPaNHSGn_w" name="setCapabilities" visibility="public">
+                      <ownedParameter xmi:id="_6UdzdOO8EdyGNPaNHSGn_w" name="capabilities" type="_6UUwJuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzdeO8EdyGNPaNHSGn_w" name="canWriteAttribute" visibility="public">
+                      <ownedParameter xmi:id="_6UdzduO8EdyGNPaNHSGn_w" name="sqlType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Udzd-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzeOO8EdyGNPaNHSGn_w" name="initialize" visibility="public">
+                      <ownedParameter xmi:id="_6UdzeeO8EdyGNPaNHSGn_w" name="layerDefinition" type="_6UUrbOO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzeuO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                      <ownedParameter xmi:id="_6Udze-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzfOO8EdyGNPaNHSGn_w" name="getTableDefinition" visibility="public">
+                      <ownedParameter xmi:id="_6UdzfeO8EdyGNPaNHSGn_w" name="return" type="_6UUrbOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzfuO8EdyGNPaNHSGn_w" name="canAlterTable" visibility="public">
+                      <ownedParameter xmi:id="_6Udzf-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzgOO8EdyGNPaNHSGn_w" name="canSaveEdits" visibility="public">
+                      <ownedParameter xmi:id="_6UdzgeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UdzguO8EdyGNPaNHSGn_w" name="isWriteAll" visibility="public">
+                      <ownedParameter xmi:id="_6Udzg-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UdzhOO8EdyGNPaNHSGn_w" memberEnd="_6UdzE-O8EdyGNPaNHSGn_w _6UdzheO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UdzheO8EdyGNPaNHSGn_w" name="target" type="_6UdzDeO8EdyGNPaNHSGn_w" association="_6UdzhOO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UdzhuO8EdyGNPaNHSGn_w" memberEnd="_6UdzFOO8EdyGNPaNHSGn_w _6Udzh-O8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6Udzh-O8EdyGNPaNHSGn_w" name="target" type="_6UdzDeO8EdyGNPaNHSGn_w" association="_6UdzhuO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UdziOO8EdyGNPaNHSGn_w" memberEnd="_6UdzFeO8EdyGNPaNHSGn_w _6UdzieO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UdzieO8EdyGNPaNHSGn_w" name="target" type="_6UdzDeO8EdyGNPaNHSGn_w" association="_6UdziOO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UdziuO8EdyGNPaNHSGn_w" memberEnd="_6UdzG-O8EdyGNPaNHSGn_w _6Udzi-O8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6Udzi-O8EdyGNPaNHSGn_w" name="target" type="_6UdzDeO8EdyGNPaNHSGn_w" association="_6UdziuO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UdzjOO8EdyGNPaNHSGn_w" memberEnd="_6UdzUeO8EdyGNPaNHSGn_w _6UdzjeO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UdzjeO8EdyGNPaNHSGn_w" name="target" type="_6UdzT-O8EdyGNPaNHSGn_w" association="_6UdzjOO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UdzjuO8EdyGNPaNHSGn_w" memberEnd="_6UdzUuO8EdyGNPaNHSGn_w _6Udzj-O8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6Udzj-O8EdyGNPaNHSGn_w" name="target" type="_6UdzT-O8EdyGNPaNHSGn_w" association="_6UdzjuO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UdzkOO8EdyGNPaNHSGn_w" memberEnd="_6UdzVOO8EdyGNPaNHSGn_w _6UdzkeO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UdzkeO8EdyGNPaNHSGn_w" name="target" type="_6UdzT-O8EdyGNPaNHSGn_w" association="_6UdzkOO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UdzkuO8EdyGNPaNHSGn_w" memberEnd="_6UdzVuO8EdyGNPaNHSGn_w _6Udzk-O8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6Udzk-O8EdyGNPaNHSGn_w" name="target" type="_6UdzT-O8EdyGNPaNHSGn_w" association="_6UdzkuO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UdzlOO8EdyGNPaNHSGn_w" memberEnd="_6UdxfeO8EdyGNPaNHSGn_w _6UdzleO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UdzleO8EdyGNPaNHSGn_w" name="target" type="_6Udxe-O8EdyGNPaNHSGn_w" association="_6UdzlOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdzluO8EdyGNPaNHSGn_w" name="Driver"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Udzl-O8EdyGNPaNHSGn_w" name="MapMode"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdzmOO8EdyGNPaNHSGn_w" name="TreeMap"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UdzmeO8EdyGNPaNHSGn_w" name="ObjectDriver"/>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzmuO8EdyGNPaNHSGn_w" memberEnd="_6UdsVOO8EdyGNPaNHSGn_w _6Udzm-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Udzm-O8EdyGNPaNHSGn_w" name="target" type="_6UdsUuO8EdyGNPaNHSGn_w" association="_6UdzmuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdznOO8EdyGNPaNHSGn_w" memberEnd="_6UdsZ-O8EdyGNPaNHSGn_w _6UdzneO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdzneO8EdyGNPaNHSGn_w" name="target" type="_6UdsZuO8EdyGNPaNHSGn_w" association="_6UdznOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdznuO8EdyGNPaNHSGn_w" memberEnd="_6UdsgOO8EdyGNPaNHSGn_w _6Udzn-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Udzn-O8EdyGNPaNHSGn_w" name="target" type="_6UdsfuO8EdyGNPaNHSGn_w" association="_6UdznuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzoOO8EdyGNPaNHSGn_w" memberEnd="_6UdslOO8EdyGNPaNHSGn_w _6UdzoeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdzoeO8EdyGNPaNHSGn_w" name="target" type="_6UdsieO8EdyGNPaNHSGn_w" association="_6UdzoOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzouO8EdyGNPaNHSGn_w" memberEnd="_6UdsxeO8EdyGNPaNHSGn_w _6Udzo-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Udzo-O8EdyGNPaNHSGn_w" name="target" type="_6Udsw-O8EdyGNPaNHSGn_w" association="_6UdzouO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzpOO8EdyGNPaNHSGn_w" memberEnd="_6UdsxuO8EdyGNPaNHSGn_w _6UdzpeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdzpeO8EdyGNPaNHSGn_w" name="target" type="_6Udsw-O8EdyGNPaNHSGn_w" association="_6UdzpOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzpuO8EdyGNPaNHSGn_w" memberEnd="_6UdtWOO8EdyGNPaNHSGn_w _6Udzp-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Udzp-O8EdyGNPaNHSGn_w" name="target" type="_6UdtVeO8EdyGNPaNHSGn_w" association="_6UdzpuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzqOO8EdyGNPaNHSGn_w" memberEnd="_6UdtWeO8EdyGNPaNHSGn_w _6UdzqeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdzqeO8EdyGNPaNHSGn_w" name="target" type="_6UdtVeO8EdyGNPaNHSGn_w" association="_6UdzqOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzquO8EdyGNPaNHSGn_w" memberEnd="_6UdtW-O8EdyGNPaNHSGn_w _6Udzq-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Udzq-O8EdyGNPaNHSGn_w" name="target" type="_6UdtVeO8EdyGNPaNHSGn_w" association="_6UdzquO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzrOO8EdyGNPaNHSGn_w" memberEnd="_6UdtXOO8EdyGNPaNHSGn_w _6UdzreO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdzreO8EdyGNPaNHSGn_w" name="target" type="_6UdtVeO8EdyGNPaNHSGn_w" association="_6UdzrOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzruO8EdyGNPaNHSGn_w" memberEnd="_6Udt_eO8EdyGNPaNHSGn_w _6Udzr-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Udzr-O8EdyGNPaNHSGn_w" name="target" type="_6Udt--O8EdyGNPaNHSGn_w" association="_6UdzruO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzsOO8EdyGNPaNHSGn_w" memberEnd="_6UduA-O8EdyGNPaNHSGn_w _6UdzseO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdzseO8EdyGNPaNHSGn_w" name="target" type="_6Udt--O8EdyGNPaNHSGn_w" association="_6UdzsOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzsuO8EdyGNPaNHSGn_w" memberEnd="_6UduguO8EdyGNPaNHSGn_w _6Udzs-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Udzs-O8EdyGNPaNHSGn_w" name="target" type="_6UdugeO8EdyGNPaNHSGn_w" association="_6UdzsuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdztOO8EdyGNPaNHSGn_w" memberEnd="_6UduhOO8EdyGNPaNHSGn_w _6UdzteO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdzteO8EdyGNPaNHSGn_w" name="target" type="_6UdugeO8EdyGNPaNHSGn_w" association="_6UdztOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdztuO8EdyGNPaNHSGn_w" memberEnd="_6Udu0-O8EdyGNPaNHSGn_w _6Udzt-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Udzt-O8EdyGNPaNHSGn_w" name="target" type="_6Udu0eO8EdyGNPaNHSGn_w" association="_6UdztuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzuOO8EdyGNPaNHSGn_w" memberEnd="_6Udu1OO8EdyGNPaNHSGn_w _6UdzueO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdzueO8EdyGNPaNHSGn_w" name="target" type="_6Udu0eO8EdyGNPaNHSGn_w" association="_6UdzuOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzuuO8EdyGNPaNHSGn_w" memberEnd="_6Udu1eO8EdyGNPaNHSGn_w _6Udzu-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Udzu-O8EdyGNPaNHSGn_w" name="target" type="_6Udu0eO8EdyGNPaNHSGn_w" association="_6UdzuuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzvOO8EdyGNPaNHSGn_w" memberEnd="_6Udu1-O8EdyGNPaNHSGn_w _6UdzveO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdzveO8EdyGNPaNHSGn_w" name="target" type="_6Udu0eO8EdyGNPaNHSGn_w" association="_6UdzvOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzvuO8EdyGNPaNHSGn_w" memberEnd="_6Udu5eO8EdyGNPaNHSGn_w _6Udzv-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Udzv-O8EdyGNPaNHSGn_w" name="target" type="_6Udu4-O8EdyGNPaNHSGn_w" association="_6UdzvuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzwOO8EdyGNPaNHSGn_w" memberEnd="_6Udu5uO8EdyGNPaNHSGn_w _6UdzweO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdzweO8EdyGNPaNHSGn_w" name="target" type="_6Udu4-O8EdyGNPaNHSGn_w" association="_6UdzwOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzwuO8EdyGNPaNHSGn_w" memberEnd="_6Udu5-O8EdyGNPaNHSGn_w _6Udzw-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Udzw-O8EdyGNPaNHSGn_w" name="target" type="_6Udu4-O8EdyGNPaNHSGn_w" association="_6UdzwuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzxOO8EdyGNPaNHSGn_w" memberEnd="_6Udu6OO8EdyGNPaNHSGn_w _6UdzxeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdzxeO8EdyGNPaNHSGn_w" name="target" type="_6Udu4-O8EdyGNPaNHSGn_w" association="_6UdzxOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzxuO8EdyGNPaNHSGn_w" memberEnd="_6Udu6uO8EdyGNPaNHSGn_w _6Udzx-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Udzx-O8EdyGNPaNHSGn_w" name="target" type="_6Udu4-O8EdyGNPaNHSGn_w" association="_6UdzxuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzyOO8EdyGNPaNHSGn_w" memberEnd="_6Udu8eO8EdyGNPaNHSGn_w _6UdzyeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdzyeO8EdyGNPaNHSGn_w" name="target" type="_6Udu4-O8EdyGNPaNHSGn_w" association="_6UdzyOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzyuO8EdyGNPaNHSGn_w" memberEnd="_6Udu9OO8EdyGNPaNHSGn_w _6Udzy-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Udzy-O8EdyGNPaNHSGn_w" name="target" type="_6Udu4-O8EdyGNPaNHSGn_w" association="_6UdzyuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzzOO8EdyGNPaNHSGn_w" memberEnd="_6Udv9OO8EdyGNPaNHSGn_w _6UdzzeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UdzzeO8EdyGNPaNHSGn_w" name="target" type="_6Udv7uO8EdyGNPaNHSGn_w" association="_6UdzzOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UdzzuO8EdyGNPaNHSGn_w" memberEnd="_6UdwBOO8EdyGNPaNHSGn_w _6Udzz-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Udzz-O8EdyGNPaNHSGn_w" name="target" type="_6UdwAuO8EdyGNPaNHSGn_w" association="_6UdzzuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6Udz0OO8EdyGNPaNHSGn_w" name="layers">
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Udz0eO8EdyGNPaNHSGn_w" name="LayerDrawEvent">
+                <generalization xmi:id="_6Udz0uO8EdyGNPaNHSGn_w" general="_6UKts-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udz0-O8EdyGNPaNHSGn_w" name="vp" type="_6UKtueO8EdyGNPaNHSGn_w" association="_6Ud7-OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udz1OO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udz1eO8EdyGNPaNHSGn_w" name="lyr" type="_6Ud5J-O8EdyGNPaNHSGn_w" association="_6Ud7-uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udz1uO8EdyGNPaNHSGn_w" name="LAYER_BEFORE_DRAW" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udz1-O8EdyGNPaNHSGn_w" name="LAYER_AFTER_DRAW" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udz2OO8EdyGNPaNHSGn_w" name="GRAPHICLAYER_BEFORE_DRAW" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udz2eO8EdyGNPaNHSGn_w" name="GRAPHICLAYER_AFTER_DRAW" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Udz2uO8EdyGNPaNHSGn_w" name="getGraphics" visibility="public">
+                  <ownedParameter xmi:id="_6Udz2-O8EdyGNPaNHSGn_w" name="return" type="_6UnhjuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udz3OO8EdyGNPaNHSGn_w" name="getViewPort" visibility="public">
+                  <ownedParameter xmi:id="_6Udz3eO8EdyGNPaNHSGn_w" name="return" type="_6UKtueO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udz3uO8EdyGNPaNHSGn_w" name="getLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Udz3-O8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6Udz4OO8EdyGNPaNHSGn_w" name="LayerCollectionListener">
+                <ownedOperation xmi:id="_6Udz4eO8EdyGNPaNHSGn_w" name="layerAdded">
+                  <ownedParameter xmi:id="_6Udz4uO8EdyGNPaNHSGn_w" name="e" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udz4-O8EdyGNPaNHSGn_w" name="layerMoved">
+                  <ownedParameter xmi:id="_6Udz5OO8EdyGNPaNHSGn_w" name="e" type="_6Ud2auO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udz5eO8EdyGNPaNHSGn_w" name="layerRemoved">
+                  <ownedParameter xmi:id="_6Udz5uO8EdyGNPaNHSGn_w" name="e" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udz5-O8EdyGNPaNHSGn_w" name="layerAdding">
+                  <ownedParameter xmi:id="_6Udz6OO8EdyGNPaNHSGn_w" name="e" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udz6eO8EdyGNPaNHSGn_w" name="layerMoving">
+                  <ownedParameter xmi:id="_6Udz6uO8EdyGNPaNHSGn_w" name="e" type="_6Ud2auO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udz6-O8EdyGNPaNHSGn_w" name="layerRemoving">
+                  <ownedParameter xmi:id="_6Udz7OO8EdyGNPaNHSGn_w" name="e" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udz7eO8EdyGNPaNHSGn_w" name="visibilityChanged">
+                  <ownedParameter xmi:id="_6Udz7uO8EdyGNPaNHSGn_w" name="e" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6Udz7-O8EdyGNPaNHSGn_w" name="IFLayerStatus"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Udz8OO8EdyGNPaNHSGn_w" name="GDBMSParser">
+                <ownedAttribute xmi:id="_6Udz8eO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Udz8uO8EdyGNPaNHSGn_w" name="handler" visibility="private" type="_6Ud74uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Udz8-O8EdyGNPaNHSGn_w" name="setContentHandler" visibility="public">
+                  <ownedParameter xmi:id="_6Udz9OO8EdyGNPaNHSGn_w" name="handler" type="_6Ud74uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udz9eO8EdyGNPaNHSGn_w" name="parse" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6Udz9uO8EdyGNPaNHSGn_w" name="ISpatialDB">
+                <generalization xmi:id="_6Udz9-O8EdyGNPaNHSGn_w" general="_6Ud2MeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Udz-OO8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6Udz-eO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udz-uO8EdyGNPaNHSGn_w" name="strEPSG" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udz--O8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Udz_OO8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6Udz_eO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udz_uO8EdyGNPaNHSGn_w" name="strEPSG" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Udz_-O8EdyGNPaNHSGn_w" name="alphaNumericFieldsNeeded" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0AOO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0AeO8EdyGNPaNHSGn_w" name="getLyrDef" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0AuO8EdyGNPaNHSGn_w" name="return" type="_6UUsSeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0A-O8EdyGNPaNHSGn_w" name="getRowIndexByFID" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0BOO8EdyGNPaNHSGn_w" name="feat" type="_6UUetuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0BeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud0BuO8EdyGNPaNHSGn_w" name="LayerEvent">
+                <generalization xmi:id="_6Ud0B-O8EdyGNPaNHSGn_w" general="_6UKts-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0COO8EdyGNPaNHSGn_w" name="property" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0CeO8EdyGNPaNHSGn_w" name="source" visibility="private" type="_6Ud5J-O8EdyGNPaNHSGn_w" association="_6Ud7_OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0CuO8EdyGNPaNHSGn_w" name="VISIBILITY_CHANGED" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0C-O8EdyGNPaNHSGn_w" name="ACTIVATION_CHANGED" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0DOO8EdyGNPaNHSGn_w" name="NAME_CHANGED" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0DeO8EdyGNPaNHSGn_w" name="EDITION_CHANGED" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud0DuO8EdyGNPaNHSGn_w" name="createVisibilityChangedEvent" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud0D-O8EdyGNPaNHSGn_w" name="default1" type="_6Ud1huO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0EOO8EdyGNPaNHSGn_w" name="property" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0EeO8EdyGNPaNHSGn_w" name="return" type="_6Ud0BuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0EuO8EdyGNPaNHSGn_w" name="createActivationChangedEvent" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud0E-O8EdyGNPaNHSGn_w" name="default1" type="_6Ud1huO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0FOO8EdyGNPaNHSGn_w" name="property" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0FeO8EdyGNPaNHSGn_w" name="return" type="_6Ud0BuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0FuO8EdyGNPaNHSGn_w" name="createNameChangedEvent" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud0F-O8EdyGNPaNHSGn_w" name="default1" type="_6Ud1huO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0GOO8EdyGNPaNHSGn_w" name="property" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0GeO8EdyGNPaNHSGn_w" name="return" type="_6Ud0BuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0GuO8EdyGNPaNHSGn_w" name="createEditionChangedEvent" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud0G-O8EdyGNPaNHSGn_w" name="default1" type="_6Ud1huO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0HOO8EdyGNPaNHSGn_w" name="property" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0HeO8EdyGNPaNHSGn_w" name="return" type="_6Ud0BuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0HuO8EdyGNPaNHSGn_w" name="getSource" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0H-O8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0IOO8EdyGNPaNHSGn_w" name="setSource" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0IeO8EdyGNPaNHSGn_w" name="source" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0IuO8EdyGNPaNHSGn_w" name="getProperty" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0I-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0JOO8EdyGNPaNHSGn_w" name="setProperty" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0JeO8EdyGNPaNHSGn_w" name="property" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud0JuO8EdyGNPaNHSGn_w" name="FLyrSecuential" clientDependency="_6Ud0KOO8EdyGNPaNHSGn_w _6Ud0KeO8EdyGNPaNHSGn_w">
+                <generalization xmi:id="_6Ud0J-O8EdyGNPaNHSGn_w" general="_6Ud1huO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud0KOO8EdyGNPaNHSGn_w" name="VectorialData" supplier="_6Ud7HuO8EdyGNPaNHSGn_w" client="_6Ud0JuO8EdyGNPaNHSGn_w" contract="_6Ud7HuO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud0KeO8EdyGNPaNHSGn_w" name="AlphanumericData" supplier="_6Ud7MuO8EdyGNPaNHSGn_w" client="_6Ud0JuO8EdyGNPaNHSGn_w" contract="_6Ud7MuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud0KuO8EdyGNPaNHSGn_w" name="LayerCollectionEvent">
+                <generalization xmi:id="_6Ud0K-O8EdyGNPaNHSGn_w" general="_6UKts-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0LOO8EdyGNPaNHSGn_w" name="LAYER_ADDED" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0LeO8EdyGNPaNHSGn_w" name="LAYER_REMOVED" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0LuO8EdyGNPaNHSGn_w" name="LAYER_ADDING" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0L-O8EdyGNPaNHSGn_w" name="LAYER_REMOVING" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0MOO8EdyGNPaNHSGn_w" name="LAYER_ACTIVATION_CHANGED" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0MeO8EdyGNPaNHSGn_w" name="LAYER_VISIBILITY_CHANGED" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0MuO8EdyGNPaNHSGn_w" name="layers" visibility="private" type="_6Ud3i-O8EdyGNPaNHSGn_w" association="_6Ud7_uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0M-O8EdyGNPaNHSGn_w" name="affected" visibility="private" type="_6Ud5J-O8EdyGNPaNHSGn_w" association="_6Ud8AOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud0NOO8EdyGNPaNHSGn_w" name="createLayerAddedEvent" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud0NeO8EdyGNPaNHSGn_w" name="lyr" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0NuO8EdyGNPaNHSGn_w" name="return" type="_6Ud0KuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0N-O8EdyGNPaNHSGn_w" name="createLayerRemovedEvent" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud0OOO8EdyGNPaNHSGn_w" name="lyr" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0OeO8EdyGNPaNHSGn_w" name="return" type="_6Ud0KuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0OuO8EdyGNPaNHSGn_w" name="createLayerAddingEvent" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud0O-O8EdyGNPaNHSGn_w" name="lyr" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0POO8EdyGNPaNHSGn_w" name="return" type="_6Ud0KuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0PeO8EdyGNPaNHSGn_w" name="createLayerRemovingEvent" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud0PuO8EdyGNPaNHSGn_w" name="lyr" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0P-O8EdyGNPaNHSGn_w" name="return" type="_6Ud0KuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0QOO8EdyGNPaNHSGn_w" name="createLayerActivationEvent" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud0QeO8EdyGNPaNHSGn_w" name="lyr" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0QuO8EdyGNPaNHSGn_w" name="return" type="_6Ud0KuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0Q-O8EdyGNPaNHSGn_w" name="createLayerVisibilityEvent" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud0ROO8EdyGNPaNHSGn_w" name="lyr" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0ReO8EdyGNPaNHSGn_w" name="return" type="_6Ud0KuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0RuO8EdyGNPaNHSGn_w" name="getLayers" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0R-O8EdyGNPaNHSGn_w" name="return" type="_6Ud3i-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0SOO8EdyGNPaNHSGn_w" name="getAffectedLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0SeO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud0SuO8EdyGNPaNHSGn_w" name="Tiling">
+                <ownedAttribute xmi:id="_6Ud0S-O8EdyGNPaNHSGn_w" name="MIN_SIZE" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0TOO8EdyGNPaNHSGn_w" name="debug" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0TeO8EdyGNPaNHSGn_w" name="tileMaxWidth" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0TuO8EdyGNPaNHSGn_w" name="tileMaxHeight" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0T-O8EdyGNPaNHSGn_w" name="numRows" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0UOO8EdyGNPaNHSGn_w" name="numCols" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0UeO8EdyGNPaNHSGn_w" name="srcPts" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0UuO8EdyGNPaNHSGn_w" name="tile" visibility="private" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0U-O8EdyGNPaNHSGn_w" name="width" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0VOO8EdyGNPaNHSGn_w" name="height" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0VeO8EdyGNPaNHSGn_w" name="mat" visibility="private" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0VuO8EdyGNPaNHSGn_w" name="vp" visibility="private" type="_6UKtueO8EdyGNPaNHSGn_w" association="_6Ud8AuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0V-O8EdyGNPaNHSGn_w" name="viewPortList" type="_6UKtueO8EdyGNPaNHSGn_w" association="_6Ud8BOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud0WOO8EdyGNPaNHSGn_w" name="calcMaxTileSize" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0WeO8EdyGNPaNHSGn_w" name="tileW" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0WuO8EdyGNPaNHSGn_w" name="tileH" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0W-O8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0XOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0XeO8EdyGNPaNHSGn_w" name="getTilePts" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0XuO8EdyGNPaNHSGn_w" name="colNr" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0X-O8EdyGNPaNHSGn_w" name="rowNr" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0YOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0YeO8EdyGNPaNHSGn_w" name="getTilePts" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0YuO8EdyGNPaNHSGn_w" name="num" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0Y-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0ZOO8EdyGNPaNHSGn_w" name="getTileSz" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0ZeO8EdyGNPaNHSGn_w" name="colNr" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0ZuO8EdyGNPaNHSGn_w" name="rowNr" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0Z-O8EdyGNPaNHSGn_w" name="return" type="_6UUrOeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0aOO8EdyGNPaNHSGn_w" name="getTile" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0aeO8EdyGNPaNHSGn_w" name="num" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0auO8EdyGNPaNHSGn_w" name="return" type="_6UUrOeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0a-O8EdyGNPaNHSGn_w" name="getNumCols" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0bOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0beO8EdyGNPaNHSGn_w" name="getNumRows" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0buO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0b-O8EdyGNPaNHSGn_w" name="getNumTiles" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0cOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0ceO8EdyGNPaNHSGn_w" name="getMaxTileHeight" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0cuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0c-O8EdyGNPaNHSGn_w" name="getMaxTileWidth" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0dOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0deO8EdyGNPaNHSGn_w" name="calcViewPort" visibility="private">
+                  <ownedParameter xmi:id="_6Ud0duO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0d-O8EdyGNPaNHSGn_w" name="getTileViewPort" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0eOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0eeO8EdyGNPaNHSGn_w" name="tileNr" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0euO8EdyGNPaNHSGn_w" name="return" type="_6UKtueO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0e-O8EdyGNPaNHSGn_w" name="getAffineTransform" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0fOO8EdyGNPaNHSGn_w" name="return" type="_6Unhh-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0feO8EdyGNPaNHSGn_w" name="setAffineTransform" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0fuO8EdyGNPaNHSGn_w" name="mat" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0f-O8EdyGNPaNHSGn_w" name="isDebug" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0gOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0geO8EdyGNPaNHSGn_w" name="setDebug" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0guO8EdyGNPaNHSGn_w" name="debug" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud0g-O8EdyGNPaNHSGn_w" name="FLayerFileVectorial">
+                <generalization xmi:id="_6Ud0hOO8EdyGNPaNHSGn_w" general="_6Ud4YeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0heO8EdyGNPaNHSGn_w" name="loaded" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0huO8EdyGNPaNHSGn_w" name="dataFile" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0h-O8EdyGNPaNHSGn_w" name="fileDriver" visibility="private" type="_6UUt_OO8EdyGNPaNHSGn_w" association="_6Ud8BuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud0iOO8EdyGNPaNHSGn_w" name="setProjectionByName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0ieO8EdyGNPaNHSGn_w" name="projectionName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0iuO8EdyGNPaNHSGn_w" name="setFileName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0i-O8EdyGNPaNHSGn_w" name="filePath" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0jOO8EdyGNPaNHSGn_w" name="setFile" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0jeO8EdyGNPaNHSGn_w" name="file" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0juO8EdyGNPaNHSGn_w" name="getFileName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0j-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0kOO8EdyGNPaNHSGn_w" name="setDriver" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0keO8EdyGNPaNHSGn_w" name="driver" type="_6UUt_OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0kuO8EdyGNPaNHSGn_w" name="setDriverByName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0k-O8EdyGNPaNHSGn_w" name="driverName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0lOO8EdyGNPaNHSGn_w" name="getDriver" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0leO8EdyGNPaNHSGn_w" name="return" type="_6UUt_OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0luO8EdyGNPaNHSGn_w" name="wakeUp" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud0l-O8EdyGNPaNHSGn_w" name="load" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud0mOO8EdyGNPaNHSGn_w" name="initializeLegendDefault" visibility="private"/>
+                <ownedOperation xmi:id="_6Ud0meO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0muO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud0m-O8EdyGNPaNHSGn_w" name="SelectableDataSource" clientDependency="_6Ud0oOO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6Ud0nOO8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0neO8EdyGNPaNHSGn_w" name="selectionSupport" visibility="private" type="_6Ud1IeO8EdyGNPaNHSGn_w" association="_6Ud8COO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0nuO8EdyGNPaNHSGn_w" name="dataSource" visibility="private" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud0n-O8EdyGNPaNHSGn_w" name="mapping" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud0oOO8EdyGNPaNHSGn_w" name="Selectable" supplier="_6Ud6_uO8EdyGNPaNHSGn_w" client="_6Ud0m-O8EdyGNPaNHSGn_w" contract="_6Ud6_uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud0oeO8EdyGNPaNHSGn_w" name="mapExternalFields" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud0ouO8EdyGNPaNHSGn_w" name="createSelectableDataSource" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud0o-O8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0pOO8EdyGNPaNHSGn_w" name="return" type="_6Ud0m-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0peO8EdyGNPaNHSGn_w" name="setDataSourceFactory" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0puO8EdyGNPaNHSGn_w" name="dsf" type="_6UdsM-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0p-O8EdyGNPaNHSGn_w" name="setSourceInfo" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0qOO8EdyGNPaNHSGn_w" name="sourceInfo" type="_6Ud74-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0qeO8EdyGNPaNHSGn_w" name="setSelectionSupport" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0quO8EdyGNPaNHSGn_w" name="selectionSupport" type="_6Ud1IeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0q-O8EdyGNPaNHSGn_w" name="getFieldCount" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0rOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0reO8EdyGNPaNHSGn_w" name="getFieldIndexByName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0ruO8EdyGNPaNHSGn_w" name="arg0" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0r-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0sOO8EdyGNPaNHSGn_w" name="getFieldName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0seO8EdyGNPaNHSGn_w" name="arg0" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0suO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0s-O8EdyGNPaNHSGn_w" name="getFieldValue" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0tOO8EdyGNPaNHSGn_w" name="arg0" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0teO8EdyGNPaNHSGn_w" name="arg1" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0tuO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0t-O8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0uOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0ueO8EdyGNPaNHSGn_w" name="getRowCount" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0uuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0u-O8EdyGNPaNHSGn_w" name="start" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud0vOO8EdyGNPaNHSGn_w" name="stop" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud0veO8EdyGNPaNHSGn_w" name="setXMLEntity03" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0vuO8EdyGNPaNHSGn_w" name="child" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0v-O8EdyGNPaNHSGn_w" name="fireSelectionEvents" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud0wOO8EdyGNPaNHSGn_w" name="addSelectionListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0weO8EdyGNPaNHSGn_w" name="listener" type="_6Ud2fuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0wuO8EdyGNPaNHSGn_w" name="removeSelectionListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0w-O8EdyGNPaNHSGn_w" name="listener" type="_6Ud2fuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0xOO8EdyGNPaNHSGn_w" name="clearSelection" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud0xeO8EdyGNPaNHSGn_w" name="getSelection" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0xuO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0x-O8EdyGNPaNHSGn_w" name="getSelectionSupport" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0yOO8EdyGNPaNHSGn_w" name="return" type="_6Ud1IeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0yeO8EdyGNPaNHSGn_w" name="isSelected" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0yuO8EdyGNPaNHSGn_w" name="recordIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0y-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0zOO8EdyGNPaNHSGn_w" name="setSelection" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0zeO8EdyGNPaNHSGn_w" name="selection" type="_6Ud3HOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0zuO8EdyGNPaNHSGn_w" name="putMemento" visibility="private">
+                  <ownedParameter xmi:id="_6Ud0z-O8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud00OO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud00eO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud00uO8EdyGNPaNHSGn_w" name="getWhereFilter" visibility="public">
+                  <ownedParameter xmi:id="_6Ud00-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud01OO8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                  <ownedParameter xmi:id="_6Ud01eO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud01uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud01-O8EdyGNPaNHSGn_w" name="getDataSourceFactory" visibility="public">
+                  <ownedParameter xmi:id="_6Ud02OO8EdyGNPaNHSGn_w" name="return" type="_6UdsM-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud02eO8EdyGNPaNHSGn_w" name="getAsString" visibility="public">
+                  <ownedParameter xmi:id="_6Ud02uO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud02-O8EdyGNPaNHSGn_w" name="remove" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud03OO8EdyGNPaNHSGn_w" name="getMemento" visibility="public">
+                  <ownedParameter xmi:id="_6Ud03eO8EdyGNPaNHSGn_w" name="return" type="_6Ud75OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud03uO8EdyGNPaNHSGn_w" name="getSourceInfo" visibility="public">
+                  <ownedParameter xmi:id="_6Ud03-O8EdyGNPaNHSGn_w" name="return" type="_6Ud74-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud04OO8EdyGNPaNHSGn_w" name="getPrimaryKeys" visibility="public">
+                  <ownedParameter xmi:id="_6Ud04eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud04uO8EdyGNPaNHSGn_w" name="getPKValue" visibility="public">
+                  <ownedParameter xmi:id="_6Ud04-O8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud05OO8EdyGNPaNHSGn_w" name="return" type="_6Ud75eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud05eO8EdyGNPaNHSGn_w" name="getPKName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud05uO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud05-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud06OO8EdyGNPaNHSGn_w" name="getPKType" visibility="public">
+                  <ownedParameter xmi:id="_6Ud06eO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud06uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud06-O8EdyGNPaNHSGn_w" name="getPKCardinality" visibility="public">
+                  <ownedParameter xmi:id="_6Ud07OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud07eO8EdyGNPaNHSGn_w" name="getRow" visibility="public">
+                  <ownedParameter xmi:id="_6Ud07uO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud07-O8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud08OO8EdyGNPaNHSGn_w" name="getFieldNames" visibility="public">
+                  <ownedParameter xmi:id="_6Ud08eO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud08uO8EdyGNPaNHSGn_w" name="getPKNames" visibility="public">
+                  <ownedParameter xmi:id="_6Ud08-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud09OO8EdyGNPaNHSGn_w" name="removeLinksSelectionListener" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud09eO8EdyGNPaNHSGn_w" name="getDataWare" visibility="public">
+                  <ownedParameter xmi:id="_6Ud09uO8EdyGNPaNHSGn_w" name="arg0" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud09-O8EdyGNPaNHSGn_w" name="return" type="_6UdsN-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0-OO8EdyGNPaNHSGn_w" name="getFieldWidth" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0-eO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0-uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0--O8EdyGNPaNHSGn_w" name="isVirtualField" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0_OO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud0_eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud0_uO8EdyGNPaNHSGn_w" name="getFieldsDescription" visibility="public">
+                  <ownedParameter xmi:id="_6Ud0_-O8EdyGNPaNHSGn_w" name="return" type="_6UUuEOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1AOO8EdyGNPaNHSGn_w" name="getDriver" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1AeO8EdyGNPaNHSGn_w" name="return" type="_6UdzluO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1AuO8EdyGNPaNHSGn_w" name="reload" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud1A-O8EdyGNPaNHSGn_w" name="addDataSourceListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1BOO8EdyGNPaNHSGn_w" name="listener" type="_6Ud75uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1BeO8EdyGNPaNHSGn_w" name="removeDataSourceListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1BuO8EdyGNPaNHSGn_w" name="listener" type="_6Ud75uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud1B-O8EdyGNPaNHSGn_w" name="OperationNotSupportedException">
+                <generalization xmi:id="_6Ud1COO8EdyGNPaNHSGn_w" general="_6UnhhOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud1CeO8EdyGNPaNHSGn_w" name="FLyrRasterMenuEntry"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud1CuO8EdyGNPaNHSGn_w" name="VectorialFileAdapter">
+                <generalization xmi:id="_6Ud1C-O8EdyGNPaNHSGn_w" general="_6Ud26-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1DOO8EdyGNPaNHSGn_w" name="driverInitialized" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1DeO8EdyGNPaNHSGn_w" name="file" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1DuO8EdyGNPaNHSGn_w" name="ds" visibility="private" type="_6Ud0m-O8EdyGNPaNHSGn_w" association="_6Ud8CuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1D-O8EdyGNPaNHSGn_w" name="dataSourceName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1EOO8EdyGNPaNHSGn_w" name="reference_count" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud1EeO8EdyGNPaNHSGn_w" name="getFileDriver">
+                  <ownedParameter xmi:id="_6Ud1EuO8EdyGNPaNHSGn_w" name="return" type="_6UUt_OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1E-O8EdyGNPaNHSGn_w" name="start" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud1FOO8EdyGNPaNHSGn_w" name="stop" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud1FeO8EdyGNPaNHSGn_w" name="getShape" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1FuO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1F-O8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1GOO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1GeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1GuO8EdyGNPaNHSGn_w" name="getRecordset" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1G-O8EdyGNPaNHSGn_w" name="return" type="_6Ud0m-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1HOO8EdyGNPaNHSGn_w" name="getFile" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1HeO8EdyGNPaNHSGn_w" name="return" type="_6UnhgeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1HuO8EdyGNPaNHSGn_w" name="getFeature" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1H-O8EdyGNPaNHSGn_w" name="numReg" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1IOO8EdyGNPaNHSGn_w" name="return" type="_6UUetuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud1IeO8EdyGNPaNHSGn_w" name="SelectionSupport">
+                <ownedAttribute xmi:id="_6Ud1IuO8EdyGNPaNHSGn_w" name="selection" visibility="private" type="_6Ud3HOO8EdyGNPaNHSGn_w" association="_6Ud8DOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1I-O8EdyGNPaNHSGn_w" name="listeners" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud1JOO8EdyGNPaNHSGn_w" name="setSelection" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1JeO8EdyGNPaNHSGn_w" name="selection" type="_6Ud3HOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1JuO8EdyGNPaNHSGn_w" name="getSelection" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1J-O8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1KOO8EdyGNPaNHSGn_w" name="isSelected" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1KeO8EdyGNPaNHSGn_w" name="recordIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1KuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1K-O8EdyGNPaNHSGn_w" name="clearSelection" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud1LOO8EdyGNPaNHSGn_w" name="addSelectionListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1LeO8EdyGNPaNHSGn_w" name="listener" type="_6Ud2fuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1LuO8EdyGNPaNHSGn_w" name="removeSelectionListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1L-O8EdyGNPaNHSGn_w" name="listener" type="_6Ud2fuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1MOO8EdyGNPaNHSGn_w" name="fireSelectionEvents" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud1MeO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1MuO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1M-O8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1NOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1NeO8EdyGNPaNHSGn_w" name="setXMLEntity03" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1NuO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1N-O8EdyGNPaNHSGn_w" name="removeLinkSelectionListener" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud1OOO8EdyGNPaNHSGn_w" name="FLyrGT2_old">
+                <generalization xmi:id="_6Ud1OeO8EdyGNPaNHSGn_w" general="_6Ud1huO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1OuO8EdyGNPaNHSGn_w" name="m_lyrGT2" visibility="private" type="_6Ud75-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1O-O8EdyGNPaNHSGn_w" name="liteR2" visibility="private" type="_6Ud76OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1POO8EdyGNPaNHSGn_w" name="mapContextGT2" visibility="private" type="_6UKuxOO8EdyGNPaNHSGn_w" association="_6Ud8DuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud1PeO8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1PuO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1P-O8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1QOO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1QeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1QuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1Q-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1ROO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1ReO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1RuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1R-O8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1SOO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1SeO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1SuO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud1S-O8EdyGNPaNHSGn_w" name="LegendEvent">
+                <generalization xmi:id="_6Ud1TOO8EdyGNPaNHSGn_w" general="_6UKts-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1TeO8EdyGNPaNHSGn_w" name="LEGEND_VALUE_CHANGED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1TuO8EdyGNPaNHSGn_w" name="LEGEND_SYMBOL_CHANGED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1T-O8EdyGNPaNHSGn_w" name="LEGEND_INTERVAL_CHANGED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1UOO8EdyGNPaNHSGn_w" name="LEGEND_CLEARED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1UeO8EdyGNPaNHSGn_w" name="LEGEND_CLASSIFICATION_CHANGED" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1UuO8EdyGNPaNHSGn_w" name="layer" visibility="private" type="_6Ud7aOO8EdyGNPaNHSGn_w" association="_6Ud8EOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud1U-O8EdyGNPaNHSGn_w" name="getLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1VOO8EdyGNPaNHSGn_w" name="return" type="_6Ud7aOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1VeO8EdyGNPaNHSGn_w" name="setLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1VuO8EdyGNPaNHSGn_w" name="layer" type="_6Ud7aOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud1V-O8EdyGNPaNHSGn_w" name="VectorialDBAdapter" clientDependency="_6Ud1W-O8EdyGNPaNHSGn_w">
+                <generalization xmi:id="_6Ud1WOO8EdyGNPaNHSGn_w" general="_6Ud26-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1WeO8EdyGNPaNHSGn_w" name="numReg" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1WuO8EdyGNPaNHSGn_w" name="ds" visibility="private" type="_6Ud0m-O8EdyGNPaNHSGn_w" association="_6Ud8EuO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud1W-O8EdyGNPaNHSGn_w" name="ISpatialDB" supplier="_6Udz9uO8EdyGNPaNHSGn_w" client="_6Ud1V-O8EdyGNPaNHSGn_w" contract="_6Udz9uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud1XOO8EdyGNPaNHSGn_w" name="start" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud1XeO8EdyGNPaNHSGn_w" name="stop" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud1XuO8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1X-O8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1YOO8EdyGNPaNHSGn_w" name="strEPSG" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1YeO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1YuO8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1Y-O8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1ZOO8EdyGNPaNHSGn_w" name="strEPSG" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1ZeO8EdyGNPaNHSGn_w" name="alphaNumericFieldsNeeded" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1ZuO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1Z-O8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1aOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1aeO8EdyGNPaNHSGn_w" name="fields" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1auO8EdyGNPaNHSGn_w" name="newProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1a-O8EdyGNPaNHSGn_w" name="fastIterator" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1bOO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1beO8EdyGNPaNHSGn_w" name="getFields" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1buO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1b-O8EdyGNPaNHSGn_w" name="getWhereClause" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1cOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1ceO8EdyGNPaNHSGn_w" name="getTableName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1cuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1c-O8EdyGNPaNHSGn_w" name="getShape" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1dOO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1deO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1duO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1d-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1eOO8EdyGNPaNHSGn_w" name="getRecordset" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1eeO8EdyGNPaNHSGn_w" name="return" type="_6Ud0m-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1euO8EdyGNPaNHSGn_w" name="getFeature" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1e-O8EdyGNPaNHSGn_w" name="numReg" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1fOO8EdyGNPaNHSGn_w" name="return" type="_6UUetuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1feO8EdyGNPaNHSGn_w" name="getLyrDef" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1fuO8EdyGNPaNHSGn_w" name="return" type="_6UUsSeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1f-O8EdyGNPaNHSGn_w" name="getRowIndexByFID" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1gOO8EdyGNPaNHSGn_w" name="feat" type="_6UUetuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1geO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1guO8EdyGNPaNHSGn_w" name="reprojectRectIfNecessary" visibility="private">
+                  <ownedParameter xmi:id="_6Ud1g-O8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1hOO8EdyGNPaNHSGn_w" name="targetProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1heO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud1huO8EdyGNPaNHSGn_w" name="FLyrDefault" clientDependency="_6Ud1l-O8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6Ud1h-O8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1iOO8EdyGNPaNHSGn_w" name="layerChangeSupport" visibility="private" type="_6Ud2YOO8EdyGNPaNHSGn_w" association="_6Ud8FOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1ieO8EdyGNPaNHSGn_w" name="parentLayer" visibility="private" type="_6Ud3i-O8EdyGNPaNHSGn_w" association="_6Ud8FuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1iuO8EdyGNPaNHSGn_w" name="virtualLayers" visibility="private" type="_6Ud3i-O8EdyGNPaNHSGn_w" association="_6Ud8GOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1i-O8EdyGNPaNHSGn_w" name="name" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1jOO8EdyGNPaNHSGn_w" name="projection" visibility="private" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1jeO8EdyGNPaNHSGn_w" name="transparency" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1juO8EdyGNPaNHSGn_w" name="ct" visibility="private" type="_6UnhkOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1j-O8EdyGNPaNHSGn_w" name="minScale" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1kOO8EdyGNPaNHSGn_w" name="maxScale" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1keO8EdyGNPaNHSGn_w" name="layerListeners" visibility="protected" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1kuO8EdyGNPaNHSGn_w" name="privateStrategy" visibility="private" type="_6Ud88eO8EdyGNPaNHSGn_w" association="_6Ud8GuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1k-O8EdyGNPaNHSGn_w" name="properties" visibility="private" type="_6UdsL-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1lOO8EdyGNPaNHSGn_w" name="cacheImageDrawnLayers" visibility="private" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1leO8EdyGNPaNHSGn_w" name="status" visibility="private" type="_6Ud51OO8EdyGNPaNHSGn_w" association="_6Ud8HOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud1luO8EdyGNPaNHSGn_w" name="tocStatusImage" visibility="private" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud1l-O8EdyGNPaNHSGn_w" name="FLayer" supplier="_6Ud5J-O8EdyGNPaNHSGn_w" client="_6Ud1huO8EdyGNPaNHSGn_w" contract="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud1mOO8EdyGNPaNHSGn_w" name="getProperty" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1meO8EdyGNPaNHSGn_w" name="key" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1muO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1m-O8EdyGNPaNHSGn_w" name="setProperty" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1nOO8EdyGNPaNHSGn_w" name="key" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1neO8EdyGNPaNHSGn_w" name="val" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1nuO8EdyGNPaNHSGn_w" name="getExtendedProperties" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1n-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1oOO8EdyGNPaNHSGn_w" name="setActive" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1oeO8EdyGNPaNHSGn_w" name="selected" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1ouO8EdyGNPaNHSGn_w" name="isActive" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1o-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1pOO8EdyGNPaNHSGn_w" name="setName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1peO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1puO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1p-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1qOO8EdyGNPaNHSGn_w" name="load" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud1qeO8EdyGNPaNHSGn_w" name="setVisible" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1quO8EdyGNPaNHSGn_w" name="visibility" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1q-O8EdyGNPaNHSGn_w" name="isVisible" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1rOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1reO8EdyGNPaNHSGn_w" name="getParentLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1ruO8EdyGNPaNHSGn_w" name="return" type="_6Ud3i-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1r-O8EdyGNPaNHSGn_w" name="setParentLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1sOO8EdyGNPaNHSGn_w" name="root" type="_6Ud3i-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1seO8EdyGNPaNHSGn_w" name="setProjection" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1suO8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1s-O8EdyGNPaNHSGn_w" name="getProjection" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1tOO8EdyGNPaNHSGn_w" name="return" type="_6UnhiuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1teO8EdyGNPaNHSGn_w" name="reProject" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1tuO8EdyGNPaNHSGn_w" name="arg0" type="_6UnhkOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1t-O8EdyGNPaNHSGn_w" name="getTransparency" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1uOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1ueO8EdyGNPaNHSGn_w" name="setTransparency" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1uuO8EdyGNPaNHSGn_w" name="trans" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1u-O8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1vOO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1veO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1vuO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1v-O8EdyGNPaNHSGn_w" name="setXMLEntity03" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1wOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1weO8EdyGNPaNHSGn_w" name="getMapContext" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1wuO8EdyGNPaNHSGn_w" name="return" type="_6UKuxOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1w-O8EdyGNPaNHSGn_w" name="addLayerListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1xOO8EdyGNPaNHSGn_w" name="o" type="_6Ud60OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1xeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1xuO8EdyGNPaNHSGn_w" name="getLayerListeners" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1x-O8EdyGNPaNHSGn_w" name="return" type="_6Ud60OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1yOO8EdyGNPaNHSGn_w" name="removeLayerListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1yeO8EdyGNPaNHSGn_w" name="o" type="_6Ud60OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud1yuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1y-O8EdyGNPaNHSGn_w" name="callNameChanged" visibility="private">
+                  <ownedParameter xmi:id="_6Ud1zOO8EdyGNPaNHSGn_w" name="e" type="_6Ud0BuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1zeO8EdyGNPaNHSGn_w" name="callVisibilityChanged" visibility="private">
+                  <ownedParameter xmi:id="_6Ud1zuO8EdyGNPaNHSGn_w" name="e" type="_6Ud0BuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1z-O8EdyGNPaNHSGn_w" name="callActivationChanged" visibility="private">
+                  <ownedParameter xmi:id="_6Ud10OO8EdyGNPaNHSGn_w" name="e" type="_6Ud0BuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud10eO8EdyGNPaNHSGn_w" name="getVirtualLayers" visibility="public">
+                  <ownedParameter xmi:id="_6Ud10uO8EdyGNPaNHSGn_w" name="return" type="_6Ud3i-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud10-O8EdyGNPaNHSGn_w" name="setVirtualLayers" visibility="public">
+                  <ownedParameter xmi:id="_6Ud11OO8EdyGNPaNHSGn_w" name="virtualLayers" type="_6Ud3i-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud11eO8EdyGNPaNHSGn_w" name="setCoordTrans" visibility="public">
+                  <ownedParameter xmi:id="_6Ud11uO8EdyGNPaNHSGn_w" name="ct" type="_6UnhkOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud11-O8EdyGNPaNHSGn_w" name="getCoordTrans" visibility="public">
+                  <ownedParameter xmi:id="_6Ud12OO8EdyGNPaNHSGn_w" name="return" type="_6UnhkOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud12eO8EdyGNPaNHSGn_w" name="wakeUp" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud12uO8EdyGNPaNHSGn_w" name="getMinScale" visibility="public">
+                  <ownedParameter xmi:id="_6Ud12-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud13OO8EdyGNPaNHSGn_w" name="getMaxScale" visibility="public">
+                  <ownedParameter xmi:id="_6Ud13eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud13uO8EdyGNPaNHSGn_w" name="setMinScale" visibility="public">
+                  <ownedParameter xmi:id="_6Ud13-O8EdyGNPaNHSGn_w" name="minScale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud14OO8EdyGNPaNHSGn_w" name="setMaxScale" visibility="public">
+                  <ownedParameter xmi:id="_6Ud14eO8EdyGNPaNHSGn_w" name="maxScale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud14uO8EdyGNPaNHSGn_w" name="isWithinScale" visibility="public">
+                  <ownedParameter xmi:id="_6Ud14-O8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud15OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud15eO8EdyGNPaNHSGn_w" name="getStrategy" visibility="public">
+                  <ownedParameter xmi:id="_6Ud15uO8EdyGNPaNHSGn_w" name="return" type="_6Ud88eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud15-O8EdyGNPaNHSGn_w" name="setStrategy" visibility="public">
+                  <ownedParameter xmi:id="_6Ud16OO8EdyGNPaNHSGn_w" name="s" type="_6Ud88eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud16eO8EdyGNPaNHSGn_w" name="setEditing" visibility="public">
+                  <ownedParameter xmi:id="_6Ud16uO8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud16-O8EdyGNPaNHSGn_w" name="callEditionChanged" visibility="protected">
+                  <ownedParameter xmi:id="_6Ud17OO8EdyGNPaNHSGn_w" name="e" type="_6Ud0BuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud17eO8EdyGNPaNHSGn_w" name="isEditing" visibility="public">
+                  <ownedParameter xmi:id="_6Ud17uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud17-O8EdyGNPaNHSGn_w" name="getTocImageIcon" visibility="public">
+                  <ownedParameter xmi:id="_6Ud18OO8EdyGNPaNHSGn_w" name="return" type="_6Ud76eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud18eO8EdyGNPaNHSGn_w" name="isInTOC" visibility="public">
+                  <ownedParameter xmi:id="_6Ud18uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud18-O8EdyGNPaNHSGn_w" name="setInTOC" visibility="public">
+                  <ownedParameter xmi:id="_6Ud19OO8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud19eO8EdyGNPaNHSGn_w" name="isCachingDrawnLayers" visibility="public">
+                  <ownedParameter xmi:id="_6Ud19uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud19-O8EdyGNPaNHSGn_w" name="setCachingDrawnLayers" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1-OO8EdyGNPaNHSGn_w" name="bCacheDrawnLayers" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1-eO8EdyGNPaNHSGn_w" name="getCacheImageDrawnLayers" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1-uO8EdyGNPaNHSGn_w" name="return" type="_6UnhjeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1--O8EdyGNPaNHSGn_w" name="setCacheImageDrawnLayers" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1_OO8EdyGNPaNHSGn_w" name="cacheImageDrawnLayers" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1_eO8EdyGNPaNHSGn_w" name="isDirty" visibility="public">
+                  <ownedParameter xmi:id="_6Ud1_uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud1_-O8EdyGNPaNHSGn_w" name="setDirty" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2AOO8EdyGNPaNHSGn_w" name="dirty" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2AeO8EdyGNPaNHSGn_w" name="isAvailable" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2AuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2A-O8EdyGNPaNHSGn_w" name="setAvailable" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2BOO8EdyGNPaNHSGn_w" name="available" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2BeO8EdyGNPaNHSGn_w" name="reload" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud2BuO8EdyGNPaNHSGn_w" name="getFLayerStatus" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2B-O8EdyGNPaNHSGn_w" name="return" type="_6Ud51OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2COO8EdyGNPaNHSGn_w" name="setFLayerStatus" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2CeO8EdyGNPaNHSGn_w" name="status" type="_6Ud51OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2CuO8EdyGNPaNHSGn_w" name="isOk" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2C-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2DOO8EdyGNPaNHSGn_w" name="getNumErrors" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2DeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2DuO8EdyGNPaNHSGn_w" name="getError" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2D-O8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2EOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2EeO8EdyGNPaNHSGn_w" name="getErrors" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2EuO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2E-O8EdyGNPaNHSGn_w" name="addError" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2FOO8EdyGNPaNHSGn_w" name="exception" type="_6UKs5eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2FeO8EdyGNPaNHSGn_w" name="visibleRequired" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2FuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2F-O8EdyGNPaNHSGn_w" name="getInfoString" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2GOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2GeO8EdyGNPaNHSGn_w" name="isWritable" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2GuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2G-O8EdyGNPaNHSGn_w" name="cloneLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2HOO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2HeO8EdyGNPaNHSGn_w" name="getTocStatusImage" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2HuO8EdyGNPaNHSGn_w" name="return" type="_6UUpzeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2H-O8EdyGNPaNHSGn_w" name="setTocStatusImage" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2IOO8EdyGNPaNHSGn_w" name="tocStatusImage" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2IeO8EdyGNPaNHSGn_w" name="newComposedLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2IuO8EdyGNPaNHSGn_w" name="return" type="_6Ud7bOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2I-O8EdyGNPaNHSGn_w" name="allowLinks" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2JOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2JeO8EdyGNPaNHSGn_w" name="getLinkProperties" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2JuO8EdyGNPaNHSGn_w" name="return" type="_6Ud2suO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2J-O8EdyGNPaNHSGn_w" name="getLink" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2KOO8EdyGNPaNHSGn_w" name="point" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2KeO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2KuO8EdyGNPaNHSGn_w" name="return" type="_6UUpzuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2K-O8EdyGNPaNHSGn_w" name="addLegendListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2LOO8EdyGNPaNHSGn_w" name="listener" type="_6UnbN-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2LeO8EdyGNPaNHSGn_w" name="callLegendChanged" visibility="protected">
+                  <ownedParameter xmi:id="_6Ud2LuO8EdyGNPaNHSGn_w" name="e" type="_6Ud5veO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2L-O8EdyGNPaNHSGn_w" name="removeLegendListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2MOO8EdyGNPaNHSGn_w" name="listener" type="_6UnbN-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud2MeO8EdyGNPaNHSGn_w" name="ReadableVectorial">
+                <ownedOperation xmi:id="_6Ud2MuO8EdyGNPaNHSGn_w" name="start"/>
+                <ownedOperation xmi:id="_6Ud2M-O8EdyGNPaNHSGn_w" name="stop"/>
+                <ownedOperation xmi:id="_6Ud2NOO8EdyGNPaNHSGn_w" name="getShape">
+                  <ownedParameter xmi:id="_6Ud2NeO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2NuO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2N-O8EdyGNPaNHSGn_w" name="getShapeCount">
+                  <ownedParameter xmi:id="_6Ud2OOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2OeO8EdyGNPaNHSGn_w" name="getFullExtent">
+                  <ownedParameter xmi:id="_6Ud2OuO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2O-O8EdyGNPaNHSGn_w" name="getShapeType">
+                  <ownedParameter xmi:id="_6Ud2POO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2PeO8EdyGNPaNHSGn_w" name="getDriver" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2PuO8EdyGNPaNHSGn_w" name="return" type="_6UUuxeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2P-O8EdyGNPaNHSGn_w" name="setDriver" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2QOO8EdyGNPaNHSGn_w" name="driver" type="_6UUuxeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2QeO8EdyGNPaNHSGn_w" name="getRecordset" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2QuO8EdyGNPaNHSGn_w" name="return" type="_6Ud0m-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2Q-O8EdyGNPaNHSGn_w" name="getDriverAttributes" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2ROO8EdyGNPaNHSGn_w" name="return" type="_6UUtbuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2ReO8EdyGNPaNHSGn_w" name="getFeature" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2RuO8EdyGNPaNHSGn_w" name="numReg" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2R-O8EdyGNPaNHSGn_w" name="return" type="_6UUetuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2SOO8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2SeO8EdyGNPaNHSGn_w" name="fields" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2SuO8EdyGNPaNHSGn_w" name="newProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2S-O8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2TOO8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2TeO8EdyGNPaNHSGn_w" name="sql" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2TuO8EdyGNPaNHSGn_w" name="newProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2T-O8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2UOO8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2UeO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2UuO8EdyGNPaNHSGn_w" name="fields" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2U-O8EdyGNPaNHSGn_w" name="newProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2VOO8EdyGNPaNHSGn_w" name="fastResult" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2VeO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2VuO8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2V-O8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2WOO8EdyGNPaNHSGn_w" name="getSpatialIndex" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2WeO8EdyGNPaNHSGn_w" name="return" type="_6UneoOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2WuO8EdyGNPaNHSGn_w" name="setSpatialIndex" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2W-O8EdyGNPaNHSGn_w" name="spatialIndex" type="_6UneoOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2XOO8EdyGNPaNHSGn_w" name="setProjection" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2XeO8EdyGNPaNHSGn_w" name="projection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2XuO8EdyGNPaNHSGn_w" name="getProjection" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2X-O8EdyGNPaNHSGn_w" name="return" type="_6UnhiuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud2YOO8EdyGNPaNHSGn_w" name="LayerChangeSupport">
+                <ownedAttribute xmi:id="_6Ud2YeO8EdyGNPaNHSGn_w" name="listeners" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud2YuO8EdyGNPaNHSGn_w" name="addLayerListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2Y-O8EdyGNPaNHSGn_w" name="listener" type="_6UnbN-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2ZOO8EdyGNPaNHSGn_w" name="removeLayerListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2ZeO8EdyGNPaNHSGn_w" name="listener" type="_6UnbN-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2ZuO8EdyGNPaNHSGn_w" name="callLegendChanged" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2Z-O8EdyGNPaNHSGn_w" name="e" type="_6Ud5veO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud2aOO8EdyGNPaNHSGn_w" name="CancelationException">
+                <generalization xmi:id="_6Ud2aeO8EdyGNPaNHSGn_w" general="_6UUiHOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud2auO8EdyGNPaNHSGn_w" name="LayerPositionEvent">
+                <generalization xmi:id="_6Ud2a-O8EdyGNPaNHSGn_w" general="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud2bOO8EdyGNPaNHSGn_w" name="oldPos" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud2beO8EdyGNPaNHSGn_w" name="newPos" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud2buO8EdyGNPaNHSGn_w" name="LAYER_MOVING" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud2b-O8EdyGNPaNHSGn_w" name="LAYER_MOVED" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud2cOO8EdyGNPaNHSGn_w" name="createLayerMovedEvent" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud2ceO8EdyGNPaNHSGn_w" name="lyr" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2cuO8EdyGNPaNHSGn_w" name="oldp" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2c-O8EdyGNPaNHSGn_w" name="newp" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2dOO8EdyGNPaNHSGn_w" name="return" type="_6Ud2auO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2deO8EdyGNPaNHSGn_w" name="createLayerMovingEvent" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud2duO8EdyGNPaNHSGn_w" name="lyr" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2d-O8EdyGNPaNHSGn_w" name="oldp" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2eOO8EdyGNPaNHSGn_w" name="newp" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2eeO8EdyGNPaNHSGn_w" name="return" type="_6Ud2auO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2euO8EdyGNPaNHSGn_w" name="getOldPos" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2e-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2fOO8EdyGNPaNHSGn_w" name="getNewPos" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2feO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud2fuO8EdyGNPaNHSGn_w" name="SelectionListener">
+                <ownedOperation xmi:id="_6Ud2f-O8EdyGNPaNHSGn_w" name="selectionChanged">
+                  <ownedParameter xmi:id="_6Ud2gOO8EdyGNPaNHSGn_w" name="e" type="_6Ud2geO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud2geO8EdyGNPaNHSGn_w" name="SelectionEvent">
+                <generalization xmi:id="_6Ud2guO8EdyGNPaNHSGn_w" general="_6UKts-O8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud2g-O8EdyGNPaNHSGn_w" name="FLyrGT2">
+                <generalization xmi:id="_6Ud2hOO8EdyGNPaNHSGn_w" general="_6Ud0JuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud2heO8EdyGNPaNHSGn_w" name="dataStore" type="_6Ud76uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud2huO8EdyGNPaNHSGn_w" name="typeName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud2h-O8EdyGNPaNHSGn_w" name="tableName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud2iOO8EdyGNPaNHSGn_w" name="ff" type="_6Ud76-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud2ieO8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2iuO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2i-O8EdyGNPaNHSGn_w" name="prepareDrawing" visibility="private"/>
+                <ownedOperation xmi:id="_6Ud2jOO8EdyGNPaNHSGn_w" name="drawSelectedFeatures" visibility="private"/>
+                <ownedOperation xmi:id="_6Ud2jeO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2juO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2j-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2kOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2keO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2kuO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2k-O8EdyGNPaNHSGn_w" name="print" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2lOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2leO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2luO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2l-O8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2mOO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2meO8EdyGNPaNHSGn_w" name="getDataStore" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2muO8EdyGNPaNHSGn_w" name="return" type="_6Ud76uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2m-O8EdyGNPaNHSGn_w" name="setDataStore" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2nOO8EdyGNPaNHSGn_w" name="dataStore" type="_6Ud76uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2neO8EdyGNPaNHSGn_w" name="setTableName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2nuO8EdyGNPaNHSGn_w" name="tableName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2n-O8EdyGNPaNHSGn_w" name="process" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2oOO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2oeO8EdyGNPaNHSGn_w" name="subset" type="_6Ud3HOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2ouO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2o-O8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2pOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2peO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2puO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2p-O8EdyGNPaNHSGn_w" name="getRecordset" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2qOO8EdyGNPaNHSGn_w" name="return" type="_6Ud0m-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud2qeO8EdyGNPaNHSGn_w" name="LayerDrawingListener">
+                <ownedOperation xmi:id="_6Ud2quO8EdyGNPaNHSGn_w" name="beforeLayerDraw">
+                  <ownedParameter xmi:id="_6Ud2q-O8EdyGNPaNHSGn_w" name="e" type="_6Udz0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2rOO8EdyGNPaNHSGn_w" name="afterLayerDraw">
+                  <ownedParameter xmi:id="_6Ud2reO8EdyGNPaNHSGn_w" name="e" type="_6Udz0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2ruO8EdyGNPaNHSGn_w" name="beforeGraphicLayerDraw">
+                  <ownedParameter xmi:id="_6Ud2r-O8EdyGNPaNHSGn_w" name="e" type="_6Udz0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2sOO8EdyGNPaNHSGn_w" name="afterLayerGraphicDraw">
+                  <ownedParameter xmi:id="_6Ud2seO8EdyGNPaNHSGn_w" name="e" type="_6Udz0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud2suO8EdyGNPaNHSGn_w" name="AbstractLinkProperties">
+                <ownedAttribute xmi:id="_6Ud2s-O8EdyGNPaNHSGn_w" name="fieldName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud2tOO8EdyGNPaNHSGn_w" name="extName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud2teO8EdyGNPaNHSGn_w" name="typeLink" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud2tuO8EdyGNPaNHSGn_w" name="getLink" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6Ud2t-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2uOO8EdyGNPaNHSGn_w" name="point" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2ueO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud2uuO8EdyGNPaNHSGn_w" name="return" type="_6UUpzuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2u-O8EdyGNPaNHSGn_w" name="getField" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2vOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2veO8EdyGNPaNHSGn_w" name="setField" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2vuO8EdyGNPaNHSGn_w" name="campo" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2v-O8EdyGNPaNHSGn_w" name="getType" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2wOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2weO8EdyGNPaNHSGn_w" name="setType" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2wuO8EdyGNPaNHSGn_w" name="tipo" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2w-O8EdyGNPaNHSGn_w" name="getExt" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2xOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2xeO8EdyGNPaNHSGn_w" name="setExt" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2xuO8EdyGNPaNHSGn_w" name="extension" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2x-O8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2yOO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2yeO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2yuO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud2y-O8EdyGNPaNHSGn_w" name="SpatialCache">
+                <ownedAttribute xmi:id="_6Ud2zOO8EdyGNPaNHSGn_w" name="maxFeatures" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud2zeO8EdyGNPaNHSGn_w" name="fastNumTotalRegs" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud2zuO8EdyGNPaNHSGn_w" name="quadTree" type="_6Ud77OO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud2z-O8EdyGNPaNHSGn_w" name="getMaxFeatures" visibility="public">
+                  <ownedParameter xmi:id="_6Ud20OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud20eO8EdyGNPaNHSGn_w" name="setMaxFeatures" visibility="public">
+                  <ownedParameter xmi:id="_6Ud20uO8EdyGNPaNHSGn_w" name="maxFeatures" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud20-O8EdyGNPaNHSGn_w" name="insert" visibility="public">
+                  <ownedParameter xmi:id="_6Ud21OO8EdyGNPaNHSGn_w" name="bounds" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud21eO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud21uO8EdyGNPaNHSGn_w" name="query" visibility="public">
+                  <ownedParameter xmi:id="_6Ud21-O8EdyGNPaNHSGn_w" name="searchEnv" type="_6Ud77eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud22OO8EdyGNPaNHSGn_w" name="visitor" type="_6Ud77uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud22eO8EdyGNPaNHSGn_w" name="insert" visibility="public">
+                  <ownedParameter xmi:id="_6Ud22uO8EdyGNPaNHSGn_w" name="itemEnv" type="_6Ud77eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud22-O8EdyGNPaNHSGn_w" name="item" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud23OO8EdyGNPaNHSGn_w" name="remove" visibility="public">
+                  <ownedParameter xmi:id="_6Ud23eO8EdyGNPaNHSGn_w" name="itemEnv" type="_6Ud77eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud23uO8EdyGNPaNHSGn_w" name="item" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud23-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud24OO8EdyGNPaNHSGn_w" name="size" visibility="public">
+                  <ownedParameter xmi:id="_6Ud24eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud24uO8EdyGNPaNHSGn_w" name="clearAll" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud24-O8EdyGNPaNHSGn_w" name="remove" visibility="public">
+                  <ownedParameter xmi:id="_6Ud25OO8EdyGNPaNHSGn_w" name="bounds" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud25eO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud25uO8EdyGNPaNHSGn_w" name="DefaultDelayedDriverListener">
+                <ownedAttribute xmi:id="_6Ud25-O8EdyGNPaNHSGn_w" name="driverLoading" visibility="private" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud26OO8EdyGNPaNHSGn_w" name="_lyr" visibility="private" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6Ud8HuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud26eO8EdyGNPaNHSGn_w" name="driverNotification" visibility="public">
+                  <ownedParameter xmi:id="_6Ud26uO8EdyGNPaNHSGn_w" name="event" type="_6Ud77-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud26-O8EdyGNPaNHSGn_w" name="VectorialAdapter" clientDependency="_6Ud27-O8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6Ud27OO8EdyGNPaNHSGn_w" name="driver" visibility="protected" type="_6UUuxeO8EdyGNPaNHSGn_w" association="_6Ud8IOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud27eO8EdyGNPaNHSGn_w" name="spatialIndex" visibility="protected" type="_6UneoOO8EdyGNPaNHSGn_w" association="_6Ud8IuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud27uO8EdyGNPaNHSGn_w" name="projection" visibility="protected" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud27-O8EdyGNPaNHSGn_w" name="ReadableVectorial" supplier="_6Ud2MeO8EdyGNPaNHSGn_w" client="_6Ud26-O8EdyGNPaNHSGn_w" contract="_6Ud2MeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud28OO8EdyGNPaNHSGn_w" name="setDriver" visibility="public">
+                  <ownedParameter xmi:id="_6Ud28eO8EdyGNPaNHSGn_w" name="driver" type="_6UUuxeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud28uO8EdyGNPaNHSGn_w" name="getDriver" visibility="public">
+                  <ownedParameter xmi:id="_6Ud28-O8EdyGNPaNHSGn_w" name="return" type="_6UUuxeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud29OO8EdyGNPaNHSGn_w" name="getRecordset" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6Ud29eO8EdyGNPaNHSGn_w" name="return" type="_6Ud0m-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud29uO8EdyGNPaNHSGn_w" name="getImageIcon" visibility="public">
+                  <ownedParameter xmi:id="_6Ud29-O8EdyGNPaNHSGn_w" name="return" type="_6UUpzeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2-OO8EdyGNPaNHSGn_w" name="getDriverAttributes" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2-eO8EdyGNPaNHSGn_w" name="return" type="_6UUtbuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2-uO8EdyGNPaNHSGn_w" name="getShapeCount" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2--O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2_OO8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2_eO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud2_uO8EdyGNPaNHSGn_w" name="getFeature" visibility="public">
+                  <ownedParameter xmi:id="_6Ud2_-O8EdyGNPaNHSGn_w" name="numReg" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3AOO8EdyGNPaNHSGn_w" name="return" type="_6UUetuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3AeO8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3AuO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3A-O8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3BOO8EdyGNPaNHSGn_w" name="fields" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3BeO8EdyGNPaNHSGn_w" name="newProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3BuO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3B-O8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3COO8EdyGNPaNHSGn_w" name="sql" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3CeO8EdyGNPaNHSGn_w" name="newProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3CuO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3C-O8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3DOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3DeO8EdyGNPaNHSGn_w" name="fields" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3DuO8EdyGNPaNHSGn_w" name="newProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3D-O8EdyGNPaNHSGn_w" name="fastIteration" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3EOO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3EeO8EdyGNPaNHSGn_w" name="isSpatialIndexNecessary" visibility="protected">
+                  <ownedParameter xmi:id="_6Ud3EuO8EdyGNPaNHSGn_w" name="extent" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3E-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3FOO8EdyGNPaNHSGn_w" name="getSpatialIndex" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3FeO8EdyGNPaNHSGn_w" name="return" type="_6UneoOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3FuO8EdyGNPaNHSGn_w" name="setSpatialIndex" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3F-O8EdyGNPaNHSGn_w" name="spatialIndex" type="_6UneoOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3GOO8EdyGNPaNHSGn_w" name="setProjection" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3GeO8EdyGNPaNHSGn_w" name="projection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3GuO8EdyGNPaNHSGn_w" name="getProjection" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3G-O8EdyGNPaNHSGn_w" name="return" type="_6UnhiuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud3HOO8EdyGNPaNHSGn_w" name="FBitSet">
+                <generalization xmi:id="_6Ud3HeO8EdyGNPaNHSGn_w" general="_6Ud78OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3HuO8EdyGNPaNHSGn_w" name="hashtab" visibility="private" type="_6UdsL-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3H-O8EdyGNPaNHSGn_w" name="isRandom" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud3IOO8EdyGNPaNHSGn_w" name="isIdSelected">
+                  <ownedParameter xmi:id="_6Ud3IeO8EdyGNPaNHSGn_w" name="ID" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3IuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3I-O8EdyGNPaNHSGn_w" name="isRandom" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3JOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3JeO8EdyGNPaNHSGn_w" name="setRandom" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3JuO8EdyGNPaNHSGn_w" name="isRandom" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud3J-O8EdyGNPaNHSGn_w" name="FLyrAnnotation">
+                <generalization xmi:id="_6Ud3KOO8EdyGNPaNHSGn_w" general="_6Ud4YeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3KeO8EdyGNPaNHSGn_w" name="mapping" visibility="private" type="_6Ud62eO8EdyGNPaNHSGn_w" association="_6Ud8JOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3KuO8EdyGNPaNHSGn_w" name="m_labels" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3K-O8EdyGNPaNHSGn_w" name="indexEditing" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3LOO8EdyGNPaNHSGn_w" name="inPixels" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3LeO8EdyGNPaNHSGn_w" name="vuvl" visibility="private" type="_6UnbseO8EdyGNPaNHSGn_w" association="_6Ud8JuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3LuO8EdyGNPaNHSGn_w" name="strategy" visibility="private" type="_6Ud88eO8EdyGNPaNHSGn_w" association="_6Ud8KOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud3L-O8EdyGNPaNHSGn_w" name="setMapping" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3MOO8EdyGNPaNHSGn_w" name="mapping" type="_6Ud62eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3MeO8EdyGNPaNHSGn_w" name="getMapping" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3MuO8EdyGNPaNHSGn_w" name="return" type="_6Ud62eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3M-O8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3NOO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3NeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3NuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3N-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3OOO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3OeO8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3OuO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3O-O8EdyGNPaNHSGn_w" name="print" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3POO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3PeO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3PuO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3P-O8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3QOO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3QeO8EdyGNPaNHSGn_w" name="queryByRect" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3QuO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3Q-O8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3ROO8EdyGNPaNHSGn_w" name="queryByPoint" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3ReO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3RuO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3R-O8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3SOO8EdyGNPaNHSGn_w" name="queryByShape" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3SeO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3SuO8EdyGNPaNHSGn_w" name="relationship" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3S-O8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3TOO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3TeO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3TuO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3T-O8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3UOO8EdyGNPaNHSGn_w" name="createLabels" visibility="private"/>
+                <ownedOperation xmi:id="_6Ud3UeO8EdyGNPaNHSGn_w" name="getLabel" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3UuO8EdyGNPaNHSGn_w" name="numReg" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3U-O8EdyGNPaNHSGn_w" name="return" type="_6UUpfOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3VOO8EdyGNPaNHSGn_w" name="createSpatialIndex" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud3VeO8EdyGNPaNHSGn_w" name="setSelectedEditing" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud3VuO8EdyGNPaNHSGn_w" name="setInPixels" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3V-O8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3WOO8EdyGNPaNHSGn_w" name="isInPixels" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3WeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3WuO8EdyGNPaNHSGn_w" name="setInEdition" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3W-O8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3XOO8EdyGNPaNHSGn_w" name="getInEdition" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3XeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3XuO8EdyGNPaNHSGn_w" name="getLabels" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3X-O8EdyGNPaNHSGn_w" name="return" type="_6UnhiOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3YOO8EdyGNPaNHSGn_w" name="setLegend" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud3YeO8EdyGNPaNHSGn_w" name="getStrategy" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3YuO8EdyGNPaNHSGn_w" name="return" type="_6Ud88eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3Y-O8EdyGNPaNHSGn_w" name="setEditing" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3ZOO8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3ZeO8EdyGNPaNHSGn_w" name="createLayerFromVect" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud3ZuO8EdyGNPaNHSGn_w" name="layer" type="_6Ud4YeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3Z-O8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud3aOO8EdyGNPaNHSGn_w" name="VectorialDisconnectedDBAdapter">
+                <generalization xmi:id="_6Ud3aeO8EdyGNPaNHSGn_w" general="_6Ud26-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3auO8EdyGNPaNHSGn_w" name="REFRESH" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3a-O8EdyGNPaNHSGn_w" name="RECEIVING" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3bOO8EdyGNPaNHSGn_w" name="LOCAL" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3beO8EdyGNPaNHSGn_w" name="numReg" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3buO8EdyGNPaNHSGn_w" name="ds" visibility="private" type="_6Ud0m-O8EdyGNPaNHSGn_w" association="_6Ud8KuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3b-O8EdyGNPaNHSGn_w" name="status" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3cOO8EdyGNPaNHSGn_w" name="connectedAdapter" visibility="private" type="_6Ud1V-O8EdyGNPaNHSGn_w" association="_6Ud8LOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3ceO8EdyGNPaNHSGn_w" name="dataFile" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3cuO8EdyGNPaNHSGn_w" name="indexFile" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud3c-O8EdyGNPaNHSGn_w" name="start" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud3dOO8EdyGNPaNHSGn_w" name="stop" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud3deO8EdyGNPaNHSGn_w" name="getShape" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3duO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3d-O8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3eOO8EdyGNPaNHSGn_w" name="getTableName" visibility="private">
+                  <ownedParameter xmi:id="_6Ud3eeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3euO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3e-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3fOO8EdyGNPaNHSGn_w" name="getRecordset" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3feO8EdyGNPaNHSGn_w" name="return" type="_6Ud0m-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud3fuO8EdyGNPaNHSGn_w" name="Receiver">
+                <ownedAttribute xmi:id="_6Ud3f-O8EdyGNPaNHSGn_w" name="bb" visibility="private" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3gOO8EdyGNPaNHSGn_w" name="currentCapacity" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3geO8EdyGNPaNHSGn_w" name="channel" visibility="private" type="_6UUwG-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3guO8EdyGNPaNHSGn_w" name="indexBuffer" visibility="private" type="_6UdsOOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3g-O8EdyGNPaNHSGn_w" name="indexChannel" visibility="private" type="_6UUwG-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3hOO8EdyGNPaNHSGn_w" name="extent" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud3heO8EdyGNPaNHSGn_w" name="getBuffer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3huO8EdyGNPaNHSGn_w" name="capacity" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3h-O8EdyGNPaNHSGn_w" name="return" type="_6UdsOOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3iOO8EdyGNPaNHSGn_w" name="writeObject" visibility="private">
+                  <ownedParameter xmi:id="_6Ud3ieO8EdyGNPaNHSGn_w" name="bytes" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3iuO8EdyGNPaNHSGn_w" name="run" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud3i-O8EdyGNPaNHSGn_w" name="FLayers" clientDependency="_6Ud3keO8EdyGNPaNHSGn_w _6Ud3kuO8EdyGNPaNHSGn_w _6Ud3k-O8EdyGNPaNHSGn_w">
+                <generalization xmi:id="_6Ud3jOO8EdyGNPaNHSGn_w" general="_6Ud1huO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3jeO8EdyGNPaNHSGn_w" name="layerCollectionListeners" visibility="protected" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3juO8EdyGNPaNHSGn_w" name="layers" visibility="protected" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3j-O8EdyGNPaNHSGn_w" name="fmap" visibility="protected" type="_6UKuxOO8EdyGNPaNHSGn_w" association="_6Unhp-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud3kOO8EdyGNPaNHSGn_w" name="logger" visibility="protected" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud3keO8EdyGNPaNHSGn_w" name="VectorialData" supplier="_6Ud7HuO8EdyGNPaNHSGn_w" client="_6Ud3i-O8EdyGNPaNHSGn_w" contract="_6Ud7HuO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud3kuO8EdyGNPaNHSGn_w" name="LayerCollection" supplier="_6Ud7SOO8EdyGNPaNHSGn_w" client="_6Ud3i-O8EdyGNPaNHSGn_w" contract="_6Ud7SOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud3k-O8EdyGNPaNHSGn_w" name="InfoByPoint" supplier="_6Ud7OuO8EdyGNPaNHSGn_w" client="_6Ud3i-O8EdyGNPaNHSGn_w" contract="_6Ud7OuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud3lOO8EdyGNPaNHSGn_w" name="addLayerCollectionListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3leO8EdyGNPaNHSGn_w" name="listener" type="_6Udz4OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3luO8EdyGNPaNHSGn_w" name="setAllVisibles" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3l-O8EdyGNPaNHSGn_w" name="visible" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3mOO8EdyGNPaNHSGn_w" name="removeLayerCollectionListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3meO8EdyGNPaNHSGn_w" name="listener" type="_6Udz4OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3muO8EdyGNPaNHSGn_w" name="doAddLayer" visibility="private">
+                  <ownedParameter xmi:id="_6Ud3m-O8EdyGNPaNHSGn_w" name="pos" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3nOO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3neO8EdyGNPaNHSGn_w" name="addLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3nuO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3n-O8EdyGNPaNHSGn_w" name="addLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3oOO8EdyGNPaNHSGn_w" name="pos" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3oeO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3ouO8EdyGNPaNHSGn_w" name="moveTo" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3o-O8EdyGNPaNHSGn_w" name="from" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3pOO8EdyGNPaNHSGn_w" name="to" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3peO8EdyGNPaNHSGn_w" name="doRemoveLayer" visibility="private">
+                  <ownedParameter xmi:id="_6Ud3puO8EdyGNPaNHSGn_w" name="lyr" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3p-O8EdyGNPaNHSGn_w" name="removeLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3qOO8EdyGNPaNHSGn_w" name="lyr" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3qeO8EdyGNPaNHSGn_w" name="removeLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3quO8EdyGNPaNHSGn_w" name="idLayer" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3q-O8EdyGNPaNHSGn_w" name="removeLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3rOO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3reO8EdyGNPaNHSGn_w" name="replaceLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3ruO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3r-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3sOO8EdyGNPaNHSGn_w" name="getVisibles" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3seO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3suO8EdyGNPaNHSGn_w" name="getLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3s-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3tOO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3teO8EdyGNPaNHSGn_w" name="getLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3tuO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3t-O8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3uOO8EdyGNPaNHSGn_w" name="splitLayerGroup" visibility="private">
+                  <ownedParameter xmi:id="_6Ud3ueO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3uuO8EdyGNPaNHSGn_w" name="result" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3u-O8EdyGNPaNHSGn_w" name="getLayersCount" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3vOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3veO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3vuO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3v-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3wOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3weO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3wuO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3w-O8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3xOO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3xeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3xuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3x-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3yOO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3yeO8EdyGNPaNHSGn_w" name="group" type="_6Ud7bOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3yuO8EdyGNPaNHSGn_w" name="return" type="_6Ud7bOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3y-O8EdyGNPaNHSGn_w" name="print" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3zOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3zeO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3zuO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud3z-O8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud30OO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud30eO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                  <ownedParameter xmi:id="_6Ud30uO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud30-O8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud31OO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud31eO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud31uO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud31-O8EdyGNPaNHSGn_w" name="group" type="_6Ud7bOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud32OO8EdyGNPaNHSGn_w" name="return" type="_6Ud7bOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud32eO8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6Ud32uO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud32-O8EdyGNPaNHSGn_w" name="callLayerAdding" visibility="protected">
+                  <ownedParameter xmi:id="_6Ud33OO8EdyGNPaNHSGn_w" name="event" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud33eO8EdyGNPaNHSGn_w" name="callLayerRemoving" visibility="protected">
+                  <ownedParameter xmi:id="_6Ud33uO8EdyGNPaNHSGn_w" name="event" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud33-O8EdyGNPaNHSGn_w" name="callLayerMoving" visibility="protected">
+                  <ownedParameter xmi:id="_6Ud34OO8EdyGNPaNHSGn_w" name="event" type="_6Ud2auO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud34eO8EdyGNPaNHSGn_w" name="callLayerAdded" visibility="protected">
+                  <ownedParameter xmi:id="_6Ud34uO8EdyGNPaNHSGn_w" name="event" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud34-O8EdyGNPaNHSGn_w" name="callLayerRemoved" visibility="protected">
+                  <ownedParameter xmi:id="_6Ud35OO8EdyGNPaNHSGn_w" name="event" type="_6Ud0KuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud35eO8EdyGNPaNHSGn_w" name="callLayerMoved" visibility="protected">
+                  <ownedParameter xmi:id="_6Ud35uO8EdyGNPaNHSGn_w" name="event" type="_6Ud2auO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud35-O8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud36OO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud36eO8EdyGNPaNHSGn_w" name="setXMLEntity03" visibility="public">
+                  <ownedParameter xmi:id="_6Ud36uO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud36-O8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud37OO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud37eO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                  <ownedParameter xmi:id="_6Ud37uO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud37-O8EdyGNPaNHSGn_w" name="subset" type="_6Ud3HOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud38OO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                  <ownedParameter xmi:id="_6Ud38eO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud38uO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                  <ownedParameter xmi:id="_6Ud38-O8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud39OO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud39eO8EdyGNPaNHSGn_w" name="getMapContext" visibility="public">
+                  <ownedParameter xmi:id="_6Ud39uO8EdyGNPaNHSGn_w" name="return" type="_6UKuxOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud39-O8EdyGNPaNHSGn_w" name="setCoordTrans" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3-OO8EdyGNPaNHSGn_w" name="ct" type="_6UnhkOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3-eO8EdyGNPaNHSGn_w" name="setAllActives" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3-uO8EdyGNPaNHSGn_w" name="active" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3--O8EdyGNPaNHSGn_w" name="getActives" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3_OO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3_eO8EdyGNPaNHSGn_w" name="getMinScale" visibility="public">
+                  <ownedParameter xmi:id="_6Ud3_uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud3_-O8EdyGNPaNHSGn_w" name="getMaxScale" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4AOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4AeO8EdyGNPaNHSGn_w" name="setMinScale" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4AuO8EdyGNPaNHSGn_w" name="minScale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4A-O8EdyGNPaNHSGn_w" name="setMaxScale" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4BOO8EdyGNPaNHSGn_w" name="maxScale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4BeO8EdyGNPaNHSGn_w" name="setActive" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4BuO8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4B-O8EdyGNPaNHSGn_w" name="addLayerListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4COO8EdyGNPaNHSGn_w" name="o" type="_6Ud60OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4CeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4CuO8EdyGNPaNHSGn_w" name="getInfo" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4C-O8EdyGNPaNHSGn_w" name="p" type="_6UUiRuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4DOO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4DeO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4DuO8EdyGNPaNHSGn_w" name="return" type="_6Ud7J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4D-O8EdyGNPaNHSGn_w" name="getTocImageIcon" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4EOO8EdyGNPaNHSGn_w" name="return" type="_6Ud76eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4EeO8EdyGNPaNHSGn_w" name="isDirty" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4EuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4E-O8EdyGNPaNHSGn_w" name="setDirty" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4FOO8EdyGNPaNHSGn_w" name="dirty" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4FeO8EdyGNPaNHSGn_w" name="addLayerFromXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4FuO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4F-O8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4GOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4GeO8EdyGNPaNHSGn_w" name="addLayerFromXML" visibility="private">
+                  <ownedParameter xmi:id="_6Ud4GuO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4G-O8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4HOO8EdyGNPaNHSGn_w" name="setMapContext" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4HeO8EdyGNPaNHSGn_w" name="mapContext" type="_6UKuxOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4HuO8EdyGNPaNHSGn_w" name="addLayerFromXMLNew" visibility="private">
+                  <ownedParameter xmi:id="_6Ud4H-O8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4IOO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud4IeO8EdyGNPaNHSGn_w" name="SingleLayerIterator">
+                <ownedAttribute xmi:id="_6Ud4IuO8EdyGNPaNHSGn_w" name="singleLayers" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4I-O8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4JOO8EdyGNPaNHSGn_w" name="subIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud4JeO8EdyGNPaNHSGn_w" name="hasNext" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4JuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4J-O8EdyGNPaNHSGn_w" name="next" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4KOO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4KeO8EdyGNPaNHSGn_w" name="addSubLayer" visibility="private">
+                  <ownedParameter xmi:id="_6Ud4KuO8EdyGNPaNHSGn_w" name="lyr" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4K-O8EdyGNPaNHSGn_w" name="rewind" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud4LOO8EdyGNPaNHSGn_w" name="FLayerVectorialDB">
+                <generalization xmi:id="_6Ud4LeO8EdyGNPaNHSGn_w" general="_6Ud4YeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4LuO8EdyGNPaNHSGn_w" name="loaded" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4L-O8EdyGNPaNHSGn_w" name="dbDriver" visibility="private" type="_6UUrdeO8EdyGNPaNHSGn_w" association="_6Ud8LuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud4MOO8EdyGNPaNHSGn_w" name="setProjectionByName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4MeO8EdyGNPaNHSGn_w" name="projectionName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4MuO8EdyGNPaNHSGn_w" name="setDriver" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4M-O8EdyGNPaNHSGn_w" name="driver" type="_6UUrdeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4NOO8EdyGNPaNHSGn_w" name="setDriverByName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4NeO8EdyGNPaNHSGn_w" name="driverName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4NuO8EdyGNPaNHSGn_w" name="getDriver" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4N-O8EdyGNPaNHSGn_w" name="return" type="_6UUrdeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4OOO8EdyGNPaNHSGn_w" name="wakeUp" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud4OeO8EdyGNPaNHSGn_w" name="load" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud4OuO8EdyGNPaNHSGn_w" name="initializeLegendDefault" visibility="private"/>
+                <ownedOperation xmi:id="_6Ud4O-O8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4POO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud4PeO8EdyGNPaNHSGn_w" name="GDBMSHandler">
+                <ownedAttribute xmi:id="_6Ud4PuO8EdyGNPaNHSGn_w" name="entities" visibility="private" type="_6Udw7uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4P-O8EdyGNPaNHSGn_w" name="last" visibility="private" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud4QOO8EdyGNPaNHSGn_w" name="endDocument" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud4QeO8EdyGNPaNHSGn_w" name="startDocument" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud4QuO8EdyGNPaNHSGn_w" name="characters" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4Q-O8EdyGNPaNHSGn_w" name="ch" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4ROO8EdyGNPaNHSGn_w" name="start" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4ReO8EdyGNPaNHSGn_w" name="length" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4RuO8EdyGNPaNHSGn_w" name="ignorableWhitespace" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4R-O8EdyGNPaNHSGn_w" name="ch" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4SOO8EdyGNPaNHSGn_w" name="start" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4SeO8EdyGNPaNHSGn_w" name="length" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4SuO8EdyGNPaNHSGn_w" name="endPrefixMapping" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4S-O8EdyGNPaNHSGn_w" name="prefix" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4TOO8EdyGNPaNHSGn_w" name="skippedEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4TeO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4TuO8EdyGNPaNHSGn_w" name="setDocumentLocator" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4T-O8EdyGNPaNHSGn_w" name="locator" type="_6Ud78eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4UOO8EdyGNPaNHSGn_w" name="processingInstruction" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4UeO8EdyGNPaNHSGn_w" name="target" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4UuO8EdyGNPaNHSGn_w" name="data" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4U-O8EdyGNPaNHSGn_w" name="startPrefixMapping" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4VOO8EdyGNPaNHSGn_w" name="prefix" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4VeO8EdyGNPaNHSGn_w" name="uri" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4VuO8EdyGNPaNHSGn_w" name="endElement" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4V-O8EdyGNPaNHSGn_w" name="namespaceURI" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4WOO8EdyGNPaNHSGn_w" name="localName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4WeO8EdyGNPaNHSGn_w" name="qName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4WuO8EdyGNPaNHSGn_w" name="startElement" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4W-O8EdyGNPaNHSGn_w" name="namespaceURI" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4XOO8EdyGNPaNHSGn_w" name="localName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4XeO8EdyGNPaNHSGn_w" name="qName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4XuO8EdyGNPaNHSGn_w" name="atts" type="_6Ud78uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4X-O8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4YOO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud4YeO8EdyGNPaNHSGn_w" name="FLyrVect" clientDependency="_6Ud4deO8EdyGNPaNHSGn_w _6Ud4duO8EdyGNPaNHSGn_w _6Ud4d-O8EdyGNPaNHSGn_w _6Ud4eOO8EdyGNPaNHSGn_w _6Ud4eeO8EdyGNPaNHSGn_w _6Ud4euO8EdyGNPaNHSGn_w _6Ud4e-O8EdyGNPaNHSGn_w">
+                <generalization xmi:id="_6Ud4YuO8EdyGNPaNHSGn_w" general="_6Ud1huO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4Y-O8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4ZOO8EdyGNPaNHSGn_w" name="forTestOnlyVariableUseIterators_REMOVE_THIS_FIELD" visibility="public" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4ZeO8EdyGNPaNHSGn_w" name="useStrategy" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4ZuO8EdyGNPaNHSGn_w" name="legend" visibility="private" type="_6UnbGeO8EdyGNPaNHSGn_w" association="_6Ud8MOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4Z-O8EdyGNPaNHSGn_w" name="typeShape" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4aOO8EdyGNPaNHSGn_w" name="source" visibility="private" type="_6Ud2MeO8EdyGNPaNHSGn_w" association="_6Ud8MuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4aeO8EdyGNPaNHSGn_w" name="sds" visibility="private" type="_6Ud0m-O8EdyGNPaNHSGn_w" association="_6Ud8NOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4auO8EdyGNPaNHSGn_w" name="selectionSupport" visibility="private" type="_6Ud1IeO8EdyGNPaNHSGn_w" association="_6Ud8NuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4a-O8EdyGNPaNHSGn_w" name="spatialCache" visibility="private" type="_6Ud2y-O8EdyGNPaNHSGn_w" association="_6Ud8OOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4bOO8EdyGNPaNHSGn_w" name="spatialCacheEnabled" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4beO8EdyGNPaNHSGn_w" name="spatialIndex" visibility="protected" type="_6UneoOO8EdyGNPaNHSGn_w" association="_6Ud8OuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4buO8EdyGNPaNHSGn_w" name="bHasJoin" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4b-O8EdyGNPaNHSGn_w" name="orgXMLEntity" visibility="private" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4cOO8EdyGNPaNHSGn_w" name="loadSelection" visibility="private" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4ceO8EdyGNPaNHSGn_w" name="loadLegend" visibility="private" type="_6UnbGeO8EdyGNPaNHSGn_w" association="_6Ud8POO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4cuO8EdyGNPaNHSGn_w" name="linkProperties" visibility="private" type="_6Ud6UuO8EdyGNPaNHSGn_w" association="_6Ud8PuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4c-O8EdyGNPaNHSGn_w" name="isLabeled" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud4dOO8EdyGNPaNHSGn_w" name="strategy" visibility="private" type="_6UncoOO8EdyGNPaNHSGn_w" association="_6Ud8QOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud4deO8EdyGNPaNHSGn_w" name="ILabelable" supplier="_6UUfleO8EdyGNPaNHSGn_w" client="_6Ud4YeO8EdyGNPaNHSGn_w" contract="_6UUfleO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud4duO8EdyGNPaNHSGn_w" name="ClassifiableVectorial" supplier="_6Ud7aOO8EdyGNPaNHSGn_w" client="_6Ud4YeO8EdyGNPaNHSGn_w" contract="_6Ud7aOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud4d-O8EdyGNPaNHSGn_w" name="SingleLayer" supplier="_6Ud7DOO8EdyGNPaNHSGn_w" client="_6Ud4YeO8EdyGNPaNHSGn_w" contract="_6Ud7DOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud4eOO8EdyGNPaNHSGn_w" name="VectorialData" supplier="_6Ud7HuO8EdyGNPaNHSGn_w" client="_6Ud4YeO8EdyGNPaNHSGn_w" contract="_6Ud7HuO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud4eeO8EdyGNPaNHSGn_w" name="RandomVectorialData" supplier="_6Ud7k-O8EdyGNPaNHSGn_w" client="_6Ud4YeO8EdyGNPaNHSGn_w" contract="_6Ud7k-O8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud4euO8EdyGNPaNHSGn_w" name="AlphanumericData" supplier="_6Ud7MuO8EdyGNPaNHSGn_w" client="_6Ud4YeO8EdyGNPaNHSGn_w" contract="_6Ud7MuO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud4e-O8EdyGNPaNHSGn_w" name="InfoByPoint" supplier="_6Ud7OuO8EdyGNPaNHSGn_w" client="_6Ud4YeO8EdyGNPaNHSGn_w" contract="_6Ud7OuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud4fOO8EdyGNPaNHSGn_w" name="getSource" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4feO8EdyGNPaNHSGn_w" name="return" type="_6Ud2MeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4fuO8EdyGNPaNHSGn_w" name="loadSpatialIndex" visibility="private"/>
+                <ownedOperation xmi:id="_6Ud4f-O8EdyGNPaNHSGn_w" name="isExternallySpatiallyIndexed" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4gOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4geO8EdyGNPaNHSGn_w" name="setSource" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4guO8EdyGNPaNHSGn_w" name="rv" type="_6Ud2MeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4g-O8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4hOO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4heO8EdyGNPaNHSGn_w" name="_draw" visibility="private">
+                  <ownedParameter xmi:id="_6Ud4huO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4h-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4iOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4ieO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4iuO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4i-O8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4jOO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4jeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4juO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4j-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4kOO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4keO8EdyGNPaNHSGn_w" name="prepareDrawing" visibility="private">
+                  <ownedParameter xmi:id="_6Ud4kuO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4k-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4lOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4leO8EdyGNPaNHSGn_w" name="_print" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4luO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4l-O8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4mOO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4meO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4muO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4m-O8EdyGNPaNHSGn_w" name="print" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4nOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4neO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4nuO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4n-O8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4oOO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4oeO8EdyGNPaNHSGn_w" name="deleteSpatialIndex" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud4ouO8EdyGNPaNHSGn_w" name="createSpatialIndex" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4o-O8EdyGNPaNHSGn_w" name="cancelMonitor" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4pOO8EdyGNPaNHSGn_w" name="createSpatialIndex" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud4peO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4puO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4p-O8EdyGNPaNHSGn_w" name="subset" type="_6Ud3HOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4qOO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4qeO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4quO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4q-O8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4rOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4reO8EdyGNPaNHSGn_w" name="queryByRect" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4ruO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4r-O8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4sOO8EdyGNPaNHSGn_w" name="queryByPoint" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4seO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4suO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4s-O8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4tOO8EdyGNPaNHSGn_w" name="queryByShape" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4teO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4tuO8EdyGNPaNHSGn_w" name="relationship" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4t-O8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4uOO8EdyGNPaNHSGn_w" name="getInfo" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4ueO8EdyGNPaNHSGn_w" name="p" type="_6UUiRuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4uuO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4u-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4vOO8EdyGNPaNHSGn_w" name="return" type="_6Ud7J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4veO8EdyGNPaNHSGn_w" name="setLegend" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4vuO8EdyGNPaNHSGn_w" name="r" type="_6UnbGeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4v-O8EdyGNPaNHSGn_w" name="getLegend" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4wOO8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4weO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4wuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4w-O8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4xOO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4xeO8EdyGNPaNHSGn_w" name="setXMLEntity03" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4xuO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4x-O8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4yOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4yeO8EdyGNPaNHSGn_w" name="setXMLEntityNew" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4yuO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4y-O8EdyGNPaNHSGn_w" name="toString" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4zOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4zeO8EdyGNPaNHSGn_w" name="isJoined" visibility="public">
+                  <ownedParameter xmi:id="_6Ud4zuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4z-O8EdyGNPaNHSGn_w" name="isSpatiallyIndexed" visibility="public">
+                  <ownedParameter xmi:id="_6Ud40OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud40eO8EdyGNPaNHSGn_w" name="setIsJoined" visibility="public">
+                  <ownedParameter xmi:id="_6Ud40uO8EdyGNPaNHSGn_w" name="hasJoin" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud40-O8EdyGNPaNHSGn_w" name="getISpatialIndex" visibility="public">
+                  <ownedParameter xmi:id="_6Ud41OO8EdyGNPaNHSGn_w" name="return" type="_6UneoOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud41eO8EdyGNPaNHSGn_w" name="setISpatialIndex" visibility="public">
+                  <ownedParameter xmi:id="_6Ud41uO8EdyGNPaNHSGn_w" name="spatialIndex" type="_6UneoOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud41-O8EdyGNPaNHSGn_w" name="getRecordset" visibility="public">
+                  <ownedParameter xmi:id="_6Ud42OO8EdyGNPaNHSGn_w" name="return" type="_6Ud0m-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud42eO8EdyGNPaNHSGn_w" name="setEditing" visibility="public">
+                  <ownedParameter xmi:id="_6Ud42uO8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud42-O8EdyGNPaNHSGn_w" name="setRecordset" visibility="public">
+                  <ownedParameter xmi:id="_6Ud43OO8EdyGNPaNHSGn_w" name="newSds" type="_6Ud0m-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud43eO8EdyGNPaNHSGn_w" name="clearSpatialCache" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud43uO8EdyGNPaNHSGn_w" name="isSpatialCacheEnabled" visibility="public">
+                  <ownedParameter xmi:id="_6Ud43-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud44OO8EdyGNPaNHSGn_w" name="setSpatialCacheEnabled" visibility="public">
+                  <ownedParameter xmi:id="_6Ud44eO8EdyGNPaNHSGn_w" name="spatialCacheEnabled" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud44uO8EdyGNPaNHSGn_w" name="getSpatialCache" visibility="public">
+                  <ownedParameter xmi:id="_6Ud44-O8EdyGNPaNHSGn_w" name="return" type="_6Ud2y-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud45OO8EdyGNPaNHSGn_w" name="setMaxFeaturesInEditionCache" visibility="public">
+                  <ownedParameter xmi:id="_6Ud45eO8EdyGNPaNHSGn_w" name="maxFeatures" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud45uO8EdyGNPaNHSGn_w" name="isPropertiesMenuVisible" visibility="public">
+                  <ownedParameter xmi:id="_6Ud45-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud46OO8EdyGNPaNHSGn_w" name="reload" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud46eO8EdyGNPaNHSGn_w" name="setLoadSelection" visibility="protected">
+                  <ownedParameter xmi:id="_6Ud46uO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud46-O8EdyGNPaNHSGn_w" name="setLoadLegend" visibility="protected">
+                  <ownedParameter xmi:id="_6Ud47OO8EdyGNPaNHSGn_w" name="legend" type="_6UnbGeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud47eO8EdyGNPaNHSGn_w" name="putLoadSelection" visibility="protected"/>
+                <ownedOperation xmi:id="_6Ud47uO8EdyGNPaNHSGn_w" name="putLoadLegend" visibility="protected"/>
+                <ownedOperation xmi:id="_6Ud47-O8EdyGNPaNHSGn_w" name="cleanLoadOptions" visibility="protected"/>
+                <ownedOperation xmi:id="_6Ud48OO8EdyGNPaNHSGn_w" name="isWritable" visibility="public">
+                  <ownedParameter xmi:id="_6Ud48eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud48uO8EdyGNPaNHSGn_w" name="cloneLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud48-O8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud49OO8EdyGNPaNHSGn_w" name="isOnePoint" visibility="private">
+                  <ownedParameter xmi:id="_6Ud49eO8EdyGNPaNHSGn_w" name="graphicsTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud49uO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud49-O8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4-OO8EdyGNPaNHSGn_w" name="csSym" type="_6UUenuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4-eO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4-uO8EdyGNPaNHSGn_w" name="xyCoords" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4--O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud4_OO8EdyGNPaNHSGn_w" name="isOnePoint" visibility="private">
+                  <ownedParameter xmi:id="_6Ud4_eO8EdyGNPaNHSGn_w" name="graphicsTransform" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4_uO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud4_-O8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5AOO8EdyGNPaNHSGn_w" name="xyCoords" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5AeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5AuO8EdyGNPaNHSGn_w" name="isLabeled" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5A-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5BOO8EdyGNPaNHSGn_w" name="setIsLabeled" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5BeO8EdyGNPaNHSGn_w" name="isLabeled" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5BuO8EdyGNPaNHSGn_w" name="getLabelingStrategy" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5B-O8EdyGNPaNHSGn_w" name="return" type="_6UncoOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5COO8EdyGNPaNHSGn_w" name="setLabelingStrategy" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5CeO8EdyGNPaNHSGn_w" name="strategy" type="_6UncoOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5CuO8EdyGNPaNHSGn_w" name="drawLabels" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5C-O8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5DOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5DeO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5DuO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5D-O8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5EOO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5EeO8EdyGNPaNHSGn_w" name="allowLinks" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5EuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5E-O8EdyGNPaNHSGn_w" name="getLinkProperties" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5FOO8EdyGNPaNHSGn_w" name="return" type="_6Ud2suO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5FeO8EdyGNPaNHSGn_w" name="getLink" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5FuO8EdyGNPaNHSGn_w" name="point" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5F-O8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5GOO8EdyGNPaNHSGn_w" name="return" type="_6UUpzuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5GeO8EdyGNPaNHSGn_w" name="isUseStrategy" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5GuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5G-O8EdyGNPaNHSGn_w" name="setUseStrategy" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5HOO8EdyGNPaNHSGn_w" name="useStrategy" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5HeO8EdyGNPaNHSGn_w" name="load" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud5HuO8EdyGNPaNHSGn_w" name="ISolveErrorListener">
+                <ownedOperation xmi:id="_6Ud5H-O8EdyGNPaNHSGn_w" name="getException" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5IOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5IeO8EdyGNPaNHSGn_w" name="solve" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5IuO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5I-O8EdyGNPaNHSGn_w" name="driver" type="_6UdzluO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5JOO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5JeO8EdyGNPaNHSGn_w" name="isSolved" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5JuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud5J-O8EdyGNPaNHSGn_w" name="FLayer">
+                <ownedOperation xmi:id="_6Ud5KOO8EdyGNPaNHSGn_w" name="getXMLEntity">
+                  <ownedParameter xmi:id="_6Ud5KeO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5KuO8EdyGNPaNHSGn_w" name="setXMLEntity">
+                  <ownedParameter xmi:id="_6Ud5K-O8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5LOO8EdyGNPaNHSGn_w" name="setXMLEntity03">
+                  <ownedParameter xmi:id="_6Ud5LeO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5LuO8EdyGNPaNHSGn_w" name="setActive">
+                  <ownedParameter xmi:id="_6Ud5L-O8EdyGNPaNHSGn_w" name="selected" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5MOO8EdyGNPaNHSGn_w" name="isActive">
+                  <ownedParameter xmi:id="_6Ud5MeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5MuO8EdyGNPaNHSGn_w" name="setName">
+                  <ownedParameter xmi:id="_6Ud5M-O8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5NOO8EdyGNPaNHSGn_w" name="getName">
+                  <ownedParameter xmi:id="_6Ud5NeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5NuO8EdyGNPaNHSGn_w" name="load"/>
+                <ownedOperation xmi:id="_6Ud5N-O8EdyGNPaNHSGn_w" name="setVisible">
+                  <ownedParameter xmi:id="_6Ud5OOO8EdyGNPaNHSGn_w" name="visibility" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5OeO8EdyGNPaNHSGn_w" name="isVisible">
+                  <ownedParameter xmi:id="_6Ud5OuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5O-O8EdyGNPaNHSGn_w" name="getParentLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5POO8EdyGNPaNHSGn_w" name="return" type="_6Ud3i-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5PeO8EdyGNPaNHSGn_w" name="getMapContext" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5PuO8EdyGNPaNHSGn_w" name="return" type="_6UKuxOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5P-O8EdyGNPaNHSGn_w" name="setParentLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5QOO8EdyGNPaNHSGn_w" name="root" type="_6Ud3i-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5QeO8EdyGNPaNHSGn_w" name="getFullExtent">
+                  <ownedParameter xmi:id="_6Ud5QuO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5Q-O8EdyGNPaNHSGn_w" name="draw">
+                  <ownedParameter xmi:id="_6Ud5ROO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5ReO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5RuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5R-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5SOO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5SeO8EdyGNPaNHSGn_w" name="print">
+                  <ownedParameter xmi:id="_6Ud5SuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5S-O8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5TOO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5TeO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5TuO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5T-O8EdyGNPaNHSGn_w" name="setCoordTrans">
+                  <ownedParameter xmi:id="_6Ud5UOO8EdyGNPaNHSGn_w" name="ct" type="_6UnhkOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5UeO8EdyGNPaNHSGn_w" name="getCoordTrans">
+                  <ownedParameter xmi:id="_6Ud5UuO8EdyGNPaNHSGn_w" name="return" type="_6UnhkOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5U-O8EdyGNPaNHSGn_w" name="addLayerListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5VOO8EdyGNPaNHSGn_w" name="o" type="_6Ud60OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5VeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5VuO8EdyGNPaNHSGn_w" name="getLayerListeners" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5V-O8EdyGNPaNHSGn_w" name="return" type="_6Ud60OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5WOO8EdyGNPaNHSGn_w" name="removeLayerListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5WeO8EdyGNPaNHSGn_w" name="o" type="_6Ud60OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5WuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5W-O8EdyGNPaNHSGn_w" name="isWithinScale" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5XOO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5XeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5XuO8EdyGNPaNHSGn_w" name="getMinScale" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5X-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5YOO8EdyGNPaNHSGn_w" name="getMaxScale" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5YeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5YuO8EdyGNPaNHSGn_w" name="setMinScale" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5Y-O8EdyGNPaNHSGn_w" name="minScale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5ZOO8EdyGNPaNHSGn_w" name="setMaxScale" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5ZeO8EdyGNPaNHSGn_w" name="maxScale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5ZuO8EdyGNPaNHSGn_w" name="setEditing" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5Z-O8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5aOO8EdyGNPaNHSGn_w" name="isEditing" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5aeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5auO8EdyGNPaNHSGn_w" name="isCachingDrawnLayers" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5a-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5bOO8EdyGNPaNHSGn_w" name="setCachingDrawnLayers" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5beO8EdyGNPaNHSGn_w" name="bCacheDrawnLayers" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5buO8EdyGNPaNHSGn_w" name="getTocImageIcon" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5b-O8EdyGNPaNHSGn_w" name="return" type="_6Ud76eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5cOO8EdyGNPaNHSGn_w" name="isInTOC">
+                  <ownedParameter xmi:id="_6Ud5ceO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5cuO8EdyGNPaNHSGn_w" name="setInTOC">
+                  <ownedParameter xmi:id="_6Ud5c-O8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5dOO8EdyGNPaNHSGn_w" name="isDirty" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5deO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5duO8EdyGNPaNHSGn_w" name="setDirty" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5d-O8EdyGNPaNHSGn_w" name="dirty" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5eOO8EdyGNPaNHSGn_w" name="getCacheImageDrawnLayers" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5eeO8EdyGNPaNHSGn_w" name="return" type="_6UnhjeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5euO8EdyGNPaNHSGn_w" name="setCacheImageDrawnLayers" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5e-O8EdyGNPaNHSGn_w" name="cacheImageDrawnLayers" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5fOO8EdyGNPaNHSGn_w" name="getFLayerStatus" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5feO8EdyGNPaNHSGn_w" name="return" type="_6Ud51OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5fuO8EdyGNPaNHSGn_w" name="setFLayerStatus" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5f-O8EdyGNPaNHSGn_w" name="status" type="_6Ud51OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5gOO8EdyGNPaNHSGn_w" name="isOk" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5geO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5guO8EdyGNPaNHSGn_w" name="getNumErrors" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5g-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5hOO8EdyGNPaNHSGn_w" name="getError" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5heO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5huO8EdyGNPaNHSGn_w" name="return" type="_6UKs5eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5h-O8EdyGNPaNHSGn_w" name="addError" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5iOO8EdyGNPaNHSGn_w" name="exception" type="_6UKs5eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5ieO8EdyGNPaNHSGn_w" name="getErrors" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5iuO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5i-O8EdyGNPaNHSGn_w" name="setAvailable" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5jOO8EdyGNPaNHSGn_w" name="available" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5jeO8EdyGNPaNHSGn_w" name="isAvailable" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5juO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5j-O8EdyGNPaNHSGn_w" name="reload" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud5kOO8EdyGNPaNHSGn_w" name="visibleRequired">
+                  <ownedParameter xmi:id="_6Ud5keO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5kuO8EdyGNPaNHSGn_w" name="getInfoString" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5k-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5lOO8EdyGNPaNHSGn_w" name="isWritable" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5leO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5luO8EdyGNPaNHSGn_w" name="cloneLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5l-O8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5mOO8EdyGNPaNHSGn_w" name="getProperty" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5meO8EdyGNPaNHSGn_w" name="key" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5muO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5m-O8EdyGNPaNHSGn_w" name="setProperty" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5nOO8EdyGNPaNHSGn_w" name="key" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5neO8EdyGNPaNHSGn_w" name="obj" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5nuO8EdyGNPaNHSGn_w" name="getExtendedProperties" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5n-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5oOO8EdyGNPaNHSGn_w" name="newComposedLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5oeO8EdyGNPaNHSGn_w" name="return" type="_6Ud7bOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5ouO8EdyGNPaNHSGn_w" name="getTocStatusImage">
+                  <ownedParameter xmi:id="_6Ud5o-O8EdyGNPaNHSGn_w" name="return" type="_6UUpzeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5pOO8EdyGNPaNHSGn_w" name="allowLinks" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5peO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5puO8EdyGNPaNHSGn_w" name="getLinkProperties" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5p-O8EdyGNPaNHSGn_w" name="return" type="_6Ud2suO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5qOO8EdyGNPaNHSGn_w" name="getLink" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5qeO8EdyGNPaNHSGn_w" name="point" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5quO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5q-O8EdyGNPaNHSGn_w" name="return" type="_6UUpzuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud5rOO8EdyGNPaNHSGn_w" name="FLayerGenericVectorial">
+                <generalization xmi:id="_6Ud5reO8EdyGNPaNHSGn_w" general="_6Ud4YeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud5ruO8EdyGNPaNHSGn_w" name="loaded" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud5r-O8EdyGNPaNHSGn_w" name="vDriver" visibility="private" type="_6UUuxeO8EdyGNPaNHSGn_w" association="_6Ud8QuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud5sOO8EdyGNPaNHSGn_w" name="setProjectionByName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5seO8EdyGNPaNHSGn_w" name="projectionName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5suO8EdyGNPaNHSGn_w" name="setDriver" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5s-O8EdyGNPaNHSGn_w" name="vDriver" type="_6UUuxeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5tOO8EdyGNPaNHSGn_w" name="getDriver" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5teO8EdyGNPaNHSGn_w" name="return" type="_6UUuxeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5tuO8EdyGNPaNHSGn_w" name="setDriverByName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5t-O8EdyGNPaNHSGn_w" name="driverName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5uOO8EdyGNPaNHSGn_w" name="initializeLegendDefault" visibility="private"/>
+                <ownedOperation xmi:id="_6Ud5ueO8EdyGNPaNHSGn_w" name="wakeUp" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud5uuO8EdyGNPaNHSGn_w" name="load" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud5u-O8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5vOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud5veO8EdyGNPaNHSGn_w" name="LegendChangedEvent">
+                <generalization xmi:id="_6Ud5vuO8EdyGNPaNHSGn_w" general="_6Ud1S-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud5v-O8EdyGNPaNHSGn_w" name="LEGEND_CHANGED" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud5wOO8EdyGNPaNHSGn_w" name="oldLegend" visibility="private" type="_6UnbUOO8EdyGNPaNHSGn_w" association="_6Ud8ROO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud5weO8EdyGNPaNHSGn_w" name="newLegend" visibility="private" type="_6UnbUOO8EdyGNPaNHSGn_w" association="_6Ud8RuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud5wuO8EdyGNPaNHSGn_w" name="events" visibility="private" type="_6Ud5veO8EdyGNPaNHSGn_w" association="_6Ud8SOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud5w-O8EdyGNPaNHSGn_w" name="createLegendChangedEvent" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud5xOO8EdyGNPaNHSGn_w" name="oldLegend" type="_6UnbUOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5xeO8EdyGNPaNHSGn_w" name="newLegend" type="_6UnbUOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5xuO8EdyGNPaNHSGn_w" name="return" type="_6Ud5veO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5x-O8EdyGNPaNHSGn_w" name="getOldLegend" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5yOO8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5yeO8EdyGNPaNHSGn_w" name="getNewLegend" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5yuO8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5y-O8EdyGNPaNHSGn_w" name="getEvents" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5zOO8EdyGNPaNHSGn_w" name="return" type="_6Ud5veO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5zeO8EdyGNPaNHSGn_w" name="setEvents" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5zuO8EdyGNPaNHSGn_w" name="events" type="_6Ud5veO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud5z-O8EdyGNPaNHSGn_w" name="VectorialSecuencial">
+                <ownedOperation xmi:id="_6Ud50OO8EdyGNPaNHSGn_w" name="getFeatureIterator" visibility="public">
+                  <ownedParameter xmi:id="_6Ud50eO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud50uO8EdyGNPaNHSGn_w" name="strEPSG" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud50-O8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud51OO8EdyGNPaNHSGn_w" name="FLayerStatus" clientDependency="_6Ud53-O8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6Ud51eO8EdyGNPaNHSGn_w" name="available" visibility="public" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud51uO8EdyGNPaNHSGn_w" name="visible" visibility="public" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud51-O8EdyGNPaNHSGn_w" name="active" visibility="public" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud52OO8EdyGNPaNHSGn_w" name="dirty" visibility="public" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud52eO8EdyGNPaNHSGn_w" name="inTOC" visibility="public" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud52uO8EdyGNPaNHSGn_w" name="editing" visibility="public" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud52-O8EdyGNPaNHSGn_w" name="writable" visibility="public" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud53OO8EdyGNPaNHSGn_w" name="cacheDrawnLayers" visibility="public" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud53eO8EdyGNPaNHSGn_w" name="layerErrors" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud53uO8EdyGNPaNHSGn_w" name="driverLoaded" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud53-O8EdyGNPaNHSGn_w" name="IFLayerStatus" supplier="_6Udz7-O8EdyGNPaNHSGn_w" client="_6Ud51OO8EdyGNPaNHSGn_w" contract="_6Udz7-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud54OO8EdyGNPaNHSGn_w" name="addLayerError" visibility="public">
+                  <ownedParameter xmi:id="_6Ud54eO8EdyGNPaNHSGn_w" name="error" type="_6UKs5eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud54uO8EdyGNPaNHSGn_w" name="getNumErrors" visibility="public">
+                  <ownedParameter xmi:id="_6Ud54-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud55OO8EdyGNPaNHSGn_w" name="getError" visibility="public">
+                  <ownedParameter xmi:id="_6Ud55eO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud55uO8EdyGNPaNHSGn_w" name="return" type="_6UKs5eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud55-O8EdyGNPaNHSGn_w" name="isOk" visibility="public">
+                  <ownedParameter xmi:id="_6Ud56OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud56eO8EdyGNPaNHSGn_w" name="getErrors" visibility="public">
+                  <ownedParameter xmi:id="_6Ud56uO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud56-O8EdyGNPaNHSGn_w" name="isDriverLoaded" visibility="public">
+                  <ownedParameter xmi:id="_6Ud57OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud57eO8EdyGNPaNHSGn_w" name="setDriverLoaded" visibility="public">
+                  <ownedParameter xmi:id="_6Ud57uO8EdyGNPaNHSGn_w" name="driverLoaded" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud57-O8EdyGNPaNHSGn_w" name="XMLException">
+                <generalization xmi:id="_6Ud58OO8EdyGNPaNHSGn_w" general="_6UKs5eO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud58eO8EdyGNPaNHSGn_w" name="init" visibility="private"/>
+                <ownedOperation xmi:id="_6Ud58uO8EdyGNPaNHSGn_w" name="values" visibility="protected">
+                  <ownedParameter xmi:id="_6Ud58-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud59OO8EdyGNPaNHSGn_w" name="VectorialDefaultAdapter">
+                <generalization xmi:id="_6Ud59eO8EdyGNPaNHSGn_w" general="_6Ud26-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud59uO8EdyGNPaNHSGn_w" name="ds" visibility="private" type="_6Ud0m-O8EdyGNPaNHSGn_w" association="_6Ud8SuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud59-O8EdyGNPaNHSGn_w" name="getRecordset" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5-OO8EdyGNPaNHSGn_w" name="return" type="_6Ud0m-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5-eO8EdyGNPaNHSGn_w" name="start" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud5-uO8EdyGNPaNHSGn_w" name="stop" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud5--O8EdyGNPaNHSGn_w" name="getShape" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5_OO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud5_eO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud5_uO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6Ud5_-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud6AOO8EdyGNPaNHSGn_w" name="LayersIterator">
+                <ownedAttribute xmi:id="_6Ud6AeO8EdyGNPaNHSGn_w" name="layersList" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6AuO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud6A-O8EdyGNPaNHSGn_w" name="appendLayer" visibility="protected">
+                  <ownedParameter xmi:id="_6Ud6BOO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6BeO8EdyGNPaNHSGn_w" name="appendLayers" visibility="private">
+                  <ownedParameter xmi:id="_6Ud6BuO8EdyGNPaNHSGn_w" name="layers" type="_6Ud7SOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6B-O8EdyGNPaNHSGn_w" name="remove" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud6COO8EdyGNPaNHSGn_w" name="hasNext" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6CeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6CuO8EdyGNPaNHSGn_w" name="next" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6C-O8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6DOO8EdyGNPaNHSGn_w" name="nextLayer" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6DeO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6DuO8EdyGNPaNHSGn_w" name="evaluate" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6D-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6EOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud6EeO8EdyGNPaNHSGn_w" name="GraphicLayer">
+                <generalization xmi:id="_6Ud6EuO8EdyGNPaNHSGn_w" general="_6Ud1huO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6E-O8EdyGNPaNHSGn_w" name="graphics" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6FOO8EdyGNPaNHSGn_w" name="symbols" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6FeO8EdyGNPaNHSGn_w" name="fullExtent" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6FuO8EdyGNPaNHSGn_w" name="spatialIndex" visibility="private" type="_6Ud79OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6F-O8EdyGNPaNHSGn_w" name="selection" visibility="private" type="_6Ud3HOO8EdyGNPaNHSGn_w" association="_6Ud8TOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud6GOO8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6GeO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6GuO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6G-O8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6HOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6HeO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6HuO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6H-O8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6IOO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6IeO8EdyGNPaNHSGn_w" name="visitor" type="_6Ud77uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6IuO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6I-O8EdyGNPaNHSGn_w" name="print" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6JOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6JeO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6JuO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6J-O8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6KOO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6KeO8EdyGNPaNHSGn_w" name="drawGraphics" visibility="private">
+                  <ownedParameter xmi:id="_6Ud6KuO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6K-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6LOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6LeO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6LuO8EdyGNPaNHSGn_w" name="addSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6L-O8EdyGNPaNHSGn_w" name="newSymbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6MOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6MeO8EdyGNPaNHSGn_w" name="addGraphic" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6MuO8EdyGNPaNHSGn_w" name="g" type="_6UnZF-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6M-O8EdyGNPaNHSGn_w" name="insertGraphic" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6NOO8EdyGNPaNHSGn_w" name="position" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6NeO8EdyGNPaNHSGn_w" name="g" type="_6UnZF-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6NuO8EdyGNPaNHSGn_w" name="clearAllGraphics" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud6N-O8EdyGNPaNHSGn_w" name="clearSymbolsGraphics" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud6OOO8EdyGNPaNHSGn_w" name="getSelection" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6OeO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6OuO8EdyGNPaNHSGn_w" name="setSelection" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6O-O8EdyGNPaNHSGn_w" name="selection" type="_6Ud3HOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6POO8EdyGNPaNHSGn_w" name="queryByRect" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6PeO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6PuO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6P-O8EdyGNPaNHSGn_w" name="removeGraphic" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6QOO8EdyGNPaNHSGn_w" name="graphic" type="_6UnZF-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6QeO8EdyGNPaNHSGn_w" name="getGraphic" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6QuO8EdyGNPaNHSGn_w" name="idGraphic" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6Q-O8EdyGNPaNHSGn_w" name="return" type="_6UnZF-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6ROO8EdyGNPaNHSGn_w" name="getGraphicByObjectTag" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6ReO8EdyGNPaNHSGn_w" name="objectTag" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6RuO8EdyGNPaNHSGn_w" name="return" type="_6UnZF-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6R-O8EdyGNPaNHSGn_w" name="getNumGraphics" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6SOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6SeO8EdyGNPaNHSGn_w" name="reCalculateFullExtent" visibility="private"/>
+                <ownedOperation xmi:id="_6Ud6SuO8EdyGNPaNHSGn_w" name="inserGraphics" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6S-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6TOO8EdyGNPaNHSGn_w" name="c" type="_6Ud79eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6TeO8EdyGNPaNHSGn_w" name="removeGraphic" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6TuO8EdyGNPaNHSGn_w" name="graphicIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6T-O8EdyGNPaNHSGn_w" name="getSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6UOO8EdyGNPaNHSGn_w" name="sym" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6UeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud6UuO8EdyGNPaNHSGn_w" name="FLyrVectLinkProperties">
+                <generalization xmi:id="_6Ud6U-O8EdyGNPaNHSGn_w" general="_6Ud2suO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud6VOO8EdyGNPaNHSGn_w" name="getLink" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6VeO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6VuO8EdyGNPaNHSGn_w" name="point" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6V-O8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6WOO8EdyGNPaNHSGn_w" name="return" type="_6UUpzuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6WeO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6WuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud6W-O8EdyGNPaNHSGn_w" name="LayerFactory">
+                <ownedAttribute xmi:id="_6Ud6XOO8EdyGNPaNHSGn_w" name="solveListeners" visibility="private" type="_6UdsL-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6XeO8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6XuO8EdyGNPaNHSGn_w" name="driversPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6X-O8EdyGNPaNHSGn_w" name="writersPath" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6YOO8EdyGNPaNHSGn_w" name="driverManager" visibility="private" type="_6Ud79uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6YeO8EdyGNPaNHSGn_w" name="writerManager" visibility="private" type="_6Ud79-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6YuO8EdyGNPaNHSGn_w" name="dataSourceFactory" visibility="private" type="_6UdsM-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6Y-O8EdyGNPaNHSGn_w" name="sourceAdapter" visibility="private" type="_6UdzmOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6ZOO8EdyGNPaNHSGn_w" name="layerClassMapping" visibility="private" type="_6UdsL-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud6ZeO8EdyGNPaNHSGn_w" name="createLayer" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6ZuO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6Z-O8EdyGNPaNHSGn_w" name="driverName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6aOO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6aeO8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6auO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6a-O8EdyGNPaNHSGn_w" name="createLayer" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6bOO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6beO8EdyGNPaNHSGn_w" name="d" type="_6UUt_OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6buO8EdyGNPaNHSGn_w" name="f" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6b-O8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6cOO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6ceO8EdyGNPaNHSGn_w" name="tryToSolveError" visibility="private" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6cuO8EdyGNPaNHSGn_w" name="e" type="_6UKs5eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6c-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6dOO8EdyGNPaNHSGn_w" name="d" type="_6UdzluO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6deO8EdyGNPaNHSGn_w" name="return" type="_6Ud4YeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6duO8EdyGNPaNHSGn_w" name="addSolveErrorForLayer" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6d-O8EdyGNPaNHSGn_w" name="exception" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6eOO8EdyGNPaNHSGn_w" name="sel" type="_6Ud5HuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6eeO8EdyGNPaNHSGn_w" name="removeSolveErrorListener" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6euO8EdyGNPaNHSGn_w" name="exception" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6e-O8EdyGNPaNHSGn_w" name="createLayer" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6fOO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6feO8EdyGNPaNHSGn_w" name="d" type="_6UUuxeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6fuO8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6f-O8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6gOO8EdyGNPaNHSGn_w" name="createArcSDELayer" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6geO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6guO8EdyGNPaNHSGn_w" name="driver" type="_6UUrdeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6g-O8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6hOO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6heO8EdyGNPaNHSGn_w" name="createLayer" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6huO8EdyGNPaNHSGn_w" name="driver" type="_6UUrdeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6h-O8EdyGNPaNHSGn_w" name="host" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6iOO8EdyGNPaNHSGn_w" name="port" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6ieO8EdyGNPaNHSGn_w" name="user" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6iuO8EdyGNPaNHSGn_w" name="password" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6i-O8EdyGNPaNHSGn_w" name="dbName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6jOO8EdyGNPaNHSGn_w" name="tableName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6jeO8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6juO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6j-O8EdyGNPaNHSGn_w" name="createDBLayer" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6kOO8EdyGNPaNHSGn_w" name="driver" type="_6UUrdeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6keO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6kuO8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6k-O8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6lOO8EdyGNPaNHSGn_w" name="createDisconnectedDBLayer" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6leO8EdyGNPaNHSGn_w" name="driver" type="_6UUuOeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6luO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6l-O8EdyGNPaNHSGn_w" name="proj" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6mOO8EdyGNPaNHSGn_w" name="listener" type="_6UUeGeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6meO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6muO8EdyGNPaNHSGn_w" name="getDM" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6m-O8EdyGNPaNHSGn_w" name="return" type="_6Ud79uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6nOO8EdyGNPaNHSGn_w" name="getWM" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6neO8EdyGNPaNHSGn_w" name="return" type="_6Ud79-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6nuO8EdyGNPaNHSGn_w" name="initializeDriverManager" visibility="private" isStatic="true"/>
+                <ownedOperation xmi:id="_6Ud6n-O8EdyGNPaNHSGn_w" name="initializeWriterManager" visibility="private" isStatic="true"/>
+                <ownedOperation xmi:id="_6Ud6oOO8EdyGNPaNHSGn_w" name="setDriversPath" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6oeO8EdyGNPaNHSGn_w" name="path" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6ouO8EdyGNPaNHSGn_w" name="setWritersPath" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6o-O8EdyGNPaNHSGn_w" name="path" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6pOO8EdyGNPaNHSGn_w" name="getDataSourceFactory" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6peO8EdyGNPaNHSGn_w" name="return" type="_6UdsM-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6puO8EdyGNPaNHSGn_w" name="initialize" visibility="public" isStatic="true"/>
+                <ownedOperation xmi:id="_6Ud6p-O8EdyGNPaNHSGn_w" name="registerLayerClassForName" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6qOO8EdyGNPaNHSGn_w" name="originalLayerClassName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6qeO8EdyGNPaNHSGn_w" name="layerClassToUse" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6quO8EdyGNPaNHSGn_w" name="unregisterLayerClassForName" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6q-O8EdyGNPaNHSGn_w" name="originalLayerClassName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6rOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6reO8EdyGNPaNHSGn_w" name="getLayerClassForLayerClassName" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6ruO8EdyGNPaNHSGn_w" name="layerClassName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6r-O8EdyGNPaNHSGn_w" name="return" type="_6UUiGOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud6sOO8EdyGNPaNHSGn_w" name="DifferentVersionException">
+                <generalization xmi:id="_6Ud6seO8EdyGNPaNHSGn_w" general="_6UnhhOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud6suO8EdyGNPaNHSGn_w" name="FLyrText" clientDependency="_6Ud6t-O8EdyGNPaNHSGn_w">
+                <generalization xmi:id="_6Ud6s-O8EdyGNPaNHSGn_w" general="_6Ud1huO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6tOO8EdyGNPaNHSGn_w" name="m_labels" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6teO8EdyGNPaNHSGn_w" name="legend" visibility="private" type="_6UnbGeO8EdyGNPaNHSGn_w" association="_6Ud8TuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud6tuO8EdyGNPaNHSGn_w" name="assocLyrVect" visibility="private" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6Ud8UOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Ud6t-O8EdyGNPaNHSGn_w" name="ClassifiableVectorial" supplier="_6Ud7aOO8EdyGNPaNHSGn_w" client="_6Ud6suO8EdyGNPaNHSGn_w" contract="_6Ud7aOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud6uOO8EdyGNPaNHSGn_w" name="getFullExtent" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6ueO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6uuO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6u-O8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6vOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6veO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6vuO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6v-O8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6wOO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6weO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6wuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6w-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6xOO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6xeO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6xuO8EdyGNPaNHSGn_w" name="setLegend" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6x-O8EdyGNPaNHSGn_w" name="r" type="_6UnbGeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6yOO8EdyGNPaNHSGn_w" name="addLegendListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6yeO8EdyGNPaNHSGn_w" name="listener" type="_6UnbN-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6yuO8EdyGNPaNHSGn_w" name="removeLegendListener" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6y-O8EdyGNPaNHSGn_w" name="listener" type="_6UnbN-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6zOO8EdyGNPaNHSGn_w" name="getLegend" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6zeO8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6zuO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6z-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud60OO8EdyGNPaNHSGn_w" name="LayerListener">
+                <ownedOperation xmi:id="_6Ud60eO8EdyGNPaNHSGn_w" name="visibilityChanged" visibility="public">
+                  <ownedParameter xmi:id="_6Ud60uO8EdyGNPaNHSGn_w" name="e" type="_6Ud0BuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud60-O8EdyGNPaNHSGn_w" name="activationChanged" visibility="public">
+                  <ownedParameter xmi:id="_6Ud61OO8EdyGNPaNHSGn_w" name="e" type="_6Ud0BuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud61eO8EdyGNPaNHSGn_w" name="nameChanged" visibility="public">
+                  <ownedParameter xmi:id="_6Ud61uO8EdyGNPaNHSGn_w" name="e" type="_6Ud0BuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud61-O8EdyGNPaNHSGn_w" name="editionChanged" visibility="public">
+                  <ownedParameter xmi:id="_6Ud62OO8EdyGNPaNHSGn_w" name="e" type="_6Ud0BuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud62eO8EdyGNPaNHSGn_w" name="MappingAnnotation">
+                <ownedAttribute xmi:id="_6Ud62uO8EdyGNPaNHSGn_w" name="columnText" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud62-O8EdyGNPaNHSGn_w" name="columnRotate" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud63OO8EdyGNPaNHSGn_w" name="columnColor" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud63eO8EdyGNPaNHSGn_w" name="columnHeight" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud63uO8EdyGNPaNHSGn_w" name="columnTypeFont" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud63-O8EdyGNPaNHSGn_w" name="columnStyleFont" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud64OO8EdyGNPaNHSGn_w" name="getColumnColor" visibility="public">
+                  <ownedParameter xmi:id="_6Ud64eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud64uO8EdyGNPaNHSGn_w" name="setColumnColor" visibility="public">
+                  <ownedParameter xmi:id="_6Ud64-O8EdyGNPaNHSGn_w" name="columnColor" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud65OO8EdyGNPaNHSGn_w" name="getColumnHeight" visibility="public">
+                  <ownedParameter xmi:id="_6Ud65eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud65uO8EdyGNPaNHSGn_w" name="setColumnHeight" visibility="public">
+                  <ownedParameter xmi:id="_6Ud65-O8EdyGNPaNHSGn_w" name="columnHeight" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud66OO8EdyGNPaNHSGn_w" name="getColumnRotate" visibility="public">
+                  <ownedParameter xmi:id="_6Ud66eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud66uO8EdyGNPaNHSGn_w" name="setColumnRotate" visibility="public">
+                  <ownedParameter xmi:id="_6Ud66-O8EdyGNPaNHSGn_w" name="columnRotate" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud67OO8EdyGNPaNHSGn_w" name="getColumnStyleFont" visibility="public">
+                  <ownedParameter xmi:id="_6Ud67eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud67uO8EdyGNPaNHSGn_w" name="setColumnStyleFont" visibility="public">
+                  <ownedParameter xmi:id="_6Ud67-O8EdyGNPaNHSGn_w" name="columnStyleFont" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud68OO8EdyGNPaNHSGn_w" name="getColumnText" visibility="public">
+                  <ownedParameter xmi:id="_6Ud68eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud68uO8EdyGNPaNHSGn_w" name="setColumnText" visibility="public">
+                  <ownedParameter xmi:id="_6Ud68-O8EdyGNPaNHSGn_w" name="columnText" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud69OO8EdyGNPaNHSGn_w" name="getColumnTypeFont" visibility="public">
+                  <ownedParameter xmi:id="_6Ud69eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud69uO8EdyGNPaNHSGn_w" name="setColumnTypeFont" visibility="public">
+                  <ownedParameter xmi:id="_6Ud69-O8EdyGNPaNHSGn_w" name="columnTypeFont" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6-OO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Ud6-eO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud6-uO8EdyGNPaNHSGn_w" name="createFromXML" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Ud6--O8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud6_OO8EdyGNPaNHSGn_w" name="return" type="_6Ud62eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6Ud6_eO8EdyGNPaNHSGn_w" name="layerOperations">
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud6_uO8EdyGNPaNHSGn_w" name="Selectable">
+                  <ownedOperation xmi:id="_6Ud6_-O8EdyGNPaNHSGn_w" name="setSelection">
+                    <ownedParameter xmi:id="_6Ud7AOO8EdyGNPaNHSGn_w" name="selection" type="_6Ud3HOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7AeO8EdyGNPaNHSGn_w" name="isSelected">
+                    <ownedParameter xmi:id="_6Ud7AuO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7A-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7BOO8EdyGNPaNHSGn_w" name="clearSelection"/>
+                  <ownedOperation xmi:id="_6Ud7BeO8EdyGNPaNHSGn_w" name="getSelection">
+                    <ownedParameter xmi:id="_6Ud7BuO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7B-O8EdyGNPaNHSGn_w" name="fireSelectionEvents"/>
+                  <ownedOperation xmi:id="_6Ud7COO8EdyGNPaNHSGn_w" name="addSelectionListener" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7CeO8EdyGNPaNHSGn_w" name="listener" type="_6Ud2fuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7CuO8EdyGNPaNHSGn_w" name="removeSelectionListener" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7C-O8EdyGNPaNHSGn_w" name="listener" type="_6Ud2fuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud7DOO8EdyGNPaNHSGn_w" name="SingleLayer">
+                  <ownedOperation xmi:id="_6Ud7DeO8EdyGNPaNHSGn_w" name="getSource" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7DuO8EdyGNPaNHSGn_w" name="return" type="_6Ud2MeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7D-O8EdyGNPaNHSGn_w" name="setSource" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7EOO8EdyGNPaNHSGn_w" name="va" type="_6Ud2MeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7EeO8EdyGNPaNHSGn_w" name="getStrategy" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7EuO8EdyGNPaNHSGn_w" name="return" type="_6Ud88eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7E-O8EdyGNPaNHSGn_w" name="setStrategy" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7FOO8EdyGNPaNHSGn_w" name="s" type="_6Ud88eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud7FeO8EdyGNPaNHSGn_w" name="Classifiable">
+                  <ownedOperation xmi:id="_6Ud7FuO8EdyGNPaNHSGn_w" name="addLegendListener">
+                    <ownedParameter xmi:id="_6Ud7F-O8EdyGNPaNHSGn_w" name="listener" type="_6UnbN-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7GOO8EdyGNPaNHSGn_w" name="removeLegendListener">
+                    <ownedParameter xmi:id="_6Ud7GeO8EdyGNPaNHSGn_w" name="listener" type="_6UnbN-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7GuO8EdyGNPaNHSGn_w" name="getLegend" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7G-O8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7HOO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7HeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud7HuO8EdyGNPaNHSGn_w" name="VectorialData">
+                  <ownedOperation xmi:id="_6Ud7H-O8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7IOO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7IeO8EdyGNPaNHSGn_w" name="subset" type="_6Ud3HOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7IuO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7I-O8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7JOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7JeO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7JuO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud7J-O8EdyGNPaNHSGn_w" name="XMLItem">
+                  <ownedOperation xmi:id="_6Ud7KOO8EdyGNPaNHSGn_w" name="parse" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7KeO8EdyGNPaNHSGn_w" name="handler" type="_6Ud74uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7KuO8EdyGNPaNHSGn_w" name="getLayer" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7K-O8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud7LOO8EdyGNPaNHSGn_w" name="ClassifiableRaster">
+                  <generalization xmi:id="_6Ud7LeO8EdyGNPaNHSGn_w" general="_6Ud7FeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud7LuO8EdyGNPaNHSGn_w" name="setLegend">
+                    <ownedParameter xmi:id="_6Ud7L-O8EdyGNPaNHSGn_w" name="r" type="_6UnY8OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7MOO8EdyGNPaNHSGn_w" name="getShapeType">
+                    <ownedParameter xmi:id="_6Ud7MeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud7MuO8EdyGNPaNHSGn_w" name="AlphanumericData">
+                  <ownedOperation xmi:id="_6Ud7M-O8EdyGNPaNHSGn_w" name="getRecordset">
+                    <ownedParameter xmi:id="_6Ud7NOO8EdyGNPaNHSGn_w" name="return" type="_6Ud0m-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud7NeO8EdyGNPaNHSGn_w" name="IHasImageLegend">
+                  <ownedOperation xmi:id="_6Ud7NuO8EdyGNPaNHSGn_w" name="getImageLegend">
+                    <ownedParameter xmi:id="_6Ud7N-O8EdyGNPaNHSGn_w" name="return" type="_6UUpzeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7OOO8EdyGNPaNHSGn_w" name="getPathImage">
+                    <ownedParameter xmi:id="_6Ud7OeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud7OuO8EdyGNPaNHSGn_w" name="InfoByPoint">
+                  <ownedOperation xmi:id="_6Ud7O-O8EdyGNPaNHSGn_w" name="getInfo" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7POO8EdyGNPaNHSGn_w" name="p" type="_6UUiRuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7PeO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7PuO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7P-O8EdyGNPaNHSGn_w" name="return" type="_6Ud7J-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud7QOO8EdyGNPaNHSGn_w" name="VectorialXMLItem" clientDependency="_6Ud7Q-O8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6Ud7QeO8EdyGNPaNHSGn_w" name="bitset" visibility="private" type="_6UdsG-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud7QuO8EdyGNPaNHSGn_w" name="layer" visibility="private" type="_6Ud5J-O8EdyGNPaNHSGn_w" association="_6Ud7w-O8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6Ud7Q-O8EdyGNPaNHSGn_w" name="XMLItem" supplier="_6Ud7J-O8EdyGNPaNHSGn_w" client="_6Ud7QOO8EdyGNPaNHSGn_w" contract="_6Ud7J-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud7ROO8EdyGNPaNHSGn_w" name="getLayer" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7ReO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7RuO8EdyGNPaNHSGn_w" name="parse" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7R-O8EdyGNPaNHSGn_w" name="handler" type="_6Ud74uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud7SOO8EdyGNPaNHSGn_w" name="LayerCollection">
+                  <ownedOperation xmi:id="_6Ud7SeO8EdyGNPaNHSGn_w" name="addLayerCollectionListener" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7SuO8EdyGNPaNHSGn_w" name="listener" type="_6Udz4OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7S-O8EdyGNPaNHSGn_w" name="removeLayerCollectionListener" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7TOO8EdyGNPaNHSGn_w" name="listener" type="_6Udz4OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7TeO8EdyGNPaNHSGn_w" name="addLayer" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7TuO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7T-O8EdyGNPaNHSGn_w" name="moveTo" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7UOO8EdyGNPaNHSGn_w" name="from" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7UeO8EdyGNPaNHSGn_w" name="to" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7UuO8EdyGNPaNHSGn_w" name="removeLayer" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7U-O8EdyGNPaNHSGn_w" name="lyr" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7VOO8EdyGNPaNHSGn_w" name="removeLayer" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7VeO8EdyGNPaNHSGn_w" name="idLayer" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7VuO8EdyGNPaNHSGn_w" name="removeLayer" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7V-O8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7WOO8EdyGNPaNHSGn_w" name="getVisibles" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7WeO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7WuO8EdyGNPaNHSGn_w" name="getActives" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7W-O8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7XOO8EdyGNPaNHSGn_w" name="getLayer" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7XeO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7XuO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7X-O8EdyGNPaNHSGn_w" name="getLayer" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7YOO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7YeO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7YuO8EdyGNPaNHSGn_w" name="getLayersCount" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7Y-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7ZOO8EdyGNPaNHSGn_w" name="setAllActives" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7ZeO8EdyGNPaNHSGn_w" name="active" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7ZuO8EdyGNPaNHSGn_w" name="setAllVisibles" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7Z-O8EdyGNPaNHSGn_w" name="visible" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud7aOO8EdyGNPaNHSGn_w" name="ClassifiableVectorial">
+                  <generalization xmi:id="_6Ud7aeO8EdyGNPaNHSGn_w" general="_6Ud7FeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud7auO8EdyGNPaNHSGn_w" name="setLegend">
+                    <ownedParameter xmi:id="_6Ud7a-O8EdyGNPaNHSGn_w" name="r" type="_6UnbGeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud7bOO8EdyGNPaNHSGn_w" name="ComposedLayer">
+                  <ownedAttribute xmi:id="_6Ud7beO8EdyGNPaNHSGn_w" name="pendingLayersEvents" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud7buO8EdyGNPaNHSGn_w" name="mapContext" type="_6UKuxOO8EdyGNPaNHSGn_w" association="_6Ud7xeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud7b-O8EdyGNPaNHSGn_w" name="setMapContext" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7cOO8EdyGNPaNHSGn_w" name="mapContext" type="_6UKuxOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7ceO8EdyGNPaNHSGn_w" name="canAdd" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6Ud7cuO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7c-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7dOO8EdyGNPaNHSGn_w" name="add" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7deO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7duO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7d-O8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7eOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7eeO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7euO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7e-O8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7fOO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7feO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7fuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7f-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7gOO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7geO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7guO8EdyGNPaNHSGn_w" name="fireLayerDrawingEvents" visibility="private">
+                    <ownedParameter xmi:id="_6Ud7g-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7hOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7heO8EdyGNPaNHSGn_w" name="doAdd" visibility="protected" isAbstract="true">
+                    <ownedParameter xmi:id="_6Ud7huO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7h-O8EdyGNPaNHSGn_w" name="doDraw" visibility="protected" isAbstract="true">
+                    <ownedParameter xmi:id="_6Ud7iOO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7ieO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7iuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7i-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7jOO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7jeO8EdyGNPaNHSGn_w" name="doPrint" visibility="protected" isAbstract="true">
+                    <ownedParameter xmi:id="_6Ud7juO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7j-O8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7kOO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7keO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7kuO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud7k-O8EdyGNPaNHSGn_w" name="RandomVectorialData">
+                  <ownedOperation xmi:id="_6Ud7lOO8EdyGNPaNHSGn_w" name="createSpatialIndex"/>
+                  <ownedOperation xmi:id="_6Ud7leO8EdyGNPaNHSGn_w" name="deleteSpatialIndex"/>
+                  <ownedOperation xmi:id="_6Ud7luO8EdyGNPaNHSGn_w" name="queryByRect">
+                    <ownedParameter xmi:id="_6Ud7l-O8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7mOO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud7meO8EdyGNPaNHSGn_w" name="StringXMLItem" clientDependency="_6Ud7nOO8EdyGNPaNHSGn_w">
+                  <generalization xmi:id="_6Ud7muO8EdyGNPaNHSGn_w" general="_6Ud7wuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud7m-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w" association="_6Ud7x-O8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6Ud7nOO8EdyGNPaNHSGn_w" name="XMLItem" supplier="_6Ud7J-O8EdyGNPaNHSGn_w" client="_6Ud7meO8EdyGNPaNHSGn_w" contract="_6Ud7J-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud7neO8EdyGNPaNHSGn_w" name="getLayer" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7nuO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7n-O8EdyGNPaNHSGn_w" name="parse" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7oOO8EdyGNPaNHSGn_w" name="handler" type="_6Ud74uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud7oeO8EdyGNPaNHSGn_w" name="FilterContentHandler" visibility="private">
+                  <ownedAttribute xmi:id="_6Ud7ouO8EdyGNPaNHSGn_w" name="handler" visibility="private" type="_6Ud74uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud7o-O8EdyGNPaNHSGn_w" name="setDocumentLocator" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7pOO8EdyGNPaNHSGn_w" name="arg0" type="_6Ud78eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7peO8EdyGNPaNHSGn_w" name="startDocument" visibility="public"/>
+                  <ownedOperation xmi:id="_6Ud7puO8EdyGNPaNHSGn_w" name="endDocument" visibility="public"/>
+                  <ownedOperation xmi:id="_6Ud7p-O8EdyGNPaNHSGn_w" name="startPrefixMapping" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7qOO8EdyGNPaNHSGn_w" name="arg0" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7qeO8EdyGNPaNHSGn_w" name="arg1" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7quO8EdyGNPaNHSGn_w" name="endPrefixMapping" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7q-O8EdyGNPaNHSGn_w" name="arg0" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7rOO8EdyGNPaNHSGn_w" name="startElement" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7reO8EdyGNPaNHSGn_w" name="arg0" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7ruO8EdyGNPaNHSGn_w" name="arg1" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7r-O8EdyGNPaNHSGn_w" name="arg2" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7sOO8EdyGNPaNHSGn_w" name="arg3" type="_6Ud78uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7seO8EdyGNPaNHSGn_w" name="endElement" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7suO8EdyGNPaNHSGn_w" name="arg0" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7s-O8EdyGNPaNHSGn_w" name="arg1" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7tOO8EdyGNPaNHSGn_w" name="arg2" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7teO8EdyGNPaNHSGn_w" name="characters" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7tuO8EdyGNPaNHSGn_w" name="arg0" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7t-O8EdyGNPaNHSGn_w" name="arg1" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7uOO8EdyGNPaNHSGn_w" name="arg2" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7ueO8EdyGNPaNHSGn_w" name="ignorableWhitespace" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7uuO8EdyGNPaNHSGn_w" name="arg0" type="_6UKs0-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7u-O8EdyGNPaNHSGn_w" name="arg1" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7vOO8EdyGNPaNHSGn_w" name="arg2" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7veO8EdyGNPaNHSGn_w" name="processingInstruction" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7vuO8EdyGNPaNHSGn_w" name="arg0" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud7v-O8EdyGNPaNHSGn_w" name="arg1" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud7wOO8EdyGNPaNHSGn_w" name="skippedEntity" visibility="public">
+                    <ownedParameter xmi:id="_6Ud7weO8EdyGNPaNHSGn_w" name="arg0" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud7wuO8EdyGNPaNHSGn_w" name="TextXMLContent"/>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Ud7w-O8EdyGNPaNHSGn_w" memberEnd="_6Ud7QuO8EdyGNPaNHSGn_w _6Ud7xOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6Ud7xOO8EdyGNPaNHSGn_w" name="target" type="_6Ud7QOO8EdyGNPaNHSGn_w" association="_6Ud7w-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Ud7xeO8EdyGNPaNHSGn_w" memberEnd="_6Ud7buO8EdyGNPaNHSGn_w _6Ud7xuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6Ud7xuO8EdyGNPaNHSGn_w" name="target" type="_6Ud7bOO8EdyGNPaNHSGn_w" association="_6Ud7xeO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Ud7x-O8EdyGNPaNHSGn_w" memberEnd="_6Ud7m-O8EdyGNPaNHSGn_w _6Ud7yOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6Ud7yOO8EdyGNPaNHSGn_w" name="target" type="_6Ud7meO8EdyGNPaNHSGn_w" association="_6Ud7x-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud7yeO8EdyGNPaNHSGn_w" name="LayersIteratorTest">
+                <generalization xmi:id="_6Ud7yuO8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud7y-O8EdyGNPaNHSGn_w" name="fwAndamiDriverPath" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud7zOO8EdyGNPaNHSGn_w" name="baseDataPath" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud7zeO8EdyGNPaNHSGn_w" name="baseDriversPath" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud7zuO8EdyGNPaNHSGn_w" name="shpDriverName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Ud7z-O8EdyGNPaNHSGn_w" name="projectionDefault" visibility="private" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud70OO8EdyGNPaNHSGn_w" name="setUp" visibility="protected"/>
+                <ownedOperation xmi:id="_6Ud70eO8EdyGNPaNHSGn_w" name="newMapContext" visibility="private">
+                  <ownedParameter xmi:id="_6Ud70uO8EdyGNPaNHSGn_w" name="return" type="_6UKuxOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud70-O8EdyGNPaNHSGn_w" name="newShpLayerToLayers" visibility="private">
+                  <ownedParameter xmi:id="_6Ud71OO8EdyGNPaNHSGn_w" name="shpFileName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud71eO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud71uO8EdyGNPaNHSGn_w" name="testLayerIterator" visibility="private">
+                  <ownedParameter xmi:id="_6Ud71-O8EdyGNPaNHSGn_w" name="iter" type="_6Ud6AOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud72OO8EdyGNPaNHSGn_w" name="layers" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud72eO8EdyGNPaNHSGn_w" name="test1" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud72uO8EdyGNPaNHSGn_w" name="test2" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud72-O8EdyGNPaNHSGn_w" name="test3" visibility="public"/>
+                <ownedOperation xmi:id="_6Ud73OO8EdyGNPaNHSGn_w" name="test4" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud73eO8EdyGNPaNHSGn_w" name="myLayerIteratorFLayers">
+                <generalization xmi:id="_6Ud73uO8EdyGNPaNHSGn_w" general="_6Ud6AOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud73-O8EdyGNPaNHSGn_w" name="evaluate" visibility="public">
+                  <ownedParameter xmi:id="_6Ud74OO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Ud74eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud74uO8EdyGNPaNHSGn_w" name="ContentHandler"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud74-O8EdyGNPaNHSGn_w" name="SourceInfo"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud75OO8EdyGNPaNHSGn_w" name="Memento"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud75eO8EdyGNPaNHSGn_w" name="ValueCollection"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud75uO8EdyGNPaNHSGn_w" name="IDataSourceListener"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud75-O8EdyGNPaNHSGn_w" name="MapLayer"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud76OO8EdyGNPaNHSGn_w" name="LiteRenderer2"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud76eO8EdyGNPaNHSGn_w" name="ImageIcon"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud76uO8EdyGNPaNHSGn_w" name="DataStore"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud76-O8EdyGNPaNHSGn_w" name="FilterFactory"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud77OO8EdyGNPaNHSGn_w" name="Quadtree"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud77eO8EdyGNPaNHSGn_w" name="Envelope"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud77uO8EdyGNPaNHSGn_w" name="ItemVisitor"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud77-O8EdyGNPaNHSGn_w" name="DriverEvent"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud78OO8EdyGNPaNHSGn_w" name="java.util.BitSet"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud78eO8EdyGNPaNHSGn_w" name="Locator"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud78uO8EdyGNPaNHSGn_w" name="Attributes"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud78-O8EdyGNPaNHSGn_w" name="CancellableMonitorable"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud79OO8EdyGNPaNHSGn_w" name="SpatialIndex"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud79eO8EdyGNPaNHSGn_w" name="Collection"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud79uO8EdyGNPaNHSGn_w" name="DriverManager"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud79-O8EdyGNPaNHSGn_w" name="WriterManager"/>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud7-OO8EdyGNPaNHSGn_w" memberEnd="_6Udz0-O8EdyGNPaNHSGn_w _6Ud7-eO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud7-eO8EdyGNPaNHSGn_w" name="target" type="_6Udz0eO8EdyGNPaNHSGn_w" association="_6Ud7-OO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud7-uO8EdyGNPaNHSGn_w" memberEnd="_6Udz1eO8EdyGNPaNHSGn_w _6Ud7--O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud7--O8EdyGNPaNHSGn_w" name="target" type="_6Udz0eO8EdyGNPaNHSGn_w" association="_6Ud7-uO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud7_OO8EdyGNPaNHSGn_w" memberEnd="_6Ud0CeO8EdyGNPaNHSGn_w _6Ud7_eO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud7_eO8EdyGNPaNHSGn_w" name="target" type="_6Ud0BuO8EdyGNPaNHSGn_w" association="_6Ud7_OO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud7_uO8EdyGNPaNHSGn_w" memberEnd="_6Ud0MuO8EdyGNPaNHSGn_w _6Ud7_-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud7_-O8EdyGNPaNHSGn_w" name="target" type="_6Ud0KuO8EdyGNPaNHSGn_w" association="_6Ud7_uO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8AOO8EdyGNPaNHSGn_w" memberEnd="_6Ud0M-O8EdyGNPaNHSGn_w _6Ud8AeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8AeO8EdyGNPaNHSGn_w" name="target" type="_6Ud0KuO8EdyGNPaNHSGn_w" association="_6Ud8AOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8AuO8EdyGNPaNHSGn_w" memberEnd="_6Ud0VuO8EdyGNPaNHSGn_w _6Ud8A-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8A-O8EdyGNPaNHSGn_w" name="target" type="_6Ud0SuO8EdyGNPaNHSGn_w" association="_6Ud8AuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8BOO8EdyGNPaNHSGn_w" memberEnd="_6Ud0V-O8EdyGNPaNHSGn_w _6Ud8BeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8BeO8EdyGNPaNHSGn_w" name="target" type="_6Ud0SuO8EdyGNPaNHSGn_w" association="_6Ud8BOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8BuO8EdyGNPaNHSGn_w" memberEnd="_6Ud0h-O8EdyGNPaNHSGn_w _6Ud8B-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8B-O8EdyGNPaNHSGn_w" name="target" type="_6Ud0g-O8EdyGNPaNHSGn_w" association="_6Ud8BuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8COO8EdyGNPaNHSGn_w" memberEnd="_6Ud0neO8EdyGNPaNHSGn_w _6Ud8CeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8CeO8EdyGNPaNHSGn_w" name="target" type="_6Ud0m-O8EdyGNPaNHSGn_w" association="_6Ud8COO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8CuO8EdyGNPaNHSGn_w" memberEnd="_6Ud1DuO8EdyGNPaNHSGn_w _6Ud8C-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8C-O8EdyGNPaNHSGn_w" name="target" type="_6Ud1CuO8EdyGNPaNHSGn_w" association="_6Ud8CuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8DOO8EdyGNPaNHSGn_w" memberEnd="_6Ud1IuO8EdyGNPaNHSGn_w _6Ud8DeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8DeO8EdyGNPaNHSGn_w" name="target" type="_6Ud1IeO8EdyGNPaNHSGn_w" association="_6Ud8DOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8DuO8EdyGNPaNHSGn_w" memberEnd="_6Ud1POO8EdyGNPaNHSGn_w _6Ud8D-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8D-O8EdyGNPaNHSGn_w" name="target" type="_6Ud1OOO8EdyGNPaNHSGn_w" association="_6Ud8DuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8EOO8EdyGNPaNHSGn_w" memberEnd="_6Ud1UuO8EdyGNPaNHSGn_w _6Ud8EeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8EeO8EdyGNPaNHSGn_w" name="target" type="_6Ud1S-O8EdyGNPaNHSGn_w" association="_6Ud8EOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8EuO8EdyGNPaNHSGn_w" memberEnd="_6Ud1WuO8EdyGNPaNHSGn_w _6Ud8E-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8E-O8EdyGNPaNHSGn_w" name="target" type="_6Ud1V-O8EdyGNPaNHSGn_w" association="_6Ud8EuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8FOO8EdyGNPaNHSGn_w" memberEnd="_6Ud1iOO8EdyGNPaNHSGn_w _6Ud8FeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8FeO8EdyGNPaNHSGn_w" name="target" type="_6Ud1huO8EdyGNPaNHSGn_w" association="_6Ud8FOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8FuO8EdyGNPaNHSGn_w" memberEnd="_6Ud1ieO8EdyGNPaNHSGn_w _6Ud8F-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8F-O8EdyGNPaNHSGn_w" name="target" type="_6Ud1huO8EdyGNPaNHSGn_w" association="_6Ud8FuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8GOO8EdyGNPaNHSGn_w" memberEnd="_6Ud1iuO8EdyGNPaNHSGn_w _6Ud8GeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8GeO8EdyGNPaNHSGn_w" name="target" type="_6Ud1huO8EdyGNPaNHSGn_w" association="_6Ud8GOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8GuO8EdyGNPaNHSGn_w" memberEnd="_6Ud1kuO8EdyGNPaNHSGn_w _6Ud8G-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8G-O8EdyGNPaNHSGn_w" name="target" type="_6Ud1huO8EdyGNPaNHSGn_w" association="_6Ud8GuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8HOO8EdyGNPaNHSGn_w" memberEnd="_6Ud1leO8EdyGNPaNHSGn_w _6Ud8HeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8HeO8EdyGNPaNHSGn_w" name="target" type="_6Ud1huO8EdyGNPaNHSGn_w" association="_6Ud8HOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8HuO8EdyGNPaNHSGn_w" memberEnd="_6Ud26OO8EdyGNPaNHSGn_w _6Ud8H-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8H-O8EdyGNPaNHSGn_w" name="target" type="_6Ud25uO8EdyGNPaNHSGn_w" association="_6Ud8HuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8IOO8EdyGNPaNHSGn_w" memberEnd="_6Ud27OO8EdyGNPaNHSGn_w _6Ud8IeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8IeO8EdyGNPaNHSGn_w" name="target" type="_6Ud26-O8EdyGNPaNHSGn_w" association="_6Ud8IOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8IuO8EdyGNPaNHSGn_w" memberEnd="_6Ud27eO8EdyGNPaNHSGn_w _6Ud8I-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8I-O8EdyGNPaNHSGn_w" name="target" type="_6Ud26-O8EdyGNPaNHSGn_w" association="_6Ud8IuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8JOO8EdyGNPaNHSGn_w" memberEnd="_6Ud3KeO8EdyGNPaNHSGn_w _6Ud8JeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8JeO8EdyGNPaNHSGn_w" name="target" type="_6Ud3J-O8EdyGNPaNHSGn_w" association="_6Ud8JOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8JuO8EdyGNPaNHSGn_w" memberEnd="_6Ud3LeO8EdyGNPaNHSGn_w _6Ud8J-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8J-O8EdyGNPaNHSGn_w" name="target" type="_6Ud3J-O8EdyGNPaNHSGn_w" association="_6Ud8JuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8KOO8EdyGNPaNHSGn_w" memberEnd="_6Ud3LuO8EdyGNPaNHSGn_w _6Ud8KeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8KeO8EdyGNPaNHSGn_w" name="target" type="_6Ud3J-O8EdyGNPaNHSGn_w" association="_6Ud8KOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8KuO8EdyGNPaNHSGn_w" memberEnd="_6Ud3buO8EdyGNPaNHSGn_w _6Ud8K-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8K-O8EdyGNPaNHSGn_w" name="target" type="_6Ud3aOO8EdyGNPaNHSGn_w" association="_6Ud8KuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8LOO8EdyGNPaNHSGn_w" memberEnd="_6Ud3cOO8EdyGNPaNHSGn_w _6Ud8LeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8LeO8EdyGNPaNHSGn_w" name="target" type="_6Ud3aOO8EdyGNPaNHSGn_w" association="_6Ud8LOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8LuO8EdyGNPaNHSGn_w" memberEnd="_6Ud4L-O8EdyGNPaNHSGn_w _6Ud8L-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8L-O8EdyGNPaNHSGn_w" name="target" type="_6Ud4LOO8EdyGNPaNHSGn_w" association="_6Ud8LuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8MOO8EdyGNPaNHSGn_w" memberEnd="_6Ud4ZuO8EdyGNPaNHSGn_w _6Ud8MeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8MeO8EdyGNPaNHSGn_w" name="target" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6Ud8MOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8MuO8EdyGNPaNHSGn_w" memberEnd="_6Ud4aOO8EdyGNPaNHSGn_w _6Ud8M-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8M-O8EdyGNPaNHSGn_w" name="target" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6Ud8MuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8NOO8EdyGNPaNHSGn_w" memberEnd="_6Ud4aeO8EdyGNPaNHSGn_w _6Ud8NeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8NeO8EdyGNPaNHSGn_w" name="target" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6Ud8NOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8NuO8EdyGNPaNHSGn_w" memberEnd="_6Ud4auO8EdyGNPaNHSGn_w _6Ud8N-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8N-O8EdyGNPaNHSGn_w" name="target" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6Ud8NuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8OOO8EdyGNPaNHSGn_w" memberEnd="_6Ud4a-O8EdyGNPaNHSGn_w _6Ud8OeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8OeO8EdyGNPaNHSGn_w" name="target" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6Ud8OOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8OuO8EdyGNPaNHSGn_w" memberEnd="_6Ud4beO8EdyGNPaNHSGn_w _6Ud8O-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8O-O8EdyGNPaNHSGn_w" name="target" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6Ud8OuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8POO8EdyGNPaNHSGn_w" memberEnd="_6Ud4ceO8EdyGNPaNHSGn_w _6Ud8PeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8PeO8EdyGNPaNHSGn_w" name="target" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6Ud8POO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8PuO8EdyGNPaNHSGn_w" memberEnd="_6Ud4cuO8EdyGNPaNHSGn_w _6Ud8P-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8P-O8EdyGNPaNHSGn_w" name="target" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6Ud8PuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8QOO8EdyGNPaNHSGn_w" memberEnd="_6Ud4dOO8EdyGNPaNHSGn_w _6Ud8QeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8QeO8EdyGNPaNHSGn_w" name="target" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6Ud8QOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8QuO8EdyGNPaNHSGn_w" memberEnd="_6Ud5r-O8EdyGNPaNHSGn_w _6Ud8Q-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8Q-O8EdyGNPaNHSGn_w" name="target" type="_6Ud5rOO8EdyGNPaNHSGn_w" association="_6Ud8QuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8ROO8EdyGNPaNHSGn_w" memberEnd="_6Ud5wOO8EdyGNPaNHSGn_w _6Ud8ReO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8ReO8EdyGNPaNHSGn_w" name="target" type="_6Ud5veO8EdyGNPaNHSGn_w" association="_6Ud8ROO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8RuO8EdyGNPaNHSGn_w" memberEnd="_6Ud5weO8EdyGNPaNHSGn_w _6Ud8R-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8R-O8EdyGNPaNHSGn_w" name="target" type="_6Ud5veO8EdyGNPaNHSGn_w" association="_6Ud8RuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8SOO8EdyGNPaNHSGn_w" memberEnd="_6Ud5wuO8EdyGNPaNHSGn_w _6Ud8SeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8SeO8EdyGNPaNHSGn_w" name="target" type="_6Ud5veO8EdyGNPaNHSGn_w" association="_6Ud8SOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8SuO8EdyGNPaNHSGn_w" memberEnd="_6Ud59uO8EdyGNPaNHSGn_w _6Ud8S-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8S-O8EdyGNPaNHSGn_w" name="target" type="_6Ud59OO8EdyGNPaNHSGn_w" association="_6Ud8SuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8TOO8EdyGNPaNHSGn_w" memberEnd="_6Ud6F-O8EdyGNPaNHSGn_w _6Ud8TeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8TeO8EdyGNPaNHSGn_w" name="target" type="_6Ud6EeO8EdyGNPaNHSGn_w" association="_6Ud8TOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8TuO8EdyGNPaNHSGn_w" memberEnd="_6Ud6teO8EdyGNPaNHSGn_w _6Ud8T-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8T-O8EdyGNPaNHSGn_w" name="target" type="_6Ud6suO8EdyGNPaNHSGn_w" association="_6Ud8TuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8UOO8EdyGNPaNHSGn_w" memberEnd="_6Ud6tuO8EdyGNPaNHSGn_w _6Ud8UeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Ud8UeO8EdyGNPaNHSGn_w" name="target" type="_6Ud6suO8EdyGNPaNHSGn_w" association="_6Ud8UOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6Ud8UuO8EdyGNPaNHSGn_w" name="operations">
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Ud8U-O8EdyGNPaNHSGn_w" name="Cancel">
+                <ownedAttribute xmi:id="_6Ud8VOO8EdyGNPaNHSGn_w" name="cancel" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Ud8VeO8EdyGNPaNHSGn_w" name="setCanceled" visibility="public">
+                  <ownedParameter xmi:id="_6Ud8VuO8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Ud8V-O8EdyGNPaNHSGn_w" name="isCanceled" visibility="public">
+                  <ownedParameter xmi:id="_6Ud8WOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6Ud8WeO8EdyGNPaNHSGn_w" name="arcview">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud8WuO8EdyGNPaNHSGn_w" name="ArcJoin">
+                  <ownedOperation xmi:id="_6Ud8W-O8EdyGNPaNHSGn_w" name="evaluate" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8XOO8EdyGNPaNHSGn_w" name="tables" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8XeO8EdyGNPaNHSGn_w" name="values" type="_6Ud8guO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8XuO8EdyGNPaNHSGn_w" name="return" type="_6Ud8g-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8X-O8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8YOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud8YeO8EdyGNPaNHSGn_w" name="ArcJoinDataSource">
+                  <generalization xmi:id="_6Ud8YuO8EdyGNPaNHSGn_w" general="_6Ud8g-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud8Y-O8EdyGNPaNHSGn_w" name="source" visibility="private" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud8ZOO8EdyGNPaNHSGn_w" name="linked" visibility="private" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud8ZeO8EdyGNPaNHSGn_w" name="relation" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud8ZuO8EdyGNPaNHSGn_w" name="linkFieldindex" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud8Z-O8EdyGNPaNHSGn_w" name="start" visibility="public"/>
+                  <ownedOperation xmi:id="_6Ud8aOO8EdyGNPaNHSGn_w" name="stop" visibility="public"/>
+                  <ownedOperation xmi:id="_6Ud8aeO8EdyGNPaNHSGn_w" name="getFieldIndexByName" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8auO8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8a-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8bOO8EdyGNPaNHSGn_w" name="getFieldValue" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8beO8EdyGNPaNHSGn_w" name="rowIndex" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8buO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8b-O8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8cOO8EdyGNPaNHSGn_w" name="getFieldCount" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8ceO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8cuO8EdyGNPaNHSGn_w" name="getFieldName" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8c-O8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8dOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8deO8EdyGNPaNHSGn_w" name="getRowCount" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8duO8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8d-O8EdyGNPaNHSGn_w" name="getFieldType" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8eOO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8eeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8euO8EdyGNPaNHSGn_w" name="getMemento" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8e-O8EdyGNPaNHSGn_w" name="return" type="_6Ud75OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8fOO8EdyGNPaNHSGn_w" name="getFieldWidth" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8feO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8fuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8f-O8EdyGNPaNHSGn_w" name="isVirtualField" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8gOO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8geO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud8guO8EdyGNPaNHSGn_w" name="Expression"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6Ud8g-O8EdyGNPaNHSGn_w" name="OperationDataSource"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6Ud8hOO8EdyGNPaNHSGn_w" name="selection">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud8heO8EdyGNPaNHSGn_w" name="LinkSelectionListener" clientDependency="_6Ud8iuO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6Ud8huO8EdyGNPaNHSGn_w" name="modelo1" visibility="private" type="_6Ud0m-O8EdyGNPaNHSGn_w" association="_6Ud8luO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud8h-O8EdyGNPaNHSGn_w" name="modelo2" visibility="private" type="_6Ud0m-O8EdyGNPaNHSGn_w" association="_6Ud8mOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud8iOO8EdyGNPaNHSGn_w" name="index1" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud8ieO8EdyGNPaNHSGn_w" name="index2" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6Ud8iuO8EdyGNPaNHSGn_w" name="SelectionListener" supplier="_6Ud2fuO8EdyGNPaNHSGn_w" client="_6Ud8heO8EdyGNPaNHSGn_w" contract="_6Ud2fuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud8i-O8EdyGNPaNHSGn_w" name="selectionChanged" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8jOO8EdyGNPaNHSGn_w" name="e" type="_6Ud2geO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud8jeO8EdyGNPaNHSGn_w" name="Record">
+                  <ownedOperation xmi:id="_6Ud8juO8EdyGNPaNHSGn_w" name="getFieldCount">
+                    <ownedParameter xmi:id="_6Ud8j-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8kOO8EdyGNPaNHSGn_w" name="getFieldName">
+                    <ownedParameter xmi:id="_6Ud8keO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8kuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8k-O8EdyGNPaNHSGn_w" name="getFieldValue">
+                    <ownedParameter xmi:id="_6Ud8lOO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8leO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8luO8EdyGNPaNHSGn_w" memberEnd="_6Ud8huO8EdyGNPaNHSGn_w _6Ud8l-O8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6Ud8l-O8EdyGNPaNHSGn_w" name="target" type="_6Ud8heO8EdyGNPaNHSGn_w" association="_6Ud8luO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Ud8mOO8EdyGNPaNHSGn_w" memberEnd="_6Ud8h-O8EdyGNPaNHSGn_w _6Ud8meO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6Ud8meO8EdyGNPaNHSGn_w" name="target" type="_6Ud8heO8EdyGNPaNHSGn_w" association="_6Ud8mOO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6Ud8muO8EdyGNPaNHSGn_w" name="strategies">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud8m-O8EdyGNPaNHSGn_w" name="MemoryShapeInfo" clientDependency="_6Ud8neO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6Ud8nOO8EdyGNPaNHSGn_w" name="infos" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6Ud8neO8EdyGNPaNHSGn_w" name="ShapeInfo" supplier="_6Ud9K-O8EdyGNPaNHSGn_w" client="_6Ud8m-O8EdyGNPaNHSGn_w" contract="_6Ud9K-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud8nuO8EdyGNPaNHSGn_w" name="addShapeInfo" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8n-O8EdyGNPaNHSGn_w" name="boundingBox" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8oOO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8oeO8EdyGNPaNHSGn_w" name="setShapeInfo" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8ouO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8o-O8EdyGNPaNHSGn_w" name="boundingBox" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8pOO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8peO8EdyGNPaNHSGn_w" name="getBoundingBox" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8puO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8p-O8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8qOO8EdyGNPaNHSGn_w" name="getType" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8qeO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8quO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud8q-O8EdyGNPaNHSGn_w" name="Info">
+                  <ownedAttribute xmi:id="_6Ud8rOO8EdyGNPaNHSGn_w" name="rect" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud8reO8EdyGNPaNHSGn_w" name="type" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud8ruO8EdyGNPaNHSGn_w" name="getRect" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8r-O8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8sOO8EdyGNPaNHSGn_w" name="getType" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8seO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud8suO8EdyGNPaNHSGn_w" name="StrategyManager">
+                  <ownedOperation xmi:id="_6Ud8s-O8EdyGNPaNHSGn_w" name="getStrategy" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6Ud8tOO8EdyGNPaNHSGn_w" name="v" type="_6Ud7DOO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8teO8EdyGNPaNHSGn_w" name="return" type="_6Ud88eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8tuO8EdyGNPaNHSGn_w" name="createShapeInfo" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6Ud8t-O8EdyGNPaNHSGn_w" name="adapter" type="_6Ud2MeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8uOO8EdyGNPaNHSGn_w" name="return" type="_6Ud9K-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud8ueO8EdyGNPaNHSGn_w" name="QueryByThemeVisitor" clientDependency="_6Ud8vuO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6Ud8uuO8EdyGNPaNHSGn_w" name="layer" visibility="private" type="_6Ud5J-O8EdyGNPaNHSGn_w" association="_6UnY1eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud8u-O8EdyGNPaNHSGn_w" name="toQuery" visibility="private" type="_6Ud5J-O8EdyGNPaNHSGn_w" association="_6UnY1-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud8vOO8EdyGNPaNHSGn_w" name="relation" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud8veO8EdyGNPaNHSGn_w" name="bitset" visibility="private" type="_6Ud3HOO8EdyGNPaNHSGn_w" association="_6UnY2eO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6Ud8vuO8EdyGNPaNHSGn_w" name="FeatureVisitor" supplier="_6UnYyuO8EdyGNPaNHSGn_w" client="_6Ud8ueO8EdyGNPaNHSGn_w" contract="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud8v-O8EdyGNPaNHSGn_w" name="visit" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8wOO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8weO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8wuO8EdyGNPaNHSGn_w" name="stop" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8w-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8xOO8EdyGNPaNHSGn_w" name="start" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8xeO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8xuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8x-O8EdyGNPaNHSGn_w" name="getBitset" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8yOO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8yeO8EdyGNPaNHSGn_w" name="getProcessDescription" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8yuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud8y-O8EdyGNPaNHSGn_w" name="ShpStrategy">
+                  <generalization xmi:id="_6Ud8zOO8EdyGNPaNHSGn_w" general="_6Ud9YeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud8zeO8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud8zuO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6Ud8z-O8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud80OO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud80eO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud80uO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud80-O8EdyGNPaNHSGn_w" name="print" visibility="public">
+                    <ownedParameter xmi:id="_6Ud81OO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud81eO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud81uO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud81-O8EdyGNPaNHSGn_w" name="printProperties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud82OO8EdyGNPaNHSGn_w" name="queryByShape" visibility="public">
+                    <ownedParameter xmi:id="_6Ud82eO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud82uO8EdyGNPaNHSGn_w" name="relationship" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud82-O8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud83OO8EdyGNPaNHSGn_w" name="queryByShape" visibility="public">
+                    <ownedParameter xmi:id="_6Ud83eO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud83uO8EdyGNPaNHSGn_w" name="relationship" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud83-O8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud84OO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud84eO8EdyGNPaNHSGn_w" name="queryByRect" visibility="public">
+                    <ownedParameter xmi:id="_6Ud84uO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud84-O8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud85OO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud85eO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6Ud85uO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud85-O8EdyGNPaNHSGn_w" name="rectangle" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud86OO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6Ud86eO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud86uO8EdyGNPaNHSGn_w" name="rectangle" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud86-O8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud87OO8EdyGNPaNHSGn_w" name="queryByPoint" visibility="public">
+                    <ownedParameter xmi:id="_6Ud87eO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud87uO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud87-O8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud88OO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud88eO8EdyGNPaNHSGn_w" name="Strategy">
+                  <ownedOperation xmi:id="_6Ud88uO8EdyGNPaNHSGn_w" name="draw">
+                    <ownedParameter xmi:id="_6Ud88-O8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud89OO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud89eO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud89uO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud89-O8EdyGNPaNHSGn_w" name="print">
+                    <ownedParameter xmi:id="_6Ud8-OO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8-eO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8-uO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8--O8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud8_OO8EdyGNPaNHSGn_w" name="process">
+                    <ownedParameter xmi:id="_6Ud8_eO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8_uO8EdyGNPaNHSGn_w" name="subset" type="_6UdsG-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud8_-O8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9AOO8EdyGNPaNHSGn_w" name="process">
+                    <ownedParameter xmi:id="_6Ud9AeO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9AuO8EdyGNPaNHSGn_w" name="subset" type="_6UdsG-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9A-O8EdyGNPaNHSGn_w" name="process">
+                    <ownedParameter xmi:id="_6Ud9BOO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9BeO8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9BuO8EdyGNPaNHSGn_w" name="process">
+                    <ownedParameter xmi:id="_6Ud9B-O8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9COO8EdyGNPaNHSGn_w" name="process">
+                    <ownedParameter xmi:id="_6Ud9CeO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9CuO8EdyGNPaNHSGn_w" name="rectangle" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9C-O8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9DOO8EdyGNPaNHSGn_w" name="process">
+                    <ownedParameter xmi:id="_6Ud9DeO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9DuO8EdyGNPaNHSGn_w" name="rectangle" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9D-O8EdyGNPaNHSGn_w" name="queryByPoint">
+                    <ownedParameter xmi:id="_6Ud9EOO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9EeO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9EuO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9E-O8EdyGNPaNHSGn_w" name="queryByPoint">
+                    <ownedParameter xmi:id="_6Ud9FOO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9FeO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9FuO8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9F-O8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9GOO8EdyGNPaNHSGn_w" name="queryByRect">
+                    <ownedParameter xmi:id="_6Ud9GeO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9GuO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9G-O8EdyGNPaNHSGn_w" name="queryByRect">
+                    <ownedParameter xmi:id="_6Ud9HOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9HeO8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9HuO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9H-O8EdyGNPaNHSGn_w" name="queryByShape">
+                    <ownedParameter xmi:id="_6Ud9IOO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9IeO8EdyGNPaNHSGn_w" name="relationship" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9IuO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9I-O8EdyGNPaNHSGn_w" name="queryByShape">
+                    <ownedParameter xmi:id="_6Ud9JOO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9JeO8EdyGNPaNHSGn_w" name="relationship" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9JuO8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9J-O8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9KOO8EdyGNPaNHSGn_w" name="getSelectionBounds">
+                    <ownedParameter xmi:id="_6Ud9KeO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9KuO8EdyGNPaNHSGn_w" name="createIndex"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ud9K-O8EdyGNPaNHSGn_w" name="ShapeInfo">
+                  <ownedOperation xmi:id="_6Ud9LOO8EdyGNPaNHSGn_w" name="addShapeInfo">
+                    <ownedParameter xmi:id="_6Ud9LeO8EdyGNPaNHSGn_w" name="boundingBox" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9LuO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9L-O8EdyGNPaNHSGn_w" name="setShapeInfo">
+                    <ownedParameter xmi:id="_6Ud9MOO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9MeO8EdyGNPaNHSGn_w" name="boundingBox" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9MuO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9M-O8EdyGNPaNHSGn_w" name="getBoundingBox">
+                    <ownedParameter xmi:id="_6Ud9NOO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9NeO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9NuO8EdyGNPaNHSGn_w" name="getType">
+                    <ownedParameter xmi:id="_6Ud9N-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9OOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud9OeO8EdyGNPaNHSGn_w" name="DBStrategy">
+                  <generalization xmi:id="_6Ud9OuO8EdyGNPaNHSGn_w" general="_6Ud9YeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud9O-O8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9POO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9PeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9PuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9P-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9QOO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9QeO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9QuO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9Q-O8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9ROO8EdyGNPaNHSGn_w" name="queryByRect" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9ReO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9RuO8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9R-O8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud9SOO8EdyGNPaNHSGn_w" name="QueryByPointVisitor" clientDependency="_6Ud9TuO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6Ud9SeO8EdyGNPaNHSGn_w" name="point" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9SuO8EdyGNPaNHSGn_w" name="tolerance" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9S-O8EdyGNPaNHSGn_w" name="layer" visibility="private" type="_6Ud5J-O8EdyGNPaNHSGn_w" association="_6UnY2-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9TOO8EdyGNPaNHSGn_w" name="bitset" visibility="private" type="_6Ud3HOO8EdyGNPaNHSGn_w" association="_6UnY3eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9TeO8EdyGNPaNHSGn_w" name="recPoint" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6Ud9TuO8EdyGNPaNHSGn_w" name="FeatureVisitor" supplier="_6UnYyuO8EdyGNPaNHSGn_w" client="_6Ud9SOO8EdyGNPaNHSGn_w" contract="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud9T-O8EdyGNPaNHSGn_w" name="getBitSet" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9UOO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9UeO8EdyGNPaNHSGn_w" name="setLayer" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9UuO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9U-O8EdyGNPaNHSGn_w" name="setTolerance" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9VOO8EdyGNPaNHSGn_w" name="t" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9VeO8EdyGNPaNHSGn_w" name="setQueriedPoint" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9VuO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9V-O8EdyGNPaNHSGn_w" name="visit" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9WOO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9WeO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9WuO8EdyGNPaNHSGn_w" name="stop" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9W-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9XOO8EdyGNPaNHSGn_w" name="start" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9XeO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9XuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9X-O8EdyGNPaNHSGn_w" name="getProcessDescription" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9YOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud9YeO8EdyGNPaNHSGn_w" name="DefaultStrategy" clientDependency="_6Ud9bOO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6Ud9YuO8EdyGNPaNHSGn_w" name="EQUALS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9Y-O8EdyGNPaNHSGn_w" name="DISJOINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9ZOO8EdyGNPaNHSGn_w" name="INTERSECTS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9ZeO8EdyGNPaNHSGn_w" name="TOUCHES" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9ZuO8EdyGNPaNHSGn_w" name="CROSSES" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9Z-O8EdyGNPaNHSGn_w" name="WITHIN" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9aOO8EdyGNPaNHSGn_w" name="CONTAINS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9aeO8EdyGNPaNHSGn_w" name="OVERLAPS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9auO8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9a-O8EdyGNPaNHSGn_w" name="capa" type="_6Ud5J-O8EdyGNPaNHSGn_w" association="_6UnY3-O8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6Ud9bOO8EdyGNPaNHSGn_w" name="Strategy" supplier="_6Ud88eO8EdyGNPaNHSGn_w" client="_6Ud9YeO8EdyGNPaNHSGn_w" contract="_6Ud88eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud9beO8EdyGNPaNHSGn_w" name="queryByRect" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9buO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9b-O8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9cOO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9ceO8EdyGNPaNHSGn_w" name="queryByShape" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9cuO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9c-O8EdyGNPaNHSGn_w" name="relationship" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9dOO8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9deO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9duO8EdyGNPaNHSGn_w" name="getSelectionBounds" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9d-O8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9eOO8EdyGNPaNHSGn_w" name="createIndex" visibility="public"/>
+                  <ownedOperation xmi:id="_6Ud9eeO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9euO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9e-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9fOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9feO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9fuO8EdyGNPaNHSGn_w" name="getCapa" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9f-O8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9gOO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9geO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9guO8EdyGNPaNHSGn_w" name="subset" type="_6UdsG-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9g-O8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9hOO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9heO8EdyGNPaNHSGn_w" name="queryByPoint" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9huO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9h-O8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9iOO8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9ieO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9iuO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9i-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9jOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9jeO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9juO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9j-O8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9kOO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9keO8EdyGNPaNHSGn_w" name="rectangle" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9kuO8EdyGNPaNHSGn_w" name="verifyCancelation" visibility="protected">
+                    <ownedParameter xmi:id="_6Ud9k-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9lOO8EdyGNPaNHSGn_w" name="va" type="_6Ud2MeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9leO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9luO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9l-O8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9mOO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9meO8EdyGNPaNHSGn_w" name="subset" type="_6UdsG-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9muO8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9m-O8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9nOO8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9neO8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9nuO8EdyGNPaNHSGn_w" name="process" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9n-O8EdyGNPaNHSGn_w" name="visitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9oOO8EdyGNPaNHSGn_w" name="rectangle" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9oeO8EdyGNPaNHSGn_w" name="cancel" type="_6Ud78-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9ouO8EdyGNPaNHSGn_w" name="queryByPoint" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9o-O8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9pOO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9peO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9puO8EdyGNPaNHSGn_w" name="queryByRect" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9p-O8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9qOO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9qeO8EdyGNPaNHSGn_w" name="queryByShape" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9quO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9q-O8EdyGNPaNHSGn_w" name="relationship" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9rOO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9reO8EdyGNPaNHSGn_w" name="isSpatialIndexNecessary" visibility="protected">
+                    <ownedParameter xmi:id="_6Ud9ruO8EdyGNPaNHSGn_w" name="extent" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9r-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud9sOO8EdyGNPaNHSGn_w" name="QueryByGeometryVisitor" clientDependency="_6Ud9vuO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6Ud9seO8EdyGNPaNHSGn_w" name="geom" visibility="private" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9suO8EdyGNPaNHSGn_w" name="geom_gvSIG" visibility="private" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9s-O8EdyGNPaNHSGn_w" name="geomBounds" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9tOO8EdyGNPaNHSGn_w" name="relation" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9teO8EdyGNPaNHSGn_w" name="bitset" visibility="private" type="_6Ud3HOO8EdyGNPaNHSGn_w" association="_6UnY4eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9tuO8EdyGNPaNHSGn_w" name="EQUALS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9t-O8EdyGNPaNHSGn_w" name="DISJOINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9uOO8EdyGNPaNHSGn_w" name="INTERSECTS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9ueO8EdyGNPaNHSGn_w" name="TOUCHES" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9uuO8EdyGNPaNHSGn_w" name="CROSSES" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9u-O8EdyGNPaNHSGn_w" name="WITHIN" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9vOO8EdyGNPaNHSGn_w" name="CONTAINS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9veO8EdyGNPaNHSGn_w" name="OVERLAPS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6Ud9vuO8EdyGNPaNHSGn_w" name="FeatureVisitor" supplier="_6UnYyuO8EdyGNPaNHSGn_w" client="_6Ud9sOO8EdyGNPaNHSGn_w" contract="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud9v-O8EdyGNPaNHSGn_w" name="getJTSgeom" visibility="private">
+                    <ownedParameter xmi:id="_6Ud9wOO8EdyGNPaNHSGn_w" name="return" type="_6UUrO-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9weO8EdyGNPaNHSGn_w" name="visit" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9wuO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9w-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9xOO8EdyGNPaNHSGn_w" name="stop" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9xeO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9xuO8EdyGNPaNHSGn_w" name="start" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9x-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9yOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9yeO8EdyGNPaNHSGn_w" name="getBitSet" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9yuO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9y-O8EdyGNPaNHSGn_w" name="getProcessDescription" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9zOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud9zeO8EdyGNPaNHSGn_w" name="SelectedShapeVisitor" clientDependency="_6Ud90eO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6Ud9zuO8EdyGNPaNHSGn_w" name="sds" visibility="private" type="_6Ud0m-O8EdyGNPaNHSGn_w" association="_6UnY4-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud9z-O8EdyGNPaNHSGn_w" name="fgs" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud90OO8EdyGNPaNHSGn_w" name="bitset" visibility="private" type="_6UdsG-O8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6Ud90eO8EdyGNPaNHSGn_w" name="FeatureVisitor" supplier="_6UnYyuO8EdyGNPaNHSGn_w" client="_6Ud9zeO8EdyGNPaNHSGn_w" contract="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud90uO8EdyGNPaNHSGn_w" name="visit" visibility="public">
+                    <ownedParameter xmi:id="_6Ud90-O8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud91OO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud91eO8EdyGNPaNHSGn_w" name="stop" visibility="public">
+                    <ownedParameter xmi:id="_6Ud91uO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud91-O8EdyGNPaNHSGn_w" name="start" visibility="public">
+                    <ownedParameter xmi:id="_6Ud92OO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud92eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud92uO8EdyGNPaNHSGn_w" name="getSelectedGeometries" visibility="public">
+                    <ownedParameter xmi:id="_6Ud92-O8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud93OO8EdyGNPaNHSGn_w" name="getSelectableDataSource" visibility="public">
+                    <ownedParameter xmi:id="_6Ud93eO8EdyGNPaNHSGn_w" name="return" type="_6Ud0m-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud93uO8EdyGNPaNHSGn_w" name="getBitSet" visibility="public">
+                    <ownedParameter xmi:id="_6Ud93-O8EdyGNPaNHSGn_w" name="return" type="_6UdsG-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud94OO8EdyGNPaNHSGn_w" name="getProcessDescription" visibility="public">
+                    <ownedParameter xmi:id="_6Ud94eO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud94uO8EdyGNPaNHSGn_w" name="QueryByRectVisitor" clientDependency="_6Ud95uO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6Ud94-O8EdyGNPaNHSGn_w" name="rect" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud95OO8EdyGNPaNHSGn_w" name="bitset" visibility="private" type="_6Ud3HOO8EdyGNPaNHSGn_w" association="_6UnY5eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud95eO8EdyGNPaNHSGn_w" name="ct" visibility="private" type="_6UnhkOO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6Ud95uO8EdyGNPaNHSGn_w" name="FeatureVisitor" supplier="_6UnYyuO8EdyGNPaNHSGn_w" client="_6Ud94uO8EdyGNPaNHSGn_w" contract="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud95-O8EdyGNPaNHSGn_w" name="setRect" visibility="public">
+                    <ownedParameter xmi:id="_6Ud96OO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud96eO8EdyGNPaNHSGn_w" name="getBitSet" visibility="public">
+                    <ownedParameter xmi:id="_6Ud96uO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud96-O8EdyGNPaNHSGn_w" name="visit" visibility="public">
+                    <ownedParameter xmi:id="_6Ud97OO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud97eO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud97uO8EdyGNPaNHSGn_w" name="stop" visibility="public">
+                    <ownedParameter xmi:id="_6Ud97-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud98OO8EdyGNPaNHSGn_w" name="start" visibility="public">
+                    <ownedParameter xmi:id="_6Ud98eO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud98uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud98-O8EdyGNPaNHSGn_w" name="getProcessDescription" visibility="public">
+                    <ownedParameter xmi:id="_6Ud99OO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud99eO8EdyGNPaNHSGn_w" name="SelectedZoomVisitor" clientDependency="_6Ud9-OO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6Ud99uO8EdyGNPaNHSGn_w" name="rectangle" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud99-O8EdyGNPaNHSGn_w" name="bitset" visibility="private" type="_6Ud3HOO8EdyGNPaNHSGn_w" association="_6UnY5-O8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6Ud9-OO8EdyGNPaNHSGn_w" name="FeatureVisitor" supplier="_6UnYyuO8EdyGNPaNHSGn_w" client="_6Ud99eO8EdyGNPaNHSGn_w" contract="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud9-eO8EdyGNPaNHSGn_w" name="start" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9-uO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud9--O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9_OO8EdyGNPaNHSGn_w" name="stop" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9_eO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud9_uO8EdyGNPaNHSGn_w" name="visit" visibility="public">
+                    <ownedParameter xmi:id="_6Ud9_-O8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-AOO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud-AeO8EdyGNPaNHSGn_w" name="getSelectBound" visibility="public">
+                    <ownedParameter xmi:id="_6Ud-AuO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud-A-O8EdyGNPaNHSGn_w" name="getProcessDescription" visibility="public">
+                    <ownedParameter xmi:id="_6Ud-BOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud-BeO8EdyGNPaNHSGn_w" name="AnnotationStrategy">
+                  <generalization xmi:id="_6Ud-BuO8EdyGNPaNHSGn_w" general="_6Ud9YeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud-B-O8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud-COO8EdyGNPaNHSGn_w" name="markerSymbol" visibility="private" type="_6UUkzuO8EdyGNPaNHSGn_w" association="_6UnY6eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud-CeO8EdyGNPaNHSGn_w" name="graphics" visibility="private" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud-CuO8EdyGNPaNHSGn_w" name="viewPort" visibility="private" type="_6UKtueO8EdyGNPaNHSGn_w" association="_6UnY6-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud-C-O8EdyGNPaNHSGn_w" name="heightDefault" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud-DOO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                    <ownedParameter xmi:id="_6Ud-DeO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-DuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-D-O8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-EOO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud-EeO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                    <ownedParameter xmi:id="_6Ud-EuO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-E-O8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-FOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-FeO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud-FuO8EdyGNPaNHSGn_w" name="getDefaultBoundBoxinPixels" visibility="public">
+                    <ownedParameter xmi:id="_6Ud-F-O8EdyGNPaNHSGn_w" name="metrics" type="_6UUpy-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-GOO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-GeO8EdyGNPaNHSGn_w" name="s" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-GuO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud-G-O8EdyGNPaNHSGn_w" name="getBoundBox" visibility="public">
+                    <ownedParameter xmi:id="_6Ud-HOO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-HeO8EdyGNPaNHSGn_w" name="hp" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-HuO8EdyGNPaNHSGn_w" name="justification" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-H-O8EdyGNPaNHSGn_w" name="s" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-IOO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud-IeO8EdyGNPaNHSGn_w" name="queryByShape" visibility="public">
+                    <ownedParameter xmi:id="_6Ud-IuO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-I-O8EdyGNPaNHSGn_w" name="relationship" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-JOO8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud-JeO8EdyGNPaNHSGn_w" name="queryByRect" visibility="public">
+                    <ownedParameter xmi:id="_6Ud-JuO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-J-O8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud-KOO8EdyGNPaNHSGn_w" name="queryByPoint" visibility="public">
+                    <ownedParameter xmi:id="_6Ud-KeO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-KuO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-K-O8EdyGNPaNHSGn_w" name="return" type="_6Ud3HOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud-LOO8EdyGNPaNHSGn_w" name="getGeometry" visibility="private">
+                    <ownedParameter xmi:id="_6Ud-LeO8EdyGNPaNHSGn_w" name="r" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-LuO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ud-L-O8EdyGNPaNHSGn_w" name="FilterRectVisitor" clientDependency="_6Ud-MuO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6Ud-MOO8EdyGNPaNHSGn_w" name="rect" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ud-MeO8EdyGNPaNHSGn_w" name="wrappedVisitor" visibility="private" type="_6UnYyuO8EdyGNPaNHSGn_w" association="_6UnY7eO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6Ud-MuO8EdyGNPaNHSGn_w" name="FeatureVisitor" supplier="_6UnYyuO8EdyGNPaNHSGn_w" client="_6Ud-L-O8EdyGNPaNHSGn_w" contract="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ud-M-O8EdyGNPaNHSGn_w" name="setRectangle" visibility="public">
+                    <ownedParameter xmi:id="_6Ud-NOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud-NeO8EdyGNPaNHSGn_w" name="visit" visibility="public">
+                    <ownedParameter xmi:id="_6Ud-NuO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6Ud-N-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ud-OOO8EdyGNPaNHSGn_w" name="stop" visibility="public">
+                    <ownedParameter xmi:id="_6UnYwOO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UnYweO8EdyGNPaNHSGn_w" name="start" visibility="public">
+                    <ownedParameter xmi:id="_6UnYwuO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UnYw-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UnYxOO8EdyGNPaNHSGn_w" name="getWrappedVisitor" visibility="public">
+                    <ownedParameter xmi:id="_6UnYxeO8EdyGNPaNHSGn_w" name="return" type="_6UnYyuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UnYxuO8EdyGNPaNHSGn_w" name="setWrappedVisitor" visibility="public">
+                    <ownedParameter xmi:id="_6UnYx-O8EdyGNPaNHSGn_w" name="wrappedVisitor" type="_6UnYyuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UnYyOO8EdyGNPaNHSGn_w" name="getProcessDescription" visibility="public">
+                    <ownedParameter xmi:id="_6UnYyeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UnYyuO8EdyGNPaNHSGn_w" name="FeatureVisitor">
+                  <ownedOperation xmi:id="_6UnYy-O8EdyGNPaNHSGn_w" name="visit">
+                    <ownedParameter xmi:id="_6UnYzOO8EdyGNPaNHSGn_w" name="g" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UnYzeO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UnYzuO8EdyGNPaNHSGn_w" name="getProcessDescription">
+                    <ownedParameter xmi:id="_6UnYz-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UnY0OO8EdyGNPaNHSGn_w" name="stop">
+                    <ownedParameter xmi:id="_6UnY0eO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UnY0uO8EdyGNPaNHSGn_w" name="start">
+                    <ownedParameter xmi:id="_6UnY0-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UnY1OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UnY1eO8EdyGNPaNHSGn_w" memberEnd="_6Ud8uuO8EdyGNPaNHSGn_w _6UnY1uO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UnY1uO8EdyGNPaNHSGn_w" name="target" type="_6Ud8ueO8EdyGNPaNHSGn_w" association="_6UnY1eO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UnY1-O8EdyGNPaNHSGn_w" memberEnd="_6Ud8u-O8EdyGNPaNHSGn_w _6UnY2OO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UnY2OO8EdyGNPaNHSGn_w" name="target" type="_6Ud8ueO8EdyGNPaNHSGn_w" association="_6UnY1-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UnY2eO8EdyGNPaNHSGn_w" memberEnd="_6Ud8veO8EdyGNPaNHSGn_w _6UnY2uO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UnY2uO8EdyGNPaNHSGn_w" name="target" type="_6Ud8ueO8EdyGNPaNHSGn_w" association="_6UnY2eO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UnY2-O8EdyGNPaNHSGn_w" memberEnd="_6Ud9S-O8EdyGNPaNHSGn_w _6UnY3OO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UnY3OO8EdyGNPaNHSGn_w" name="target" type="_6Ud9SOO8EdyGNPaNHSGn_w" association="_6UnY2-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UnY3eO8EdyGNPaNHSGn_w" memberEnd="_6Ud9TOO8EdyGNPaNHSGn_w _6UnY3uO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UnY3uO8EdyGNPaNHSGn_w" name="target" type="_6Ud9SOO8EdyGNPaNHSGn_w" association="_6UnY3eO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UnY3-O8EdyGNPaNHSGn_w" memberEnd="_6Ud9a-O8EdyGNPaNHSGn_w _6UnY4OO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UnY4OO8EdyGNPaNHSGn_w" name="target" type="_6Ud9YeO8EdyGNPaNHSGn_w" association="_6UnY3-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UnY4eO8EdyGNPaNHSGn_w" memberEnd="_6Ud9teO8EdyGNPaNHSGn_w _6UnY4uO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UnY4uO8EdyGNPaNHSGn_w" name="target" type="_6Ud9sOO8EdyGNPaNHSGn_w" association="_6UnY4eO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UnY4-O8EdyGNPaNHSGn_w" memberEnd="_6Ud9zuO8EdyGNPaNHSGn_w _6UnY5OO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UnY5OO8EdyGNPaNHSGn_w" name="target" type="_6Ud9zeO8EdyGNPaNHSGn_w" association="_6UnY4-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UnY5eO8EdyGNPaNHSGn_w" memberEnd="_6Ud95OO8EdyGNPaNHSGn_w _6UnY5uO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UnY5uO8EdyGNPaNHSGn_w" name="target" type="_6Ud94uO8EdyGNPaNHSGn_w" association="_6UnY5eO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UnY5-O8EdyGNPaNHSGn_w" memberEnd="_6Ud99-O8EdyGNPaNHSGn_w _6UnY6OO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UnY6OO8EdyGNPaNHSGn_w" name="target" type="_6Ud99eO8EdyGNPaNHSGn_w" association="_6UnY5-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UnY6eO8EdyGNPaNHSGn_w" memberEnd="_6Ud-COO8EdyGNPaNHSGn_w _6UnY6uO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UnY6uO8EdyGNPaNHSGn_w" name="target" type="_6Ud-BeO8EdyGNPaNHSGn_w" association="_6UnY6eO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UnY6-O8EdyGNPaNHSGn_w" memberEnd="_6Ud-CuO8EdyGNPaNHSGn_w _6UnY7OO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UnY7OO8EdyGNPaNHSGn_w" name="target" type="_6Ud-BeO8EdyGNPaNHSGn_w" association="_6UnY6-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UnY7eO8EdyGNPaNHSGn_w" memberEnd="_6Ud-MeO8EdyGNPaNHSGn_w _6UnY7uO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UnY7uO8EdyGNPaNHSGn_w" name="target" type="_6Ud-L-O8EdyGNPaNHSGn_w" association="_6UnY7eO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UnY7-O8EdyGNPaNHSGn_w" name="rendering">
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UnY8OO8EdyGNPaNHSGn_w" name="IRasterLegend">
+                <generalization xmi:id="_6UnY8eO8EdyGNPaNHSGn_w" general="_6UnbUOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnY8uO8EdyGNPaNHSGn_w" name="QuantileIntervalGenerator">
+                <ownedAttribute xmi:id="_6UnY8-O8EdyGNPaNHSGn_w" name="sds" visibility="private" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnY9OO8EdyGNPaNHSGn_w" name="msFieldName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnY9eO8EdyGNPaNHSGn_w" name="miNumIntervalosSolicitados" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnY9uO8EdyGNPaNHSGn_w" name="mdaValoresRuptura" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnY9-O8EdyGNPaNHSGn_w" name="mdaValInit" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnY-OO8EdyGNPaNHSGn_w" name="num" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnY-eO8EdyGNPaNHSGn_w" name="generarIntervalos" visibility="public"/>
+                <ownedOperation xmi:id="_6UnY-uO8EdyGNPaNHSGn_w" name="insertarEnVector" visibility="private">
+                  <ownedParameter xmi:id="_6UnY--O8EdyGNPaNHSGn_w" name="rVectorDatos" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnY_OO8EdyGNPaNHSGn_w" name="coincidencia" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnY_eO8EdyGNPaNHSGn_w" name="vdValorAInsertar" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnY_uO8EdyGNPaNHSGn_w" name="getValue" visibility="private">
+                  <ownedParameter xmi:id="_6UnY_-O8EdyGNPaNHSGn_w" name="value" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZAOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZAeO8EdyGNPaNHSGn_w" name="getValRuptura" visibility="public">
+                  <ownedParameter xmi:id="_6UnZAuO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZA-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZBOO8EdyGNPaNHSGn_w" name="getValInit" visibility="public">
+                  <ownedParameter xmi:id="_6UnZBeO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZBuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZB-O8EdyGNPaNHSGn_w" name="getNumIntervalGen" visibility="public">
+                  <ownedParameter xmi:id="_6UnZCOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UnZCeO8EdyGNPaNHSGn_w" name="IInterval">
+                <ownedOperation xmi:id="_6UnZCuO8EdyGNPaNHSGn_w" name="isInInterval" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UnZC-O8EdyGNPaNHSGn_w" name="v" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZDOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZDeO8EdyGNPaNHSGn_w" name="toString" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UnZDuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UnZD-O8EdyGNPaNHSGn_w" name="IVectorialUniqueValueLegend">
+                <generalization xmi:id="_6UnZEOO8EdyGNPaNHSGn_w" general="_6UnaVOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnZEeO8EdyGNPaNHSGn_w" name="setValueSymbolByID">
+                  <ownedParameter xmi:id="_6UnZEuO8EdyGNPaNHSGn_w" name="id" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZE-O8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZFOO8EdyGNPaNHSGn_w" name="getSymbolByValue" visibility="public">
+                  <ownedParameter xmi:id="_6UnZFeO8EdyGNPaNHSGn_w" name="key" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZFuO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnZF-O8EdyGNPaNHSGn_w" name="FGraphic">
+                <ownedAttribute xmi:id="_6UnZGOO8EdyGNPaNHSGn_w" name="idSymbol" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZGeO8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZGuO8EdyGNPaNHSGn_w" name="tag" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZG-O8EdyGNPaNHSGn_w" name="objectTag" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnZHOO8EdyGNPaNHSGn_w" name="getTag" visibility="public">
+                  <ownedParameter xmi:id="_6UnZHeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZHuO8EdyGNPaNHSGn_w" name="setTag" visibility="public">
+                  <ownedParameter xmi:id="_6UnZH-O8EdyGNPaNHSGn_w" name="tag" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZIOO8EdyGNPaNHSGn_w" name="getGeom" visibility="public">
+                  <ownedParameter xmi:id="_6UnZIeO8EdyGNPaNHSGn_w" name="return" type="_6UnhkeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZIuO8EdyGNPaNHSGn_w" name="setGeom" visibility="public">
+                  <ownedParameter xmi:id="_6UnZI-O8EdyGNPaNHSGn_w" name="geom" type="_6UnhkeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZJOO8EdyGNPaNHSGn_w" name="getIdSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UnZJeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZJuO8EdyGNPaNHSGn_w" name="setIdSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UnZJ-O8EdyGNPaNHSGn_w" name="idSymbol" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZKOO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                  <ownedParameter xmi:id="_6UnZKeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZKuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZK-O8EdyGNPaNHSGn_w" name="theSymbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZLOO8EdyGNPaNHSGn_w" name="getObjectTag" visibility="public">
+                  <ownedParameter xmi:id="_6UnZLeO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZLuO8EdyGNPaNHSGn_w" name="setObjectTag" visibility="public">
+                  <ownedParameter xmi:id="_6UnZL-O8EdyGNPaNHSGn_w" name="objectTag" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnZMOO8EdyGNPaNHSGn_w" name="SymbolLegendEvent">
+                <generalization xmi:id="_6UnZMeO8EdyGNPaNHSGn_w" general="_6Una7uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZMuO8EdyGNPaNHSGn_w" name="oldValue" visibility="private" type="_6UUlkuO8EdyGNPaNHSGn_w" association="_6UneHOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZM-O8EdyGNPaNHSGn_w" name="newValue" visibility="private" type="_6UUlkuO8EdyGNPaNHSGn_w" association="_6UneHuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnZNOO8EdyGNPaNHSGn_w" name="getOldValue" visibility="public">
+                  <ownedParameter xmi:id="_6UnZNeO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZNuO8EdyGNPaNHSGn_w" name="getNewValue" visibility="public">
+                  <ownedParameter xmi:id="_6UnZN-O8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZOOO8EdyGNPaNHSGn_w" name="getEventType" visibility="public">
+                  <ownedParameter xmi:id="_6UnZOeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnZOuO8EdyGNPaNHSGn_w" name="IntervalLegendEvent">
+                <generalization xmi:id="_6UnZO-O8EdyGNPaNHSGn_w" general="_6Una7uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZPOO8EdyGNPaNHSGn_w" name="oldInterval" visibility="private" type="_6UnZCeO8EdyGNPaNHSGn_w" association="_6UneIOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZPeO8EdyGNPaNHSGn_w" name="newInterval" visibility="private" type="_6UnZCeO8EdyGNPaNHSGn_w" association="_6UneIuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnZPuO8EdyGNPaNHSGn_w" name="getOldInterval" visibility="public">
+                  <ownedParameter xmi:id="_6UnZP-O8EdyGNPaNHSGn_w" name="return" type="_6UnZCeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZQOO8EdyGNPaNHSGn_w" name="getNewInterval" visibility="public">
+                  <ownedParameter xmi:id="_6UnZQeO8EdyGNPaNHSGn_w" name="return" type="_6UnZCeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZQuO8EdyGNPaNHSGn_w" name="getEventType" visibility="public">
+                  <ownedParameter xmi:id="_6UnZQ-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnZROO8EdyGNPaNHSGn_w" name="FInterval" clientDependency="_6UnZR-O8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UnZReO8EdyGNPaNHSGn_w" name="from" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZRuO8EdyGNPaNHSGn_w" name="to" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnZR-O8EdyGNPaNHSGn_w" name="IInterval" supplier="_6UnZCeO8EdyGNPaNHSGn_w" client="_6UnZROO8EdyGNPaNHSGn_w" contract="_6UnZCeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnZSOO8EdyGNPaNHSGn_w" name="isInInterval" visibility="public">
+                  <ownedParameter xmi:id="_6UnZSeO8EdyGNPaNHSGn_w" name="v" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZSuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZS-O8EdyGNPaNHSGn_w" name="getMin" visibility="public">
+                  <ownedParameter xmi:id="_6UnZTOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZTeO8EdyGNPaNHSGn_w" name="getMax" visibility="public">
+                  <ownedParameter xmi:id="_6UnZTuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZT-O8EdyGNPaNHSGn_w" name="toString" visibility="public">
+                  <ownedParameter xmi:id="_6UnZUOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZUeO8EdyGNPaNHSGn_w" name="create" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UnZUuO8EdyGNPaNHSGn_w" name="s" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZU-O8EdyGNPaNHSGn_w" name="return" type="_6UnZCeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnZVOO8EdyGNPaNHSGn_w" name="LegendClearEvent">
+                <generalization xmi:id="_6UnZVeO8EdyGNPaNHSGn_w" general="_6Una7uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZVuO8EdyGNPaNHSGn_w" name="oldSymbols" visibility="private" type="_6UUlkuO8EdyGNPaNHSGn_w" association="_6UneJOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnZV-O8EdyGNPaNHSGn_w" name="getOldSymbols" visibility="public">
+                  <ownedParameter xmi:id="_6UnZWOO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZWeO8EdyGNPaNHSGn_w" name="getEventType" visibility="public">
+                  <ownedParameter xmi:id="_6UnZWuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnZW-O8EdyGNPaNHSGn_w" name="AbstractClassifiedVectorLegend" clientDependency="_6UnZYOO8EdyGNPaNHSGn_w">
+                <generalization xmi:id="_6UnZXOO8EdyGNPaNHSGn_w" general="_6UnboOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZXeO8EdyGNPaNHSGn_w" name="fieldNames" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZXuO8EdyGNPaNHSGn_w" name="fieldTypes" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZX-O8EdyGNPaNHSGn_w" name="zSort" visibility="private" type="_6UnbXeO8EdyGNPaNHSGn_w" association="_6UneJuO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnZYOO8EdyGNPaNHSGn_w" name="IClassifiedVectorLegend" supplier="_6UnaVOO8EdyGNPaNHSGn_w" client="_6UnZW-O8EdyGNPaNHSGn_w" contract="_6UnaVOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnZYeO8EdyGNPaNHSGn_w" name="fireClassifiedSymbolChangeEvent" visibility="public">
+                  <ownedParameter xmi:id="_6UnZYuO8EdyGNPaNHSGn_w" name="event" type="_6UnZMOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZY-O8EdyGNPaNHSGn_w" name="fireLegendClearEvent" visibility="public">
+                  <ownedParameter xmi:id="_6UnZZOO8EdyGNPaNHSGn_w" name="event" type="_6UnZVOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZZeO8EdyGNPaNHSGn_w" name="getClassifyingFieldNames" visibility="public">
+                  <ownedParameter xmi:id="_6UnZZuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZZ-O8EdyGNPaNHSGn_w" name="setClassifyingFieldNames" visibility="public">
+                  <ownedParameter xmi:id="_6UnZaOO8EdyGNPaNHSGn_w" name="fieldNames" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZaeO8EdyGNPaNHSGn_w" name="getClassifyingFieldTypes" visibility="public">
+                  <ownedParameter xmi:id="_6UnZauO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZa-O8EdyGNPaNHSGn_w" name="setClassifyingFieldTypes" visibility="public">
+                  <ownedParameter xmi:id="_6UnZbOO8EdyGNPaNHSGn_w" name="fieldTypes" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZbeO8EdyGNPaNHSGn_w" name="getZSort" visibility="public">
+                  <ownedParameter xmi:id="_6UnZbuO8EdyGNPaNHSGn_w" name="return" type="_6UnbXeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZb-O8EdyGNPaNHSGn_w" name="setZSort" visibility="public">
+                  <ownedParameter xmi:id="_6UnZcOO8EdyGNPaNHSGn_w" name="zSort" type="_6UnbXeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UnZceO8EdyGNPaNHSGn_w" name="IVectorialIntervalLegend">
+                <generalization xmi:id="_6UnZcuO8EdyGNPaNHSGn_w" general="_6UnaVOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnZc-O8EdyGNPaNHSGn_w" name="setDefaultSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UnZdOO8EdyGNPaNHSGn_w" name="s" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZdeO8EdyGNPaNHSGn_w" name="getInterval" visibility="public">
+                  <ownedParameter xmi:id="_6UnZduO8EdyGNPaNHSGn_w" name="v" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZd-O8EdyGNPaNHSGn_w" name="return" type="_6UnZCeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZeOO8EdyGNPaNHSGn_w" name="getIntervalType" visibility="public">
+                  <ownedParameter xmi:id="_6UnZeeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZeuO8EdyGNPaNHSGn_w" name="getSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UnZe-O8EdyGNPaNHSGn_w" name="recordIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZfOO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZfeO8EdyGNPaNHSGn_w" name="getSymbolByFeature" visibility="public">
+                  <ownedParameter xmi:id="_6UnZfuO8EdyGNPaNHSGn_w" name="feat" type="_6UUetuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZf-O8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZgOO8EdyGNPaNHSGn_w" name="getSymbolByInterval" visibility="public">
+                  <ownedParameter xmi:id="_6UnZgeO8EdyGNPaNHSGn_w" name="key" type="_6UnZCeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZguO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZg-O8EdyGNPaNHSGn_w" name="setDataSource" visibility="public">
+                  <ownedParameter xmi:id="_6UnZhOO8EdyGNPaNHSGn_w" name="ds" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZheO8EdyGNPaNHSGn_w" name="setIntervalType" visibility="public">
+                  <ownedParameter xmi:id="_6UnZhuO8EdyGNPaNHSGn_w" name="tipoClasificacion" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnZh-O8EdyGNPaNHSGn_w" name="AbstractIntervalLegend" clientDependency="_6UnZl-O8EdyGNPaNHSGn_w">
+                <generalization xmi:id="_6UnZiOO8EdyGNPaNHSGn_w" general="_6UnZW-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZieO8EdyGNPaNHSGn_w" name="shapeType" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZiuO8EdyGNPaNHSGn_w" name="EQUAL_INTERVALS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZi-O8EdyGNPaNHSGn_w" name="NATURAL_INTERVALS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZjOO8EdyGNPaNHSGn_w" name="QUANTILE_INTERVALS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZjeO8EdyGNPaNHSGn_w" name="symbols" visibility="protected" type="_6UdzmOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZjuO8EdyGNPaNHSGn_w" name="keys" visibility="protected" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZj-O8EdyGNPaNHSGn_w" name="index" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZkOO8EdyGNPaNHSGn_w" name="fieldNames" visibility="protected" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZkeO8EdyGNPaNHSGn_w" name="fieldId" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZkuO8EdyGNPaNHSGn_w" name="defaultSymbol" visibility="protected" type="_6UUlkuO8EdyGNPaNHSGn_w" association="_6UneKOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZk-O8EdyGNPaNHSGn_w" name="dataSource" visibility="protected" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZlOO8EdyGNPaNHSGn_w" name="intervalType" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZleO8EdyGNPaNHSGn_w" name="useDefaultSymbol" visibility="protected" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZluO8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnZl-O8EdyGNPaNHSGn_w" name="IVectorialIntervalLegend" supplier="_6UnZceO8EdyGNPaNHSGn_w" client="_6UnZh-O8EdyGNPaNHSGn_w" contract="_6UnZceO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnZmOO8EdyGNPaNHSGn_w" name="addSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UnZmeO8EdyGNPaNHSGn_w" name="key" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZmuO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZm-O8EdyGNPaNHSGn_w" name="getSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UnZnOO8EdyGNPaNHSGn_w" name="recordIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZneO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZnuO8EdyGNPaNHSGn_w" name="getSymbolByFeature" visibility="public">
+                  <ownedParameter xmi:id="_6UnZn-O8EdyGNPaNHSGn_w" name="feat" type="_6UUetuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZoOO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZoeO8EdyGNPaNHSGn_w" name="calculateIntervals" visibility="public">
+                  <ownedParameter xmi:id="_6UnZouO8EdyGNPaNHSGn_w" name="recordSet" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZo-O8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZpOO8EdyGNPaNHSGn_w" name="numIntervalos" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZpeO8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZpuO8EdyGNPaNHSGn_w" name="return" type="_6UnZROO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZp-O8EdyGNPaNHSGn_w" name="calculateEqualIntervals" visibility="private">
+                  <ownedParameter xmi:id="_6UnZqOO8EdyGNPaNHSGn_w" name="numIntervals" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZqeO8EdyGNPaNHSGn_w" name="minValue" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZquO8EdyGNPaNHSGn_w" name="maxValue" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZq-O8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZrOO8EdyGNPaNHSGn_w" name="return" type="_6UnZROO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZreO8EdyGNPaNHSGn_w" name="calculateNaturalIntervals" visibility="private">
+                  <ownedParameter xmi:id="_6UnZruO8EdyGNPaNHSGn_w" name="recordSet" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZr-O8EdyGNPaNHSGn_w" name="numIntervals" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZsOO8EdyGNPaNHSGn_w" name="minValue" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZseO8EdyGNPaNHSGn_w" name="maxValue" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZsuO8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZs-O8EdyGNPaNHSGn_w" name="return" type="_6UnZROO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZtOO8EdyGNPaNHSGn_w" name="calculateQuantileIntervals" visibility="private">
+                  <ownedParameter xmi:id="_6UnZteO8EdyGNPaNHSGn_w" name="recordSet" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZtuO8EdyGNPaNHSGn_w" name="numIntervals" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZt-O8EdyGNPaNHSGn_w" name="minValue" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZuOO8EdyGNPaNHSGn_w" name="maxValue" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZueO8EdyGNPaNHSGn_w" name="fieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZuuO8EdyGNPaNHSGn_w" name="return" type="_6UnZROO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZu-O8EdyGNPaNHSGn_w" name="getSymbolByInterval" visibility="public">
+                  <ownedParameter xmi:id="_6UnZvOO8EdyGNPaNHSGn_w" name="key" type="_6UnZCeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZveO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZvuO8EdyGNPaNHSGn_w" name="getDescriptions" visibility="public">
+                  <ownedParameter xmi:id="_6UnZv-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZwOO8EdyGNPaNHSGn_w" name="getValues" visibility="public">
+                  <ownedParameter xmi:id="_6UnZweO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZwuO8EdyGNPaNHSGn_w" name="clear" visibility="public"/>
+                <ownedOperation xmi:id="_6UnZw-O8EdyGNPaNHSGn_w" name="getSymbols" visibility="public">
+                  <ownedParameter xmi:id="_6UnZxOO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZxeO8EdyGNPaNHSGn_w" name="getClassifyingFieldNames" visibility="public">
+                  <ownedParameter xmi:id="_6UnZxuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZx-O8EdyGNPaNHSGn_w" name="setDefaultSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UnZyOO8EdyGNPaNHSGn_w" name="s" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZyeO8EdyGNPaNHSGn_w" name="setClassifyingFieldNames" visibility="public">
+                  <ownedParameter xmi:id="_6UnZyuO8EdyGNPaNHSGn_w" name="fieldNames" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZy-O8EdyGNPaNHSGn_w" name="getDefaultSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UnZzOO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZzeO8EdyGNPaNHSGn_w" name="setDataSource" visibility="public">
+                  <ownedParameter xmi:id="_6UnZzuO8EdyGNPaNHSGn_w" name="ds" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZz-O8EdyGNPaNHSGn_w" name="getInterval" visibility="public">
+                  <ownedParameter xmi:id="_6UnZ0OO8EdyGNPaNHSGn_w" name="v" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZ0eO8EdyGNPaNHSGn_w" name="return" type="_6UnZCeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZ0uO8EdyGNPaNHSGn_w" name="setIntervalType" visibility="public">
+                  <ownedParameter xmi:id="_6UnZ0-O8EdyGNPaNHSGn_w" name="intervalType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZ1OO8EdyGNPaNHSGn_w" name="getIntervalType" visibility="public">
+                  <ownedParameter xmi:id="_6UnZ1eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZ1uO8EdyGNPaNHSGn_w" name="useDefaultSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UnZ1-O8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZ2OO8EdyGNPaNHSGn_w" name="isUseDefaultSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UnZ2eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZ2uO8EdyGNPaNHSGn_w" name="delSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UnZ2-O8EdyGNPaNHSGn_w" name="obj" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZ3OO8EdyGNPaNHSGn_w" name="replace" visibility="public">
+                  <ownedParameter xmi:id="_6UnZ3eO8EdyGNPaNHSGn_w" name="oldSymbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZ3uO8EdyGNPaNHSGn_w" name="newSymbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnZ3-O8EdyGNPaNHSGn_w" name="FGraphicLabel">
+                <generalization xmi:id="_6UnZ4OO8EdyGNPaNHSGn_w" general="_6UnZF-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZ4eO8EdyGNPaNHSGn_w" name="theLabel" visibility="private" type="_6UUpfOO8EdyGNPaNHSGn_w" association="_6UneKuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnZ4uO8EdyGNPaNHSGn_w" name="getLabel" visibility="public">
+                  <ownedParameter xmi:id="_6UnZ4-O8EdyGNPaNHSGn_w" name="return" type="_6UUpfOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZ5OO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                  <ownedParameter xmi:id="_6UnZ5eO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZ5uO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZ5-O8EdyGNPaNHSGn_w" name="theSymbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZ6OO8EdyGNPaNHSGn_w" name="setLabel" visibility="public">
+                  <ownedParameter xmi:id="_6UnZ6eO8EdyGNPaNHSGn_w" name="theLabel" type="_6UUpfOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnZ6uO8EdyGNPaNHSGn_w" name="NaturalIntervalGenerator">
+                <ownedAttribute xmi:id="_6UnZ6-O8EdyGNPaNHSGn_w" name="ds" visibility="private" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZ7OO8EdyGNPaNHSGn_w" name="msFieldName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZ7eO8EdyGNPaNHSGn_w" name="miNumIntervalosSolicitados" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZ7uO8EdyGNPaNHSGn_w" name="miNumIntervalosGenerados" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZ7-O8EdyGNPaNHSGn_w" name="mdaValoresRuptura" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnZ8OO8EdyGNPaNHSGn_w" name="mdaValInit" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnZ8eO8EdyGNPaNHSGn_w" name="mbObtenerPosicionEnVector" visibility="private">
+                  <ownedParameter xmi:id="_6UnZ8uO8EdyGNPaNHSGn_w" name="rVectorDatos" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZ8-O8EdyGNPaNHSGn_w" name="vdValorAInsertar" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZ9OO8EdyGNPaNHSGn_w" name="rlIndiceCorrespondiente" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZ9eO8EdyGNPaNHSGn_w" name="rbNuevoElemento" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZ9uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZ9-O8EdyGNPaNHSGn_w" name="generarIntervalos" visibility="public">
+                  <ownedParameter xmi:id="_6UnZ-OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZ-eO8EdyGNPaNHSGn_w" name="getArray" visibility="private">
+                  <ownedParameter xmi:id="_6UnZ-uO8EdyGNPaNHSGn_w" name="array" type="_6UnaLuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZ--O8EdyGNPaNHSGn_w" name="return" type="_6UnaLuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnZ_OO8EdyGNPaNHSGn_w" name="mbGetSumSquaredDeviationArrayMean" visibility="private">
+                  <ownedParameter xmi:id="_6UnZ_eO8EdyGNPaNHSGn_w" name="rVectorDatos" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZ_uO8EdyGNPaNHSGn_w" name="vdMedia" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnZ_-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaAOO8EdyGNPaNHSGn_w" name="mbObtenerDatos" visibility="private">
+                  <ownedParameter xmi:id="_6UnaAeO8EdyGNPaNHSGn_w" name="rVectorDatos" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaAuO8EdyGNPaNHSGn_w" name="rdMediaTotal" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaA-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaBOO8EdyGNPaNHSGn_w" name="gbExisteCampoEnRegistro" visibility="private">
+                  <ownedParameter xmi:id="_6UnaBeO8EdyGNPaNHSGn_w" name="recordset" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaBuO8EdyGNPaNHSGn_w" name="msFieldName2" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaB-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaCOO8EdyGNPaNHSGn_w" name="mbCalcularGVF" visibility="private">
+                  <ownedParameter xmi:id="_6UnaCeO8EdyGNPaNHSGn_w" name="rVectorDatos" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaCuO8EdyGNPaNHSGn_w" name="raClases" type="_6UnaLuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaC-O8EdyGNPaNHSGn_w" name="rlaIndicesRuptura" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaDOO8EdyGNPaNHSGn_w" name="vdSDAM" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaDeO8EdyGNPaNHSGn_w" name="rdGVF" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaDuO8EdyGNPaNHSGn_w" name="vlIndiceRupturaActual" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaD-O8EdyGNPaNHSGn_w" name="vbDesplazAIzquierda" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaEOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaEeO8EdyGNPaNHSGn_w" name="mbGetDatosClase" visibility="private">
+                  <ownedParameter xmi:id="_6UnaEuO8EdyGNPaNHSGn_w" name="rVectorDatos" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaE-O8EdyGNPaNHSGn_w" name="vlLimiteInf" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaFOO8EdyGNPaNHSGn_w" name="vlLimiteSup" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaFeO8EdyGNPaNHSGn_w" name="rClase" type="_6UnaLuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaFuO8EdyGNPaNHSGn_w" name="numClas" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaF-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaGOO8EdyGNPaNHSGn_w" name="mbRecalcularDatosClase" visibility="private">
+                  <ownedParameter xmi:id="_6UnaGeO8EdyGNPaNHSGn_w" name="rClase" type="_6UnaLuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaGuO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaG-O8EdyGNPaNHSGn_w" name="rVectorDatos" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaHOO8EdyGNPaNHSGn_w" name="vlIndiceElemento" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaHeO8EdyGNPaNHSGn_w" name="vdSDAM" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaHuO8EdyGNPaNHSGn_w" name="vbAnyadir" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaH-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaIOO8EdyGNPaNHSGn_w" name="getValorRuptura" visibility="public">
+                  <ownedParameter xmi:id="_6UnaIeO8EdyGNPaNHSGn_w" name="viIndice" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaIuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaI-O8EdyGNPaNHSGn_w" name="getValInit" visibility="public">
+                  <ownedParameter xmi:id="_6UnaJOO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaJeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaJuO8EdyGNPaNHSGn_w" name="getNumIntervals" visibility="public">
+                  <ownedParameter xmi:id="_6UnaJ-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaKOO8EdyGNPaNHSGn_w" name="getValue" visibility="private">
+                  <ownedParameter xmi:id="_6UnaKeO8EdyGNPaNHSGn_w" name="value" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaKuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnaK-O8EdyGNPaNHSGn_w" name="udtDatosEstudio" visibility="private">
+                <ownedAttribute xmi:id="_6UnaLOO8EdyGNPaNHSGn_w" name="Valor" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnaLeO8EdyGNPaNHSGn_w" name="Coincidencias" visibility="private" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnaLuO8EdyGNPaNHSGn_w" name="udtDatosClase" visibility="private">
+                <ownedAttribute xmi:id="_6UnaL-O8EdyGNPaNHSGn_w" name="NumElementos" visibility="private" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnaMOO8EdyGNPaNHSGn_w" name="Media" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnaMeO8EdyGNPaNHSGn_w" name="SumaTotal" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnaMuO8EdyGNPaNHSGn_w" name="SumaCuadradoTotal" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnaM-O8EdyGNPaNHSGn_w" name="SDCM" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UnaNOO8EdyGNPaNHSGn_w" name="LegendContentsChangedListener">
+                <ownedOperation xmi:id="_6UnaNeO8EdyGNPaNHSGn_w" name="labelFieldChange">
+                  <ownedParameter xmi:id="_6UnaNuO8EdyGNPaNHSGn_w" name="e" type="_6UnanOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaN-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaOOO8EdyGNPaNHSGn_w" name="symbolChanged">
+                  <ownedParameter xmi:id="_6UnaOeO8EdyGNPaNHSGn_w" name="e" type="_6UnZMOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaOuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaO-O8EdyGNPaNHSGn_w" name="legendCleared">
+                  <ownedParameter xmi:id="_6UnaPOO8EdyGNPaNHSGn_w" name="event" type="_6UnZVOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UnaPeO8EdyGNPaNHSGn_w" name="IClassifiedRasterLegend">
+                <generalization xmi:id="_6UnaPuO8EdyGNPaNHSGn_w" general="_6UnY8OO8EdyGNPaNHSGn_w"/>
+                <generalization xmi:id="_6UnaP-O8EdyGNPaNHSGn_w" general="_6Una9OO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnaQOO8EdyGNPaNHSGn_w" name="FStyledShapePainter">
+                <ownedAttribute xmi:id="_6UnaQeO8EdyGNPaNHSGn_w" name="IDENTITY_TRANSFORM" visibility="private" type="_6Unhh-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnaQuO8EdyGNPaNHSGn_w" name="imgObserver" visibility="private" type="_6UneGeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnaQ-O8EdyGNPaNHSGn_w" name="LOGGER" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnaROO8EdyGNPaNHSGn_w" name="paint" visibility="public">
+                  <ownedParameter xmi:id="_6UnaReO8EdyGNPaNHSGn_w" name="graphics" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaRuO8EdyGNPaNHSGn_w" name="shape" type="_6UUrPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaR-O8EdyGNPaNHSGn_w" name="style" type="_6UneGuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaSOO8EdyGNPaNHSGn_w" name="scale" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaSeO8EdyGNPaNHSGn_w" name="drawWithGraphicsStroke" visibility="private">
+                  <ownedParameter xmi:id="_6UnaSuO8EdyGNPaNHSGn_w" name="graphics" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaS-O8EdyGNPaNHSGn_w" name="shape" type="_6UUrPuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaTOO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaTeO8EdyGNPaNHSGn_w" name="renderImage" visibility="private">
+                  <ownedParameter xmi:id="_6UnaTuO8EdyGNPaNHSGn_w" name="graphics" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaT-O8EdyGNPaNHSGn_w" name="x" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaUOO8EdyGNPaNHSGn_w" name="y" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaUeO8EdyGNPaNHSGn_w" name="image" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaUuO8EdyGNPaNHSGn_w" name="rotation" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaU-O8EdyGNPaNHSGn_w" name="opacity" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UnaVOO8EdyGNPaNHSGn_w" name="IClassifiedVectorLegend">
+                <generalization xmi:id="_6UnaVeO8EdyGNPaNHSGn_w" general="_6Una9OO8EdyGNPaNHSGn_w"/>
+                <generalization xmi:id="_6UnaVuO8EdyGNPaNHSGn_w" general="_6UnbGeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnaV-O8EdyGNPaNHSGn_w" name="clear" visibility="public" isAbstract="true"/>
+                <ownedOperation xmi:id="_6UnaWOO8EdyGNPaNHSGn_w" name="getClassifyingFieldNames" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UnaWeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaWuO8EdyGNPaNHSGn_w" name="setClassifyingFieldNames" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UnaW-O8EdyGNPaNHSGn_w" name="fieldNames" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaXOO8EdyGNPaNHSGn_w" name="addSymbol" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UnaXeO8EdyGNPaNHSGn_w" name="key" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaXuO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaX-O8EdyGNPaNHSGn_w" name="delSymbol" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UnaYOO8EdyGNPaNHSGn_w" name="key" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaYeO8EdyGNPaNHSGn_w" name="replace" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6UnaYuO8EdyGNPaNHSGn_w" name="oldSymbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaY-O8EdyGNPaNHSGn_w" name="newSymbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaZOO8EdyGNPaNHSGn_w" name="getClassifyingFieldTypes" visibility="public">
+                  <ownedParameter xmi:id="_6UnaZeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaZuO8EdyGNPaNHSGn_w" name="setClassifyingFieldTypes" visibility="public">
+                  <ownedParameter xmi:id="_6UnaZ-O8EdyGNPaNHSGn_w" name="fieldTypes" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnaaOO8EdyGNPaNHSGn_w" name="SingleSymbolLegend" clientDependency="_6UnabeO8EdyGNPaNHSGn_w">
+                <generalization xmi:id="_6UnaaeO8EdyGNPaNHSGn_w" general="_6UnboOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnaauO8EdyGNPaNHSGn_w" name="defaultSymbol" visibility="private" type="_6UUlkuO8EdyGNPaNHSGn_w" association="_6UneLOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unaa-O8EdyGNPaNHSGn_w" name="shapeType" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnabOO8EdyGNPaNHSGn_w" name="zSort" visibility="private" type="_6UnbXeO8EdyGNPaNHSGn_w" association="_6UneLuO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnabeO8EdyGNPaNHSGn_w" name="IVectorLegend" supplier="_6UnbGeO8EdyGNPaNHSGn_w" client="_6UnaaOO8EdyGNPaNHSGn_w" contract="_6UnbGeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnabuO8EdyGNPaNHSGn_w" name="setDefaultSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6Unab-O8EdyGNPaNHSGn_w" name="s" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnacOO8EdyGNPaNHSGn_w" name="getSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UnaceO8EdyGNPaNHSGn_w" name="recordIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnacuO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unac-O8EdyGNPaNHSGn_w" name="getDefaultSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UnadOO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnadeO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6UnaduO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unad-O8EdyGNPaNHSGn_w" name="setXMLEntity03" visibility="public">
+                  <ownedParameter xmi:id="_6UnaeOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaeeO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6UnaeuO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unae-O8EdyGNPaNHSGn_w" name="cloneLegend" visibility="public">
+                  <ownedParameter xmi:id="_6UnafOO8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnafeO8EdyGNPaNHSGn_w" name="setDataSource" visibility="public">
+                  <ownedParameter xmi:id="_6UnafuO8EdyGNPaNHSGn_w" name="ds" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unaf-O8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UnagOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnageO8EdyGNPaNHSGn_w" name="setShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UnaguO8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unag-O8EdyGNPaNHSGn_w" name="getSymbolByFeature" visibility="public">
+                  <ownedParameter xmi:id="_6UnahOO8EdyGNPaNHSGn_w" name="feat" type="_6UUetuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaheO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnahuO8EdyGNPaNHSGn_w" name="useDefaultSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6Unah-O8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaiOO8EdyGNPaNHSGn_w" name="getUsedFields" visibility="public">
+                  <ownedParameter xmi:id="_6UnaieO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaiuO8EdyGNPaNHSGn_w" name="isUseDefaultSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6Unai-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnajOO8EdyGNPaNHSGn_w" name="getZSort" visibility="public">
+                  <ownedParameter xmi:id="_6UnajeO8EdyGNPaNHSGn_w" name="return" type="_6UnbXeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnajuO8EdyGNPaNHSGn_w" name="setZSort" visibility="public">
+                  <ownedParameter xmi:id="_6Unaj-O8EdyGNPaNHSGn_w" name="zSort" type="_6UnbXeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnakOO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                  <ownedParameter xmi:id="_6UnakeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnakuO8EdyGNPaNHSGn_w" name="ValueLegendEvent">
+                <generalization xmi:id="_6Unak-O8EdyGNPaNHSGn_w" general="_6Una7uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnalOO8EdyGNPaNHSGn_w" name="oldValue" visibility="private" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnaleO8EdyGNPaNHSGn_w" name="newValue" visibility="private" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnaluO8EdyGNPaNHSGn_w" name="getOldValue" visibility="public">
+                  <ownedParameter xmi:id="_6Unal-O8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnamOO8EdyGNPaNHSGn_w" name="getNewValue" visibility="public">
+                  <ownedParameter xmi:id="_6UnameO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnamuO8EdyGNPaNHSGn_w" name="getEventType" visibility="public">
+                  <ownedParameter xmi:id="_6Unam-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnanOO8EdyGNPaNHSGn_w" name="LabelLegendEvent">
+                <generalization xmi:id="_6UnaneO8EdyGNPaNHSGn_w" general="_6Ud1S-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnanuO8EdyGNPaNHSGn_w" name="oldFieldId" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unan-O8EdyGNPaNHSGn_w" name="newFieldId" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnaoOO8EdyGNPaNHSGn_w" name="getNewFieldId" visibility="public">
+                  <ownedParameter xmi:id="_6UnaoeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaouO8EdyGNPaNHSGn_w" name="getOldFieldId" visibility="public">
+                  <ownedParameter xmi:id="_6Unao-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnapOO8EdyGNPaNHSGn_w" name="XmlBuilder">
+                <ownedAttribute xmi:id="_6UnapeO8EdyGNPaNHSGn_w" name="DEF_XMLDOC_SIZE" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnapuO8EdyGNPaNHSGn_w" name="PAD" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unap-O8EdyGNPaNHSGn_w" name="NUM_PADSTRINGS" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnaqOO8EdyGNPaNHSGn_w" name="NEWLINE_BYTES" visibility="private" type="_6UKs0uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnaqeO8EdyGNPaNHSGn_w" name="s_padStrings" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnaquO8EdyGNPaNHSGn_w" name="s_newlineXmlEnc" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unaq-O8EdyGNPaNHSGn_w" name="m_xml" visibility="private" type="_6UUwIOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnarOO8EdyGNPaNHSGn_w" name="m_encodeBuf" visibility="private" type="_6UUwIOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnareO8EdyGNPaNHSGn_w" name="m_pad" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnaruO8EdyGNPaNHSGn_w" name="m_autoPad" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unar-O8EdyGNPaNHSGn_w" name="m_openElements" visibility="protected" type="_6Udw7uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnasOO8EdyGNPaNHSGn_w" name="m_padLevel" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnaseO8EdyGNPaNHSGn_w" name="encoding" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnasuO8EdyGNPaNHSGn_w" name="reset" visibility="public"/>
+                <ownedOperation xmi:id="_6Unas-O8EdyGNPaNHSGn_w" name="writeRaw" visibility="public">
+                  <ownedParameter xmi:id="_6UnatOO8EdyGNPaNHSGn_w" name="raw" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnateO8EdyGNPaNHSGn_w" name="writeComment" visibility="public">
+                  <ownedParameter xmi:id="_6UnatuO8EdyGNPaNHSGn_w" name="comment" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unat-O8EdyGNPaNHSGn_w" name="writeHeader" visibility="public"/>
+                <ownedOperation xmi:id="_6UnauOO8EdyGNPaNHSGn_w" name="setEncoding" visibility="public">
+                  <ownedParameter xmi:id="_6UnaueO8EdyGNPaNHSGn_w" name="encoding" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnauuO8EdyGNPaNHSGn_w" name="writeTag" visibility="public">
+                  <ownedParameter xmi:id="_6Unau-O8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnavOO8EdyGNPaNHSGn_w" name="data" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaveO8EdyGNPaNHSGn_w" name="writeTag" visibility="public">
+                  <ownedParameter xmi:id="_6UnavuO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unav-O8EdyGNPaNHSGn_w" name="attributes" type="_6UnhleO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnawOO8EdyGNPaNHSGn_w" name="writeTag" visibility="public">
+                  <ownedParameter xmi:id="_6UnaweO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnawuO8EdyGNPaNHSGn_w" name="attr1Name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unaw-O8EdyGNPaNHSGn_w" name="attr1Value" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaxOO8EdyGNPaNHSGn_w" name="attr2Name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnaxeO8EdyGNPaNHSGn_w" name="attr2Value" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnaxuO8EdyGNPaNHSGn_w" name="writeTag" visibility="public">
+                  <ownedParameter xmi:id="_6Unax-O8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnayOO8EdyGNPaNHSGn_w" name="data" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnayeO8EdyGNPaNHSGn_w" name="attrName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnayuO8EdyGNPaNHSGn_w" name="attrValue" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unay-O8EdyGNPaNHSGn_w" name="writeTag" visibility="public">
+                  <ownedParameter xmi:id="_6UnazOO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnazeO8EdyGNPaNHSGn_w" name="data" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnazuO8EdyGNPaNHSGn_w" name="attr1Name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unaz-O8EdyGNPaNHSGn_w" name="attr1Value" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Una0OO8EdyGNPaNHSGn_w" name="attr2Name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Una0eO8EdyGNPaNHSGn_w" name="attr2Value" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Una0uO8EdyGNPaNHSGn_w" name="writeTag" visibility="public">
+                  <ownedParameter xmi:id="_6Una0-O8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Una1OO8EdyGNPaNHSGn_w" name="data" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Una1eO8EdyGNPaNHSGn_w" name="attributes" type="_6UnhleO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Una1uO8EdyGNPaNHSGn_w" name="openTag" visibility="public">
+                  <ownedParameter xmi:id="_6Una1-O8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Una2OO8EdyGNPaNHSGn_w" name="openTag" visibility="public">
+                  <ownedParameter xmi:id="_6Una2eO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Una2uO8EdyGNPaNHSGn_w" name="attrName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Una2-O8EdyGNPaNHSGn_w" name="attrValue" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Una3OO8EdyGNPaNHSGn_w" name="openTag" visibility="public">
+                  <ownedParameter xmi:id="_6Una3eO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Una3uO8EdyGNPaNHSGn_w" name="attr1Name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Una3-O8EdyGNPaNHSGn_w" name="attr1Value" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Una4OO8EdyGNPaNHSGn_w" name="attr2Name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Una4eO8EdyGNPaNHSGn_w" name="attr2Value" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Una4uO8EdyGNPaNHSGn_w" name="openTag" visibility="public">
+                  <ownedParameter xmi:id="_6Una4-O8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Una5OO8EdyGNPaNHSGn_w" name="attributes" type="_6UnhleO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Una5eO8EdyGNPaNHSGn_w" name="closeTag" visibility="public"/>
+                <ownedOperation xmi:id="_6Una5uO8EdyGNPaNHSGn_w" name="getXML" visibility="public">
+                  <ownedParameter xmi:id="_6Una5-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Una6OO8EdyGNPaNHSGn_w" name="encode" visibility="private">
+                  <ownedParameter xmi:id="_6Una6eO8EdyGNPaNHSGn_w" name="src" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Una6uO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Una6-O8EdyGNPaNHSGn_w" name="encode" visibility="private" isStatic="true">
+                  <ownedParameter xmi:id="_6Una7OO8EdyGNPaNHSGn_w" name="src" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Una7eO8EdyGNPaNHSGn_w" name="dst" type="_6UUwIOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Una7uO8EdyGNPaNHSGn_w" name="ClassificationLegendEvent">
+                <generalization xmi:id="_6Una7-O8EdyGNPaNHSGn_w" general="_6Ud1S-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Una8OO8EdyGNPaNHSGn_w" name="getClassIndex" visibility="public">
+                  <ownedParameter xmi:id="_6Una8eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Una8uO8EdyGNPaNHSGn_w" name="getEventType" visibility="public">
+                  <ownedParameter xmi:id="_6Una8-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6Una9OO8EdyGNPaNHSGn_w" name="IClassifiedLegend">
+                <generalization xmi:id="_6Una9eO8EdyGNPaNHSGn_w" general="_6UnbUOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Una9uO8EdyGNPaNHSGn_w" name="getDescriptions">
+                  <ownedParameter xmi:id="_6Una9-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Una-OO8EdyGNPaNHSGn_w" name="getSymbols">
+                  <ownedParameter xmi:id="_6Una-eO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Una-uO8EdyGNPaNHSGn_w" name="getValues">
+                  <ownedParameter xmi:id="_6Una--O8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Una_OO8EdyGNPaNHSGn_w" name="VectorialIntervalLegend">
+                <generalization xmi:id="_6Una_eO8EdyGNPaNHSGn_w" general="_6UnZh-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Una_uO8EdyGNPaNHSGn_w" name="startColor" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Una_-O8EdyGNPaNHSGn_w" name="endColor" visibility="private" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnbAOO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6UnbAeO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbAuO8EdyGNPaNHSGn_w" name="setXMLEntity03" visibility="public">
+                  <ownedParameter xmi:id="_6UnbA-O8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbBOO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6UnbBeO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbBuO8EdyGNPaNHSGn_w" name="cloneLegend" visibility="public">
+                  <ownedParameter xmi:id="_6UnbB-O8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbCOO8EdyGNPaNHSGn_w" name="getEndColor" visibility="public">
+                  <ownedParameter xmi:id="_6UnbCeO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbCuO8EdyGNPaNHSGn_w" name="setEndColor" visibility="public">
+                  <ownedParameter xmi:id="_6UnbC-O8EdyGNPaNHSGn_w" name="endColor" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbDOO8EdyGNPaNHSGn_w" name="getStartColor" visibility="public">
+                  <ownedParameter xmi:id="_6UnbDeO8EdyGNPaNHSGn_w" name="return" type="_6UnhheO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbDuO8EdyGNPaNHSGn_w" name="setStartColor" visibility="public">
+                  <ownedParameter xmi:id="_6UnbD-O8EdyGNPaNHSGn_w" name="startColor" type="_6UnhheO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbEOO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UnbEeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbEuO8EdyGNPaNHSGn_w" name="setShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UnbE-O8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbFOO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                  <ownedParameter xmi:id="_6UnbFeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbFuO8EdyGNPaNHSGn_w" name="initializeVectorialIntervalLegend" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UnbF-O8EdyGNPaNHSGn_w" name="srcLegend" type="_6UnZh-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbGOO8EdyGNPaNHSGn_w" name="targetLegend" type="_6UnZh-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UnbGeO8EdyGNPaNHSGn_w" name="IVectorLegend">
+                <generalization xmi:id="_6UnbGuO8EdyGNPaNHSGn_w" general="_6UnbUOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnbG-O8EdyGNPaNHSGn_w" name="setDataSource">
+                  <ownedParameter xmi:id="_6UnbHOO8EdyGNPaNHSGn_w" name="ds" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbHeO8EdyGNPaNHSGn_w" name="getSymbol">
+                  <ownedParameter xmi:id="_6UnbHuO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbH-O8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbIOO8EdyGNPaNHSGn_w" name="getSymbolByFeature">
+                  <ownedParameter xmi:id="_6UnbIeO8EdyGNPaNHSGn_w" name="feat" type="_6UUetuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbIuO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbI-O8EdyGNPaNHSGn_w" name="getShapeType">
+                  <ownedParameter xmi:id="_6UnbJOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbJeO8EdyGNPaNHSGn_w" name="setShapeType">
+                  <ownedParameter xmi:id="_6UnbJuO8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbJ-O8EdyGNPaNHSGn_w" name="setDefaultSymbol">
+                  <ownedParameter xmi:id="_6UnbKOO8EdyGNPaNHSGn_w" name="s" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbKeO8EdyGNPaNHSGn_w" name="getXMLEntity">
+                  <ownedParameter xmi:id="_6UnbKuO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbK-O8EdyGNPaNHSGn_w" name="setXMLEntity">
+                  <ownedParameter xmi:id="_6UnbLOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbLeO8EdyGNPaNHSGn_w" name="setXMLEntity03">
+                  <ownedParameter xmi:id="_6UnbLuO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbL-O8EdyGNPaNHSGn_w" name="isUseDefaultSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UnbMOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbMeO8EdyGNPaNHSGn_w" name="useDefaultSymbol">
+                  <ownedParameter xmi:id="_6UnbMuO8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbM-O8EdyGNPaNHSGn_w" name="getZSort" visibility="public">
+                  <ownedParameter xmi:id="_6UnbNOO8EdyGNPaNHSGn_w" name="return" type="_6UnbXeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbNeO8EdyGNPaNHSGn_w" name="setZSort" visibility="public">
+                  <ownedParameter xmi:id="_6UnbNuO8EdyGNPaNHSGn_w" name="zSort" type="_6UnbXeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UnbN-O8EdyGNPaNHSGn_w" name="LegendListener">
+                <ownedOperation xmi:id="_6UnbOOO8EdyGNPaNHSGn_w" name="legendChanged">
+                  <ownedParameter xmi:id="_6UnbOeO8EdyGNPaNHSGn_w" name="e" type="_6Ud5veO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnbOuO8EdyGNPaNHSGn_w" name="LegendFactory">
+                <ownedOperation xmi:id="_6UnbO-O8EdyGNPaNHSGn_w" name="createSingleSymbolLegend" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UnbPOO8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbPeO8EdyGNPaNHSGn_w" name="return" type="_6UnbGeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbPuO8EdyGNPaNHSGn_w" name="createVectorialUniqueValueLegend" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UnbP-O8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbQOO8EdyGNPaNHSGn_w" name="return" type="_6UnbseO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbQeO8EdyGNPaNHSGn_w" name="createVectorialIntervalLegend" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UnbQuO8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbQ-O8EdyGNPaNHSGn_w" name="return" type="_6Una_OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbROO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UnbReO8EdyGNPaNHSGn_w" name="r" type="_6UnbGeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbRuO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbR-O8EdyGNPaNHSGn_w" name="createFromXML03" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UnbSOO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbSeO8EdyGNPaNHSGn_w" name="return" type="_6UnbGeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbSuO8EdyGNPaNHSGn_w" name="createFromXML" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UnbS-O8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbTOO8EdyGNPaNHSGn_w" name="return" type="_6UnbGeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbTeO8EdyGNPaNHSGn_w" name="cloneLegend" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UnbTuO8EdyGNPaNHSGn_w" name="l" type="_6UnbGeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbT-O8EdyGNPaNHSGn_w" name="return" type="_6UnbGeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UnbUOO8EdyGNPaNHSGn_w" name="ILegend">
+                <ownedOperation xmi:id="_6UnbUeO8EdyGNPaNHSGn_w" name="getDefaultSymbol">
+                  <ownedParameter xmi:id="_6UnbUuO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbU-O8EdyGNPaNHSGn_w" name="cloneLegend">
+                  <ownedParameter xmi:id="_6UnbVOO8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbVeO8EdyGNPaNHSGn_w" name="addLegendListener">
+                  <ownedParameter xmi:id="_6UnbVuO8EdyGNPaNHSGn_w" name="listener" type="_6UnaNOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbV-O8EdyGNPaNHSGn_w" name="removeLegendListener" visibility="public">
+                  <ownedParameter xmi:id="_6UnbWOO8EdyGNPaNHSGn_w" name="listener" type="_6UnaNOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbWeO8EdyGNPaNHSGn_w" name="fireDefaultSymbolChangedEvent" visibility="public">
+                  <ownedParameter xmi:id="_6UnbWuO8EdyGNPaNHSGn_w" name="event" type="_6UnZMOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbW-O8EdyGNPaNHSGn_w" name="getListeners" visibility="public">
+                  <ownedParameter xmi:id="_6UnbXOO8EdyGNPaNHSGn_w" name="return" type="_6UnaNOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnbXeO8EdyGNPaNHSGn_w" name="ZSort" clientDependency="_6UnbY-O8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UnbXuO8EdyGNPaNHSGn_w" name="COLUMN_SEPARATOR" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnbX-O8EdyGNPaNHSGn_w" name="ROW_SEPARATOR" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnbYOO8EdyGNPaNHSGn_w" name="matrix" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnbYeO8EdyGNPaNHSGn_w" name="usingZSort" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnbYuO8EdyGNPaNHSGn_w" name="symbols" visibility="private" type="_6UdsL-O8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnbY-O8EdyGNPaNHSGn_w" name="LegendContentsChangedListener" supplier="_6UnaNOO8EdyGNPaNHSGn_w" client="_6UnbXeO8EdyGNPaNHSGn_w" contract="_6UnaNOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnbZOO8EdyGNPaNHSGn_w" name="initialize" visibility="private">
+                  <ownedParameter xmi:id="_6UnbZeO8EdyGNPaNHSGn_w" name="legend" type="_6UnbUOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbZuO8EdyGNPaNHSGn_w" name="legendChanged" visibility="public">
+                  <ownedParameter xmi:id="_6UnbZ-O8EdyGNPaNHSGn_w" name="e" type="_6Ud5veO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbaOO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                  <ownedParameter xmi:id="_6UnbaeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbauO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Unba-O8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbbOO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6UnbbeO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbbuO8EdyGNPaNHSGn_w" name="getLevelCount" visibility="public">
+                  <ownedParameter xmi:id="_6Unbb-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbcOO8EdyGNPaNHSGn_w" name="setUsingZSort" visibility="public">
+                  <ownedParameter xmi:id="_6UnbceO8EdyGNPaNHSGn_w" name="usingZSort" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbcuO8EdyGNPaNHSGn_w" name="setLevels" visibility="public">
+                  <ownedParameter xmi:id="_6Unbc-O8EdyGNPaNHSGn_w" name="sym" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbdOO8EdyGNPaNHSGn_w" name="values" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbdeO8EdyGNPaNHSGn_w" name="setLevels" visibility="public">
+                  <ownedParameter xmi:id="_6UnbduO8EdyGNPaNHSGn_w" name="row" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unbd-O8EdyGNPaNHSGn_w" name="values" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbeOO8EdyGNPaNHSGn_w" name="isUsingZSort" visibility="public">
+                  <ownedParameter xmi:id="_6UnbeeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbeuO8EdyGNPaNHSGn_w" name="getSymbols" visibility="public">
+                  <ownedParameter xmi:id="_6Unbe-O8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbfOO8EdyGNPaNHSGn_w" name="getDescriptions" visibility="public">
+                  <ownedParameter xmi:id="_6UnbfeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbfuO8EdyGNPaNHSGn_w" name="getSymbolLevel" visibility="public">
+                  <ownedParameter xmi:id="_6Unbf-O8EdyGNPaNHSGn_w" name="layer" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbgOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbgeO8EdyGNPaNHSGn_w" name="getTopLevelIndexAllowed" visibility="public">
+                  <ownedParameter xmi:id="_6UnbguO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unbg-O8EdyGNPaNHSGn_w" name="toString" visibility="public">
+                  <ownedParameter xmi:id="_6UnbhOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbheO8EdyGNPaNHSGn_w" name="replaceSymbol" visibility="private">
+                  <ownedParameter xmi:id="_6UnbhuO8EdyGNPaNHSGn_w" name="oldSymbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unbh-O8EdyGNPaNHSGn_w" name="newSymbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbiOO8EdyGNPaNHSGn_w" name="symbolChanged" visibility="public">
+                  <ownedParameter xmi:id="_6UnbieO8EdyGNPaNHSGn_w" name="e" type="_6UnZMOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbiuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unbi-O8EdyGNPaNHSGn_w" name="classifiedSymbolChange" visibility="public">
+                  <ownedParameter xmi:id="_6UnbjOO8EdyGNPaNHSGn_w" name="e" type="_6UnZMOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbjeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbjuO8EdyGNPaNHSGn_w" name="intervalChange" visibility="public">
+                  <ownedParameter xmi:id="_6Unbj-O8EdyGNPaNHSGn_w" name="e" type="_6UnZOuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbkOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbkeO8EdyGNPaNHSGn_w" name="valueChange" visibility="public">
+                  <ownedParameter xmi:id="_6UnbkuO8EdyGNPaNHSGn_w" name="e" type="_6UnakuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unbk-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnblOO8EdyGNPaNHSGn_w" name="labelFieldChange" visibility="public">
+                  <ownedParameter xmi:id="_6UnbleO8EdyGNPaNHSGn_w" name="e" type="_6UnanOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbluO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unbl-O8EdyGNPaNHSGn_w" name="legendCleared" visibility="public">
+                  <ownedParameter xmi:id="_6UnbmOO8EdyGNPaNHSGn_w" name="event" type="_6UnZVOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnbmeO8EdyGNPaNHSGn_w" name="NullIntervalValue" clientDependency="_6UnbmuO8EdyGNPaNHSGn_w">
+                <interfaceRealization xmi:id="_6UnbmuO8EdyGNPaNHSGn_w" name="IInterval" supplier="_6UnZCeO8EdyGNPaNHSGn_w" client="_6UnbmeO8EdyGNPaNHSGn_w" contract="_6UnZCeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Unbm-O8EdyGNPaNHSGn_w" name="isInInterval" visibility="public">
+                  <ownedParameter xmi:id="_6UnbnOO8EdyGNPaNHSGn_w" name="v" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbneO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbnuO8EdyGNPaNHSGn_w" name="toString" visibility="public">
+                  <ownedParameter xmi:id="_6Unbn-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnboOO8EdyGNPaNHSGn_w" name="AbstractLegend" clientDependency="_6UnbouO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UnboeO8EdyGNPaNHSGn_w" name="listeners" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnbouO8EdyGNPaNHSGn_w" name="ILegend" supplier="_6UnbUOO8EdyGNPaNHSGn_w" client="_6UnboOO8EdyGNPaNHSGn_w" contract="_6UnbUOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Unbo-O8EdyGNPaNHSGn_w" name="addLegendListener" visibility="public">
+                  <ownedParameter xmi:id="_6UnbpOO8EdyGNPaNHSGn_w" name="listener" type="_6UnaNOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbpeO8EdyGNPaNHSGn_w" name="removeLegendListener" visibility="public">
+                  <ownedParameter xmi:id="_6UnbpuO8EdyGNPaNHSGn_w" name="listener" type="_6UnaNOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unbp-O8EdyGNPaNHSGn_w" name="fireDefaultSymbolChangedEvent" visibility="public">
+                  <ownedParameter xmi:id="_6UnbqOO8EdyGNPaNHSGn_w" name="event" type="_6UnZMOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbqeO8EdyGNPaNHSGn_w" name="getListeners" visibility="public">
+                  <ownedParameter xmi:id="_6UnbquO8EdyGNPaNHSGn_w" name="return" type="_6UnaNOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Unbq-O8EdyGNPaNHSGn_w" name="NullUniqueValue">
+                <generalization xmi:id="_6UnbrOO8EdyGNPaNHSGn_w" general="_6UneG-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnbreO8EdyGNPaNHSGn_w" name="getSQLType" visibility="public">
+                  <ownedParameter xmi:id="_6UnbruO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unbr-O8EdyGNPaNHSGn_w" name="toString" visibility="public">
+                  <ownedParameter xmi:id="_6UnbsOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnbseO8EdyGNPaNHSGn_w" name="VectorialUniqueValueLegend" clientDependency="_6Unbv-O8EdyGNPaNHSGn_w">
+                <generalization xmi:id="_6UnbsuO8EdyGNPaNHSGn_w" general="_6UnZW-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unbs-O8EdyGNPaNHSGn_w" name="log" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnbtOO8EdyGNPaNHSGn_w" name="fieldId" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnbteO8EdyGNPaNHSGn_w" name="dataSource" visibility="protected" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnbtuO8EdyGNPaNHSGn_w" name="symbols" visibility="private" type="_6UdzmOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unbt-O8EdyGNPaNHSGn_w" name="keys" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnbuOO8EdyGNPaNHSGn_w" name="labelFieldName" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnbueO8EdyGNPaNHSGn_w" name="labelFieldHeight" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnbuuO8EdyGNPaNHSGn_w" name="labelFieldRotation" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unbu-O8EdyGNPaNHSGn_w" name="defaultSymbol" visibility="private" type="_6UUlkuO8EdyGNPaNHSGn_w" association="_6UneMOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnbvOO8EdyGNPaNHSGn_w" name="shapeType" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnbveO8EdyGNPaNHSGn_w" name="valueType" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnbvuO8EdyGNPaNHSGn_w" name="useDefaultSymbol" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Unbv-O8EdyGNPaNHSGn_w" name="IVectorialUniqueValueLegend" supplier="_6UnZD-O8EdyGNPaNHSGn_w" client="_6UnbseO8EdyGNPaNHSGn_w" contract="_6UnZD-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnbwOO8EdyGNPaNHSGn_w" name="setShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6UnbweO8EdyGNPaNHSGn_w" name="shapeType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbwuO8EdyGNPaNHSGn_w" name="setValueSymbolByID" visibility="public">
+                  <ownedParameter xmi:id="_6Unbw-O8EdyGNPaNHSGn_w" name="id" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbxOO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbxeO8EdyGNPaNHSGn_w" name="setValueSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6UnbxuO8EdyGNPaNHSGn_w" name="id" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unbx-O8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbyOO8EdyGNPaNHSGn_w" name="getValues" visibility="public">
+                  <ownedParameter xmi:id="_6UnbyeO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbyuO8EdyGNPaNHSGn_w" name="addSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6Unby-O8EdyGNPaNHSGn_w" name="key" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnbzOO8EdyGNPaNHSGn_w" name="symbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnbzeO8EdyGNPaNHSGn_w" name="clear" visibility="public"/>
+                <ownedOperation xmi:id="_6UnbzuO8EdyGNPaNHSGn_w" name="getDescriptions" visibility="public">
+                  <ownedParameter xmi:id="_6Unbz-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb0OO8EdyGNPaNHSGn_w" name="getSymbols" visibility="public">
+                  <ownedParameter xmi:id="_6Unb0eO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb0uO8EdyGNPaNHSGn_w" name="setClassifyingFieldNames" visibility="public">
+                  <ownedParameter xmi:id="_6Unb0-O8EdyGNPaNHSGn_w" name="fNames" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb1OO8EdyGNPaNHSGn_w" name="getSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6Unb1eO8EdyGNPaNHSGn_w" name="recordIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unb1uO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb1-O8EdyGNPaNHSGn_w" name="getSymbolByFeature" visibility="public">
+                  <ownedParameter xmi:id="_6Unb2OO8EdyGNPaNHSGn_w" name="feat" type="_6UUetuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unb2eO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb2uO8EdyGNPaNHSGn_w" name="getDefaultSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6Unb2-O8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb3OO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Unb3eO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb3uO8EdyGNPaNHSGn_w" name="setXMLEntity03" visibility="public">
+                  <ownedParameter xmi:id="_6Unb3-O8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb4OO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                  <ownedParameter xmi:id="_6Unb4eO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb4uO8EdyGNPaNHSGn_w" name="setDefaultSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6Unb4-O8EdyGNPaNHSGn_w" name="s" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb5OO8EdyGNPaNHSGn_w" name="getValue" visibility="private">
+                  <ownedParameter xmi:id="_6Unb5eO8EdyGNPaNHSGn_w" name="s" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unb5uO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb5-O8EdyGNPaNHSGn_w" name="getValue" visibility="private">
+                  <ownedParameter xmi:id="_6Unb6OO8EdyGNPaNHSGn_w" name="s" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unb6eO8EdyGNPaNHSGn_w" name="type" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unb6uO8EdyGNPaNHSGn_w" name="return" type="_6UUrNeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb6-O8EdyGNPaNHSGn_w" name="cloneLegend" visibility="public">
+                  <ownedParameter xmi:id="_6Unb7OO8EdyGNPaNHSGn_w" name="return" type="_6UnbUOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb7eO8EdyGNPaNHSGn_w" name="setDataSource" visibility="public">
+                  <ownedParameter xmi:id="_6Unb7uO8EdyGNPaNHSGn_w" name="ds" type="_6UdsHuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb7-O8EdyGNPaNHSGn_w" name="getSymbolByValue" visibility="public">
+                  <ownedParameter xmi:id="_6Unb8OO8EdyGNPaNHSGn_w" name="key" type="_6UUrNeO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unb8eO8EdyGNPaNHSGn_w" name="return" type="_6UUlkuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb8uO8EdyGNPaNHSGn_w" name="getShapeType" visibility="public">
+                  <ownedParameter xmi:id="_6Unb8-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb9OO8EdyGNPaNHSGn_w" name="useDefaultSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6Unb9eO8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb9uO8EdyGNPaNHSGn_w" name="isUseDefaultSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6Unb9-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb-OO8EdyGNPaNHSGn_w" name="delSymbol" visibility="public">
+                  <ownedParameter xmi:id="_6Unb-eO8EdyGNPaNHSGn_w" name="key" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb-uO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                  <ownedParameter xmi:id="_6Unb--O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unb_OO8EdyGNPaNHSGn_w" name="replace" visibility="public">
+                  <ownedParameter xmi:id="_6Unb_eO8EdyGNPaNHSGn_w" name="oldSymbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unb_uO8EdyGNPaNHSGn_w" name="newSymbol" type="_6UUlkuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6Unb_-O8EdyGNPaNHSGn_w" name="styling">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UncAOO8EdyGNPaNHSGn_w" name="FStyle2D">
+                  <ownedAttribute xmi:id="_6UncAeO8EdyGNPaNHSGn_w" name="POINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncAuO8EdyGNPaNHSGn_w" name="LINE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncA-O8EdyGNPaNHSGn_w" name="POLYGON" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncBOO8EdyGNPaNHSGn_w" name="TEXT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncBeO8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_POINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncBuO8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_LINE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncB-O8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_FILL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncCOO8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_TEXT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncCeO8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_ICON" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncCuO8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_POINTZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncC-O8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_MULTIPOINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncDOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_POINTZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncDeO8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_POLYLINEZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncDuO8EdyGNPaNHSGn_w" name="SYMBOL_TYPE_POLYGONZ" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncD-O8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_SOLID" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncEOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_TRANSPARENT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncEeO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_HORIZONTAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncEuO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_VERTICAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncE-O8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_CROSS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncFOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_UPWARD_DIAGONAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncFeO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_DOWNWARD_DIAGONAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncFuO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_CROSS_DIAGONAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncF-O8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_GRAYFILL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncGOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_LIGHTGRAYFILL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncGeO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_FILL_DARKGRAYFILL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncGuO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_MARKER_CIRCLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncG-O8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_MARKER_SQUARE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncHOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_MARKER_TRIANGLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncHeO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_MARKER_CROSS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncHuO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_MARKER_TRUETYPE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncH-O8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_MARKER_IMAGEN" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncIOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_LINE_SOLID" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncIeO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_LINE_DASH" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncIuO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_LINE_DOT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncI-O8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_LINE_DASHDOT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncJOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_LINE_DASHDOTDOT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncJeO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_LINE_RAIL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncJuO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_LINE_ARROW" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncJ-O8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_TEXT_NORMAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncKOO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_TEXT_CURSIVE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncKeO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_TEXT_BOLD" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncKuO8EdyGNPaNHSGn_w" name="SYMBOL_STYLE_TEXT_BOLDCURSIVE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncK-O8EdyGNPaNHSGn_w" name="rgbPoint" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncLOO8EdyGNPaNHSGn_w" name="rgbLine" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncLeO8EdyGNPaNHSGn_w" name="rgbPolygon" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncLuO8EdyGNPaNHSGn_w" name="rgbText" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncL-O8EdyGNPaNHSGn_w" name="pointStyle2D" visibility="private" type="_6UneGuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncMOO8EdyGNPaNHSGn_w" name="lineStyle2D" visibility="private" type="_6UneFeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncMeO8EdyGNPaNHSGn_w" name="polygonStyle2D" visibility="private" type="_6UneFuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncMuO8EdyGNPaNHSGn_w" name="textStyle2D" visibility="private" type="_6UneGuO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncM-O8EdyGNPaNHSGn_w" name="img" visibility="private" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncNOO8EdyGNPaNHSGn_w" name="shpPainter" visibility="private" type="_6UnaQOO8EdyGNPaNHSGn_w" association="_6UneF-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UncNeO8EdyGNPaNHSGn_w" name="rect" visibility="private" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UncNuO8EdyGNPaNHSGn_w" name="getRgbPoint" visibility="public">
+                    <ownedParameter xmi:id="_6UncN-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UncOOO8EdyGNPaNHSGn_w" name="getRgbLine" visibility="public">
+                    <ownedParameter xmi:id="_6UncOeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UncOuO8EdyGNPaNHSGn_w" name="getRgbPolygon" visibility="public">
+                    <ownedParameter xmi:id="_6UncO-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UncPOO8EdyGNPaNHSGn_w" name="getRgbText" visibility="public">
+                    <ownedParameter xmi:id="_6UncPeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UncPuO8EdyGNPaNHSGn_w" name="getLineStyle2D" visibility="public">
+                    <ownedParameter xmi:id="_6UncP-O8EdyGNPaNHSGn_w" name="return" type="_6UneFeO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UncQOO8EdyGNPaNHSGn_w" name="setLineStyle2D" visibility="public">
+                    <ownedParameter xmi:id="_6UncQeO8EdyGNPaNHSGn_w" name="style2D" type="_6UneFeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UncQuO8EdyGNPaNHSGn_w" name="getPolygonStyle2D" visibility="public">
+                    <ownedParameter xmi:id="_6UncQ-O8EdyGNPaNHSGn_w" name="return" type="_6UneFuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UncROO8EdyGNPaNHSGn_w" name="setPolygonStyle2D" visibility="public">
+                    <ownedParameter xmi:id="_6UncReO8EdyGNPaNHSGn_w" name="style2D" type="_6UneFuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UncRuO8EdyGNPaNHSGn_w" name="getPointStyle2D" visibility="public">
+                    <ownedParameter xmi:id="_6UncR-O8EdyGNPaNHSGn_w" name="return" type="_6UneGuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UncSOO8EdyGNPaNHSGn_w" name="setPointStyle2D" visibility="public">
+                    <ownedParameter xmi:id="_6UncSeO8EdyGNPaNHSGn_w" name="style2D" type="_6UneGuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UncSuO8EdyGNPaNHSGn_w" name="getTextStyle2D" visibility="public">
+                    <ownedParameter xmi:id="_6UncS-O8EdyGNPaNHSGn_w" name="return" type="_6UneGuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UncTOO8EdyGNPaNHSGn_w" name="setTextStyle2D" visibility="public">
+                    <ownedParameter xmi:id="_6UncTeO8EdyGNPaNHSGn_w" name="style2D" type="_6UneGuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UncTuO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                    <ownedParameter xmi:id="_6UncT-O8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Package" xmi:id="_6UncUOO8EdyGNPaNHSGn_w" name="labeling">
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UncUeO8EdyGNPaNHSGn_w" name="LabelLocationMetrics">
+                    <ownedAttribute xmi:id="_6UncUuO8EdyGNPaNHSGn_w" name="anchor" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncU-O8EdyGNPaNHSGn_w" name="rotation" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncVOO8EdyGNPaNHSGn_w" name="isFixed" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncVeO8EdyGNPaNHSGn_w" name="labelScale" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UncVuO8EdyGNPaNHSGn_w" name="getAnchor" visibility="public">
+                      <ownedParameter xmi:id="_6UncV-O8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncWOO8EdyGNPaNHSGn_w" name="setAnchor" visibility="public">
+                      <ownedParameter xmi:id="_6UncWeO8EdyGNPaNHSGn_w" name="anchor" type="_6UUiRuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncWuO8EdyGNPaNHSGn_w" name="getRotation" visibility="public">
+                      <ownedParameter xmi:id="_6UncW-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncXOO8EdyGNPaNHSGn_w" name="setRotation" visibility="public">
+                      <ownedParameter xmi:id="_6UncXeO8EdyGNPaNHSGn_w" name="rotation" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncXuO8EdyGNPaNHSGn_w" name="isFixed" visibility="public">
+                      <ownedParameter xmi:id="_6UncX-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Interface" xmi:id="_6UncYOO8EdyGNPaNHSGn_w" name="IPlacementConstraints">
+                    <ownedAttribute xmi:id="_6UncYeO8EdyGNPaNHSGn_w" name="REMOVE_DUPLICATE_LABELS" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncYuO8EdyGNPaNHSGn_w" name="ONE_LABEL_PER_FEATURE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncY-O8EdyGNPaNHSGn_w" name="ONE_LABEL_PER_FEATURE_PART" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncZOO8EdyGNPaNHSGn_w" name="OFFSET_HORIZONTALY_AROUND_THE_POINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncZeO8EdyGNPaNHSGn_w" name="ON_TOP_OF_THE_POINT" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncZuO8EdyGNPaNHSGn_w" name="AT_SPECIFIED_ANGLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncZ-O8EdyGNPaNHSGn_w" name="AT_ANGLE_SPECIFIED_BY_A_FIELD" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncaOO8EdyGNPaNHSGn_w" name="HORIZONTAL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncaeO8EdyGNPaNHSGn_w" name="PARALLEL" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncauO8EdyGNPaNHSGn_w" name="FOLLOWING_LINE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Unca-O8EdyGNPaNHSGn_w" name="PERPENDICULAR" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncbOO8EdyGNPaNHSGn_w" name="AT_THE_END_OF_THE_LINE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncbeO8EdyGNPaNHSGn_w" name="AT_THE_MIDDLE_OF_THE_LINE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncbuO8EdyGNPaNHSGn_w" name="AT_THE_BEGINING_OF_THE_LINE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Uncb-O8EdyGNPaNHSGn_w" name="AT_BEST_OF_LINE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UnccOO8EdyGNPaNHSGn_w" name="setPlacementMode" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6UncceO8EdyGNPaNHSGn_w" name="mode" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UnccuO8EdyGNPaNHSGn_w" name="isBellowTheLine" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Uncc-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncdOO8EdyGNPaNHSGn_w" name="setBellowTheLine" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6UncdeO8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncduO8EdyGNPaNHSGn_w" name="isAboveTheLine" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Uncd-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UnceOO8EdyGNPaNHSGn_w" name="setAboveTheLine" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6UnceeO8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UnceuO8EdyGNPaNHSGn_w" name="isOnTheLine" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Unce-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncfOO8EdyGNPaNHSGn_w" name="setOnTheLine" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6UncfeO8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncfuO8EdyGNPaNHSGn_w" name="setLocationAlongTheLine" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Uncf-O8EdyGNPaNHSGn_w" name="location" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncgOO8EdyGNPaNHSGn_w" name="isPageOriented" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6UncgeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncguO8EdyGNPaNHSGn_w" name="setPageOriented" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Uncg-O8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UnchOO8EdyGNPaNHSGn_w" name="setDuplicateLabelsMode" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6UncheO8EdyGNPaNHSGn_w" name="mode" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UnchuO8EdyGNPaNHSGn_w" name="getDuplicateLabelsMode" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Unch-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UnciOO8EdyGNPaNHSGn_w" name="isParallel" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6UncieO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UnciuO8EdyGNPaNHSGn_w" name="isFollowingLine" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Unci-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncjOO8EdyGNPaNHSGn_w" name="isPerpendicular" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6UncjeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncjuO8EdyGNPaNHSGn_w" name="isHorizontal" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Uncj-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UnckOO8EdyGNPaNHSGn_w" name="isAtTheBeginingOfLine" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6UnckeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UnckuO8EdyGNPaNHSGn_w" name="isInTheMiddleOfLine" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Unck-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UnclOO8EdyGNPaNHSGn_w" name="isAtTheEndOfLine" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6UncleO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncluO8EdyGNPaNHSGn_w" name="isAtBestOfLine" visibility="public">
+                      <ownedParameter xmi:id="_6Uncl-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncmOO8EdyGNPaNHSGn_w" name="isOnTopOfThePoint" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6UncmeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncmuO8EdyGNPaNHSGn_w" name="isAroundThePoint" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Uncm-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncnOO8EdyGNPaNHSGn_w" name="isFitInsidePolygon" visibility="public">
+                      <ownedParameter xmi:id="_6UncneO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncnuO8EdyGNPaNHSGn_w" name="setFitInsidePolygon" visibility="public">
+                      <ownedParameter xmi:id="_6Uncn-O8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Interface" xmi:id="_6UncoOO8EdyGNPaNHSGn_w" name="ILabelingStrategy">
+                    <ownedOperation xmi:id="_6UncoeO8EdyGNPaNHSGn_w" name="getLabelingMethod" visibility="public">
+                      <ownedParameter xmi:id="_6UncouO8EdyGNPaNHSGn_w" name="return" type="_6UndbeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unco-O8EdyGNPaNHSGn_w" name="setLabelingMethod" visibility="public">
+                      <ownedParameter xmi:id="_6UncpOO8EdyGNPaNHSGn_w" name="method" type="_6UndbeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncpeO8EdyGNPaNHSGn_w" name="getPlacementConstraints" visibility="public">
+                      <ownedParameter xmi:id="_6UncpuO8EdyGNPaNHSGn_w" name="return" type="_6UncYOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Uncp-O8EdyGNPaNHSGn_w" name="setPlacementConstraints" visibility="public">
+                      <ownedParameter xmi:id="_6UncqOO8EdyGNPaNHSGn_w" name="constraints" type="_6UncYOO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncqeO8EdyGNPaNHSGn_w" name="getZoomConstraints" visibility="public">
+                      <ownedParameter xmi:id="_6UncquO8EdyGNPaNHSGn_w" name="return" type="_6Unc6OO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Uncq-O8EdyGNPaNHSGn_w" name="setZoomConstraints" visibility="public">
+                      <ownedParameter xmi:id="_6UncrOO8EdyGNPaNHSGn_w" name="constraints" type="_6Unc6OO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncreO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                      <ownedParameter xmi:id="_6UncruO8EdyGNPaNHSGn_w" name="mapImage" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Uncr-O8EdyGNPaNHSGn_w" name="mapGraphics" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UncsOO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UncseO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UncsuO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Uncs-O8EdyGNPaNHSGn_w" name="print" visibility="public">
+                      <ownedParameter xmi:id="_6UnctOO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UncteO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UnctuO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Unct-O8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncuOO8EdyGNPaNHSGn_w" name="getUsedFields" visibility="public">
+                      <ownedParameter xmi:id="_6UncueO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncuuO8EdyGNPaNHSGn_w" name="setLayer" visibility="public">
+                      <ownedParameter xmi:id="_6Uncu-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UncvOO8EdyGNPaNHSGn_w" name="AbstractLabelingMethod" clientDependency="_6Uncv-O8EdyGNPaNHSGn_w">
+                    <ownedAttribute xmi:id="_6UncveO8EdyGNPaNHSGn_w" name="defaultLabel" visibility="protected" type="_6UndEuO8EdyGNPaNHSGn_w" association="_6UneCeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncvuO8EdyGNPaNHSGn_w" name="classes" visibility="protected" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                    <interfaceRealization xmi:id="_6Uncv-O8EdyGNPaNHSGn_w" name="ILabelingMethod" supplier="_6UndbeO8EdyGNPaNHSGn_w" client="_6UncvOO8EdyGNPaNHSGn_w" contract="_6UndbeO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UncwOO8EdyGNPaNHSGn_w" name="getDefaultLabelClass" visibility="public">
+                      <ownedParameter xmi:id="_6UncweO8EdyGNPaNHSGn_w" name="return" type="_6UndEuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncwuO8EdyGNPaNHSGn_w" name="getLabelClasses" visibility="public">
+                      <ownedParameter xmi:id="_6Uncw-O8EdyGNPaNHSGn_w" name="return" type="_6UndEuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UncxOO8EdyGNPaNHSGn_w" name="getLabelClassByName" visibility="public">
+                      <ownedParameter xmi:id="_6UncxeO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UncxuO8EdyGNPaNHSGn_w" name="return" type="_6UndEuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6Uncx-O8EdyGNPaNHSGn_w" name="LabelingFactory">
+                    <ownedAttribute xmi:id="_6UncyOO8EdyGNPaNHSGn_w" name="logger" visibility="private" type="_6UUrOOO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UncyeO8EdyGNPaNHSGn_w" name="defaultLabelingStrategy" visibility="private" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UncyuO8EdyGNPaNHSGn_w" name="createStrategy" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6Uncy-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UnczOO8EdyGNPaNHSGn_w" name="method" type="_6UndbeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UnczeO8EdyGNPaNHSGn_w" name="placement" type="_6UncYOO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UnczuO8EdyGNPaNHSGn_w" name="zoom" type="_6Unc6OO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Uncz-O8EdyGNPaNHSGn_w" name="return" type="_6UncoOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unc0OO8EdyGNPaNHSGn_w" name="createFromXML" visibility="private" isStatic="true">
+                      <ownedParameter xmi:id="_6Unc0eO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Unc0uO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unc0-O8EdyGNPaNHSGn_w" name="createStrategyFromXML" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6Unc1OO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Unc1eO8EdyGNPaNHSGn_w" name="lyr" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Unc1uO8EdyGNPaNHSGn_w" name="return" type="_6UncoOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unc1-O8EdyGNPaNHSGn_w" name="createMethodFromXML" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6Unc2OO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Unc2eO8EdyGNPaNHSGn_w" name="return" type="_6UndbeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unc2uO8EdyGNPaNHSGn_w" name="createDefaultStrategy" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6Unc2-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Unc3OO8EdyGNPaNHSGn_w" name="return" type="_6UncoOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unc3eO8EdyGNPaNHSGn_w" name="setDefaultLabelingStrategy" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6Unc3uO8EdyGNPaNHSGn_w" name="defaultLabelingStrategy" type="_6UUiGOO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unc3-O8EdyGNPaNHSGn_w" name="createPlacementConstraintsFromXML" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6Unc4OO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Unc4eO8EdyGNPaNHSGn_w" name="return" type="_6UncYOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unc4uO8EdyGNPaNHSGn_w" name="createZoomConstraintsFromXML" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6Unc4-O8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Unc5OO8EdyGNPaNHSGn_w" name="return" type="_6Unc6OO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unc5eO8EdyGNPaNHSGn_w" name="createLabelClassFromXML" visibility="public" isStatic="true">
+                      <ownedParameter xmi:id="_6Unc5uO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Unc5-O8EdyGNPaNHSGn_w" name="return" type="_6UndEuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Interface" xmi:id="_6Unc6OO8EdyGNPaNHSGn_w" name="IZoomConstraints">
+                    <ownedAttribute xmi:id="_6Unc6eO8EdyGNPaNHSGn_w" name="DEFINED_BY_THE_LAYER" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Unc6uO8EdyGNPaNHSGn_w" name="DEFINED_BY_THE_USER" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6Unc6-O8EdyGNPaNHSGn_w" name="setMode" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Unc7OO8EdyGNPaNHSGn_w" name="mode" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unc7eO8EdyGNPaNHSGn_w" name="getMaxScale" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Unc7uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unc7-O8EdyGNPaNHSGn_w" name="setMaxScale" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Unc8OO8EdyGNPaNHSGn_w" name="maxScale" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unc8eO8EdyGNPaNHSGn_w" name="getMinScale" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Unc8uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unc8-O8EdyGNPaNHSGn_w" name="setMinScale" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Unc9OO8EdyGNPaNHSGn_w" name="minScale" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unc9eO8EdyGNPaNHSGn_w" name="isUserDefined" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Unc9uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unc9-O8EdyGNPaNHSGn_w" name="isLayerDefined" visibility="public" isAbstract="true">
+                      <ownedParameter xmi:id="_6Unc-OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6Unc-eO8EdyGNPaNHSGn_w" name="ZoomConstraintsImpl" clientDependency="_6Unc_eO8EdyGNPaNHSGn_w">
+                    <ownedAttribute xmi:id="_6Unc-uO8EdyGNPaNHSGn_w" name="mode" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Unc--O8EdyGNPaNHSGn_w" name="minScale" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Unc_OO8EdyGNPaNHSGn_w" name="maxScale" visibility="private" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    <interfaceRealization xmi:id="_6Unc_eO8EdyGNPaNHSGn_w" name="IZoomConstraints" supplier="_6Unc6OO8EdyGNPaNHSGn_w" client="_6Unc-eO8EdyGNPaNHSGn_w" contract="_6Unc6OO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6Unc_uO8EdyGNPaNHSGn_w" name="setMode" visibility="public">
+                      <ownedParameter xmi:id="_6Unc_-O8EdyGNPaNHSGn_w" name="mode" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndAOO8EdyGNPaNHSGn_w" name="getMaxScale" visibility="public">
+                      <ownedParameter xmi:id="_6UndAeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndAuO8EdyGNPaNHSGn_w" name="setMaxScale" visibility="public">
+                      <ownedParameter xmi:id="_6UndA-O8EdyGNPaNHSGn_w" name="maxScale" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndBOO8EdyGNPaNHSGn_w" name="getMinScale" visibility="public">
+                      <ownedParameter xmi:id="_6UndBeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndBuO8EdyGNPaNHSGn_w" name="setMinScale" visibility="public">
+                      <ownedParameter xmi:id="_6UndB-O8EdyGNPaNHSGn_w" name="minScale" type="_6UKs1eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndCOO8EdyGNPaNHSGn_w" name="isUserDefined" visibility="public">
+                      <ownedParameter xmi:id="_6UndCeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndCuO8EdyGNPaNHSGn_w" name="isLayerDefined" visibility="public">
+                      <ownedParameter xmi:id="_6UndC-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndDOO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                      <ownedParameter xmi:id="_6UndDeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndDuO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                      <ownedParameter xmi:id="_6UndD-O8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndEOO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                      <ownedParameter xmi:id="_6UndEeO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UndEuO8EdyGNPaNHSGn_w" name="LabelClass" clientDependency="_6UndHuO8EdyGNPaNHSGn_w">
+                    <ownedAttribute xmi:id="_6UndE-O8EdyGNPaNHSGn_w" name="name" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndFOO8EdyGNPaNHSGn_w" name="textSymbol" visibility="private" type="_6UUmTOO8EdyGNPaNHSGn_w" association="_6UneC-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndFeO8EdyGNPaNHSGn_w" name="labelExpression" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndFuO8EdyGNPaNHSGn_w" name="isVisible" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndF-O8EdyGNPaNHSGn_w" name="labelStyle" visibility="private" type="_6UUi7eO8EdyGNPaNHSGn_w" association="_6UneDeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndGOO8EdyGNPaNHSGn_w" name="texts" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndGeO8EdyGNPaNHSGn_w" name="priority" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndGuO8EdyGNPaNHSGn_w" name="scale" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndG-O8EdyGNPaNHSGn_w" name="sqlQuery" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndHOO8EdyGNPaNHSGn_w" name="unit" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndHeO8EdyGNPaNHSGn_w" name="referenceSystem" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <interfaceRealization xmi:id="_6UndHuO8EdyGNPaNHSGn_w" name="CartographicSupport" supplier="_6UUenuO8EdyGNPaNHSGn_w" client="_6UndEuO8EdyGNPaNHSGn_w" contract="_6UUenuO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UndH-O8EdyGNPaNHSGn_w" name="isVisible" visibility="public">
+                      <ownedParameter xmi:id="_6UndIOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndIeO8EdyGNPaNHSGn_w" name="setVisible" visibility="public">
+                      <ownedParameter xmi:id="_6UndIuO8EdyGNPaNHSGn_w" name="isVisible" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndI-O8EdyGNPaNHSGn_w" name="getLabelExpression" visibility="public">
+                      <ownedParameter xmi:id="_6UndJOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndJeO8EdyGNPaNHSGn_w" name="setLabelExpression" visibility="public">
+                      <ownedParameter xmi:id="_6UndJuO8EdyGNPaNHSGn_w" name="labelExpression" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndJ-O8EdyGNPaNHSGn_w" name="getTextSymbol" visibility="public">
+                      <ownedParameter xmi:id="_6UndKOO8EdyGNPaNHSGn_w" name="return" type="_6UUmTOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndKeO8EdyGNPaNHSGn_w" name="getSize" visibility="private">
+                      <ownedParameter xmi:id="_6UndKuO8EdyGNPaNHSGn_w" name="return" type="_6UnhhuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndK-O8EdyGNPaNHSGn_w" name="setTextSymbol" visibility="public">
+                      <ownedParameter xmi:id="_6UndLOO8EdyGNPaNHSGn_w" name="textSymbol" type="_6UUmTOO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndLeO8EdyGNPaNHSGn_w" name="setLabelStyle" visibility="public">
+                      <ownedParameter xmi:id="_6UndLuO8EdyGNPaNHSGn_w" name="labelStyle" type="_6UUi7eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndL-O8EdyGNPaNHSGn_w" name="getLabelStyle" visibility="public">
+                      <ownedParameter xmi:id="_6UndMOO8EdyGNPaNHSGn_w" name="return" type="_6UUi7eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndMeO8EdyGNPaNHSGn_w" name="getName" visibility="public">
+                      <ownedParameter xmi:id="_6UndMuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndM-O8EdyGNPaNHSGn_w" name="setName" visibility="public">
+                      <ownedParameter xmi:id="_6UndNOO8EdyGNPaNHSGn_w" name="name" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndNeO8EdyGNPaNHSGn_w" name="toString" visibility="public">
+                      <ownedParameter xmi:id="_6UndNuO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndN-O8EdyGNPaNHSGn_w" name="setTexts" visibility="public">
+                      <ownedParameter xmi:id="_6UndOOO8EdyGNPaNHSGn_w" name="texts" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndOeO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                      <ownedParameter xmi:id="_6UndOuO8EdyGNPaNHSGn_w" name="graphics" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndO-O8EdyGNPaNHSGn_w" name="llm" type="_6UncUeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndPOO8EdyGNPaNHSGn_w" name="relativeToAbsolute" visibility="private">
+                      <ownedParameter xmi:id="_6UndPeO8EdyGNPaNHSGn_w" name="xy" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndPuO8EdyGNPaNHSGn_w" name="r" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndP-O8EdyGNPaNHSGn_w" name="labelSz" type="_6UnhhuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndQOO8EdyGNPaNHSGn_w" name="ratioLabel" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndQeO8EdyGNPaNHSGn_w" name="ratioViewPort" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndQuO8EdyGNPaNHSGn_w" name="drawInsideRectangle" visibility="public">
+                      <ownedParameter xmi:id="_6UndQ-O8EdyGNPaNHSGn_w" name="graphics" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndROO8EdyGNPaNHSGn_w" name="bounds" type="_6UUrOeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndReO8EdyGNPaNHSGn_w" name="getPriority" visibility="public">
+                      <ownedParameter xmi:id="_6UndRuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndR-O8EdyGNPaNHSGn_w" name="setPriority" visibility="public">
+                      <ownedParameter xmi:id="_6UndSOO8EdyGNPaNHSGn_w" name="priority" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndSeO8EdyGNPaNHSGn_w" name="getShape" visibility="public">
+                      <ownedParameter xmi:id="_6UndSuO8EdyGNPaNHSGn_w" name="llm" type="_6UncUeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndS-O8EdyGNPaNHSGn_w" name="return" type="_6UUrNuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndTOO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                      <ownedParameter xmi:id="_6UndTeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndTuO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                      <ownedParameter xmi:id="_6UndT-O8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndUOO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                      <ownedParameter xmi:id="_6UndUeO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndUuO8EdyGNPaNHSGn_w" name="getCartographicSize" visibility="public">
+                      <ownedParameter xmi:id="_6UndU-O8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndVOO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndVeO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndVuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndV-O8EdyGNPaNHSGn_w" name="getReferenceSystem" visibility="public">
+                      <ownedParameter xmi:id="_6UndWOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndWeO8EdyGNPaNHSGn_w" name="getUnit" visibility="public">
+                      <ownedParameter xmi:id="_6UndWuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndW-O8EdyGNPaNHSGn_w" name="setCartographicSize" visibility="public">
+                      <ownedParameter xmi:id="_6UndXOO8EdyGNPaNHSGn_w" name="cartographicSize" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndXeO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndXuO8EdyGNPaNHSGn_w" name="setReferenceSystem" visibility="public">
+                      <ownedParameter xmi:id="_6UndX-O8EdyGNPaNHSGn_w" name="referenceSystem" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndYOO8EdyGNPaNHSGn_w" name="setUnit" visibility="public">
+                      <ownedParameter xmi:id="_6UndYeO8EdyGNPaNHSGn_w" name="unitIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndYuO8EdyGNPaNHSGn_w" name="toCartographicSize" visibility="public">
+                      <ownedParameter xmi:id="_6UndY-O8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndZOO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndZeO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndZuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndZ-O8EdyGNPaNHSGn_w" name="getBounds" visibility="public">
+                      <ownedParameter xmi:id="_6UndaOO8EdyGNPaNHSGn_w" name="return" type="_6UUrOeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndaeO8EdyGNPaNHSGn_w" name="getSQLQuery" visibility="public">
+                      <ownedParameter xmi:id="_6UndauO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unda-O8EdyGNPaNHSGn_w" name="setSQLQuery" visibility="public">
+                      <ownedParameter xmi:id="_6UndbOO8EdyGNPaNHSGn_w" name="sqlQuery" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Interface" xmi:id="_6UndbeO8EdyGNPaNHSGn_w" name="ILabelingMethod">
+                    <ownedOperation xmi:id="_6UndbuO8EdyGNPaNHSGn_w" name="getDefaultLabelClass" visibility="public">
+                      <ownedParameter xmi:id="_6Undb-O8EdyGNPaNHSGn_w" name="return" type="_6UndEuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndcOO8EdyGNPaNHSGn_w" name="getLabelClasses" visibility="public">
+                      <ownedParameter xmi:id="_6UndceO8EdyGNPaNHSGn_w" name="return" type="_6UndEuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndcuO8EdyGNPaNHSGn_w" name="getLabelClassByName" visibility="public">
+                      <ownedParameter xmi:id="_6Undc-O8EdyGNPaNHSGn_w" name="labelName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UnddOO8EdyGNPaNHSGn_w" name="return" type="_6UndEuO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UnddeO8EdyGNPaNHSGn_w" name="addLabelClass" visibility="public">
+                      <ownedParameter xmi:id="_6UndduO8EdyGNPaNHSGn_w" name="lbl" type="_6UndEuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Undd-O8EdyGNPaNHSGn_w" name="deleteLabelClass" visibility="public">
+                      <ownedParameter xmi:id="_6UndeOO8EdyGNPaNHSGn_w" name="lbl" type="_6UndEuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndeeO8EdyGNPaNHSGn_w" name="allowsMultipleClass" visibility="public">
+                      <ownedParameter xmi:id="_6UndeuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Unde-O8EdyGNPaNHSGn_w" name="renameLabelClass" visibility="public">
+                      <ownedParameter xmi:id="_6UndfOO8EdyGNPaNHSGn_w" name="lbl" type="_6UndEuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndfeO8EdyGNPaNHSGn_w" name="newName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndfuO8EdyGNPaNHSGn_w" name="getFeatureIteratorByLabelClass" visibility="public">
+                      <ownedParameter xmi:id="_6Undf-O8EdyGNPaNHSGn_w" name="layer" type="_6Ud4YeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndgOO8EdyGNPaNHSGn_w" name="lc" type="_6UndEuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndgeO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndguO8EdyGNPaNHSGn_w" name="usedFields" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Undg-O8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndhOO8EdyGNPaNHSGn_w" name="definesPriorities" visibility="public">
+                      <ownedParameter xmi:id="_6UndheO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndhuO8EdyGNPaNHSGn_w" name="setDefinesPriorities" visibility="public">
+                      <ownedParameter xmi:id="_6Undh-O8EdyGNPaNHSGn_w" name="flag" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6UndiOO8EdyGNPaNHSGn_w" name="AttrInTableLabelingStrategy" clientDependency="_6UndluO8EdyGNPaNHSGn_w _6Undl-O8EdyGNPaNHSGn_w">
+                    <ownedAttribute xmi:id="_6UndieO8EdyGNPaNHSGn_w" name="MIN_TEXT_SIZE" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndiuO8EdyGNPaNHSGn_w" name="method" visibility="private" type="_6UndbeO8EdyGNPaNHSGn_w" association="_6UneD-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Undi-O8EdyGNPaNHSGn_w" name="zoom" visibility="private" type="_6Unc6OO8EdyGNPaNHSGn_w" association="_6UneEeO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndjOO8EdyGNPaNHSGn_w" name="idTextField" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndjeO8EdyGNPaNHSGn_w" name="idHeightField" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndjuO8EdyGNPaNHSGn_w" name="idRotationField" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Undj-O8EdyGNPaNHSGn_w" name="layer" visibility="private" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6UneE-O8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndkOO8EdyGNPaNHSGn_w" name="fixedSize" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndkeO8EdyGNPaNHSGn_w" name="unit" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndkuO8EdyGNPaNHSGn_w" name="useFixedSize" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6Undk-O8EdyGNPaNHSGn_w" name="referenceSystem" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndlOO8EdyGNPaNHSGn_w" name="isPrinting" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    <ownedAttribute xmi:id="_6UndleO8EdyGNPaNHSGn_w" name="printDPI" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <interfaceRealization xmi:id="_6UndluO8EdyGNPaNHSGn_w" name="ILabelingStrategy" supplier="_6UncoOO8EdyGNPaNHSGn_w" client="_6UndiOO8EdyGNPaNHSGn_w" contract="_6UncoOO8EdyGNPaNHSGn_w"/>
+                    <interfaceRealization xmi:id="_6Undl-O8EdyGNPaNHSGn_w" name="CartographicSupport" supplier="_6UUenuO8EdyGNPaNHSGn_w" client="_6UndiOO8EdyGNPaNHSGn_w" contract="_6UUenuO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6UndmOO8EdyGNPaNHSGn_w" name="getLabelingMethod" visibility="public">
+                      <ownedParameter xmi:id="_6UndmeO8EdyGNPaNHSGn_w" name="return" type="_6UndbeO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndmuO8EdyGNPaNHSGn_w" name="setLabelingMethod" visibility="public">
+                      <ownedParameter xmi:id="_6Undm-O8EdyGNPaNHSGn_w" name="method" type="_6UndbeO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndnOO8EdyGNPaNHSGn_w" name="getPlacementConstraints" visibility="public">
+                      <ownedParameter xmi:id="_6UndneO8EdyGNPaNHSGn_w" name="return" type="_6UncYOO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndnuO8EdyGNPaNHSGn_w" name="setPlacementConstraints" visibility="public">
+                      <ownedParameter xmi:id="_6Undn-O8EdyGNPaNHSGn_w" name="constraints" type="_6UncYOO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndoOO8EdyGNPaNHSGn_w" name="getZoomConstraints" visibility="public">
+                      <ownedParameter xmi:id="_6UndoeO8EdyGNPaNHSGn_w" name="return" type="_6Unc6OO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndouO8EdyGNPaNHSGn_w" name="setZoomConstraints" visibility="public">
+                      <ownedParameter xmi:id="_6Undo-O8EdyGNPaNHSGn_w" name="constraints" type="_6Unc6OO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndpOO8EdyGNPaNHSGn_w" name="draw" visibility="public">
+                      <ownedParameter xmi:id="_6UndpeO8EdyGNPaNHSGn_w" name="image" type="_6UnhjeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndpuO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Undp-O8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndqOO8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndqeO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndquO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                      <ownedParameter xmi:id="_6Undq-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndrOO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                      <ownedParameter xmi:id="_6UndreO8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndruO8EdyGNPaNHSGn_w" name="getRotationField" visibility="public">
+                      <ownedParameter xmi:id="_6Undr-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndsOO8EdyGNPaNHSGn_w" name="getRotationFieldId" visibility="public">
+                      <ownedParameter xmi:id="_6UndseO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndsuO8EdyGNPaNHSGn_w" name="setRotationFieldId" visibility="public">
+                      <ownedParameter xmi:id="_6Unds-O8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndtOO8EdyGNPaNHSGn_w" name="getTextField" visibility="public">
+                      <ownedParameter xmi:id="_6UndteO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndtuO8EdyGNPaNHSGn_w" name="getTextFieldId" visibility="public">
+                      <ownedParameter xmi:id="_6Undt-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UnduOO8EdyGNPaNHSGn_w" name="setTextFieldId" visibility="public">
+                      <ownedParameter xmi:id="_6UndueO8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UnduuO8EdyGNPaNHSGn_w" name="getHeightField" visibility="public">
+                      <ownedParameter xmi:id="_6Undu-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndvOO8EdyGNPaNHSGn_w" name="getHeightFieldId" visibility="public">
+                      <ownedParameter xmi:id="_6UndveO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndvuO8EdyGNPaNHSGn_w" name="setHeightFieldId" visibility="public">
+                      <ownedParameter xmi:id="_6Undv-O8EdyGNPaNHSGn_w" name="fieldId" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndwOO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                      <ownedParameter xmi:id="_6UndweO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndwuO8EdyGNPaNHSGn_w" name="setTextField" visibility="public">
+                      <ownedParameter xmi:id="_6Undw-O8EdyGNPaNHSGn_w" name="textFieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndxOO8EdyGNPaNHSGn_w" name="setRotationField" visibility="public">
+                      <ownedParameter xmi:id="_6UndxeO8EdyGNPaNHSGn_w" name="rotationFieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndxuO8EdyGNPaNHSGn_w" name="setHeightField" visibility="public">
+                      <ownedParameter xmi:id="_6Undx-O8EdyGNPaNHSGn_w" name="heightFieldName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndyOO8EdyGNPaNHSGn_w" name="print" visibility="public">
+                      <ownedParameter xmi:id="_6UndyeO8EdyGNPaNHSGn_w" name="g" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndyuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Undy-O8EdyGNPaNHSGn_w" name="cancel" type="_6UnhkuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UndzOO8EdyGNPaNHSGn_w" name="properties" type="_6Unhj-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UndzeO8EdyGNPaNHSGn_w" name="setUsesFixedSize" visibility="public">
+                      <ownedParameter xmi:id="_6UndzuO8EdyGNPaNHSGn_w" name="b" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Undz-O8EdyGNPaNHSGn_w" name="usesFixedSize" visibility="public">
+                      <ownedParameter xmi:id="_6Und0OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und0eO8EdyGNPaNHSGn_w" name="getFixedSize" visibility="public">
+                      <ownedParameter xmi:id="_6Und0uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und0-O8EdyGNPaNHSGn_w" name="setFixedSize" visibility="public">
+                      <ownedParameter xmi:id="_6Und1OO8EdyGNPaNHSGn_w" name="fixedSize" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und1eO8EdyGNPaNHSGn_w" name="setUnit" visibility="public">
+                      <ownedParameter xmi:id="_6Und1uO8EdyGNPaNHSGn_w" name="unitIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und1-O8EdyGNPaNHSGn_w" name="getUnit" visibility="public">
+                      <ownedParameter xmi:id="_6Und2OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und2eO8EdyGNPaNHSGn_w" name="getUsedFields" visibility="public">
+                      <ownedParameter xmi:id="_6Und2uO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und2-O8EdyGNPaNHSGn_w" name="getReferenceSystem" visibility="public">
+                      <ownedParameter xmi:id="_6Und3OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und3eO8EdyGNPaNHSGn_w" name="setReferenceSystem" visibility="public">
+                      <ownedParameter xmi:id="_6Und3uO8EdyGNPaNHSGn_w" name="referenceSystem" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und3-O8EdyGNPaNHSGn_w" name="toCartographicSize" visibility="public">
+                      <ownedParameter xmi:id="_6Und4OO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Und4eO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Und4uO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Und4-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und5OO8EdyGNPaNHSGn_w" name="setCartographicSize" visibility="public">
+                      <ownedParameter xmi:id="_6Und5eO8EdyGNPaNHSGn_w" name="cartographicSize" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Und5uO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und5-O8EdyGNPaNHSGn_w" name="getCartographicSize" visibility="public">
+                      <ownedParameter xmi:id="_6Und6OO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Und6eO8EdyGNPaNHSGn_w" name="dpi" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Und6uO8EdyGNPaNHSGn_w" name="shp" type="_6UUrNuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Und6-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und7OO8EdyGNPaNHSGn_w" name="setLayer" visibility="public">
+                      <ownedParameter xmi:id="_6Und7eO8EdyGNPaNHSGn_w" name="layer" type="_6Ud5J-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Class" xmi:id="_6Und7uO8EdyGNPaNHSGn_w" name="DefaultLabelingMethod">
+                    <generalization xmi:id="_6Und7-O8EdyGNPaNHSGn_w" general="_6UncvOO8EdyGNPaNHSGn_w"/>
+                    <ownedOperation xmi:id="_6Und8OO8EdyGNPaNHSGn_w" name="addLabelClass" visibility="public">
+                      <ownedParameter xmi:id="_6Und8eO8EdyGNPaNHSGn_w" name="lbl" type="_6UndEuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und8uO8EdyGNPaNHSGn_w" name="deleteLabelClass" visibility="public">
+                      <ownedParameter xmi:id="_6Und8-O8EdyGNPaNHSGn_w" name="lbl" type="_6UndEuO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und9OO8EdyGNPaNHSGn_w" name="getClassName" visibility="public">
+                      <ownedParameter xmi:id="_6Und9eO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und9uO8EdyGNPaNHSGn_w" name="getXMLEntity" visibility="public">
+                      <ownedParameter xmi:id="_6Und9-O8EdyGNPaNHSGn_w" name="return" type="_6Unhg-O8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und-OO8EdyGNPaNHSGn_w" name="setXMLEntity" visibility="public">
+                      <ownedParameter xmi:id="_6Und-eO8EdyGNPaNHSGn_w" name="xml" type="_6Unhg-O8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und-uO8EdyGNPaNHSGn_w" name="allowsMultipleClass" visibility="public">
+                      <ownedParameter xmi:id="_6Und--O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und_OO8EdyGNPaNHSGn_w" name="renameLabelClass" visibility="public">
+                      <ownedParameter xmi:id="_6Und_eO8EdyGNPaNHSGn_w" name="lbl" type="_6UndEuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6Und_uO8EdyGNPaNHSGn_w" name="newName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6Und_-O8EdyGNPaNHSGn_w" name="getFeatureIteratorByLabelClass" visibility="public">
+                      <ownedParameter xmi:id="_6UneAOO8EdyGNPaNHSGn_w" name="layer" type="_6Ud4YeO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UneAeO8EdyGNPaNHSGn_w" name="lc" type="_6UndEuO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UneAuO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UneA-O8EdyGNPaNHSGn_w" name="usedFields" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                      <ownedParameter xmi:id="_6UneBOO8EdyGNPaNHSGn_w" name="return" type="_6UUu1OO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UneBeO8EdyGNPaNHSGn_w" name="definesPriorities" visibility="public">
+                      <ownedParameter xmi:id="_6UneBuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                    </ownedOperation>
+                    <ownedOperation xmi:id="_6UneB-O8EdyGNPaNHSGn_w" name="setDefinesPriorities" visibility="public">
+                      <ownedParameter xmi:id="_6UneCOO8EdyGNPaNHSGn_w" name="flag" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                    </ownedOperation>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UneCeO8EdyGNPaNHSGn_w" memberEnd="_6UncveO8EdyGNPaNHSGn_w _6UneCuO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UneCuO8EdyGNPaNHSGn_w" name="target" type="_6UncvOO8EdyGNPaNHSGn_w" association="_6UneCeO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UneC-O8EdyGNPaNHSGn_w" memberEnd="_6UndFOO8EdyGNPaNHSGn_w _6UneDOO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UneDOO8EdyGNPaNHSGn_w" name="target" type="_6UndEuO8EdyGNPaNHSGn_w" association="_6UneC-O8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UneDeO8EdyGNPaNHSGn_w" memberEnd="_6UndF-O8EdyGNPaNHSGn_w _6UneDuO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UneDuO8EdyGNPaNHSGn_w" name="target" type="_6UndEuO8EdyGNPaNHSGn_w" association="_6UneDeO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UneD-O8EdyGNPaNHSGn_w" memberEnd="_6UndiuO8EdyGNPaNHSGn_w _6UneEOO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UneEOO8EdyGNPaNHSGn_w" name="target" type="_6UndiOO8EdyGNPaNHSGn_w" association="_6UneD-O8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UneEeO8EdyGNPaNHSGn_w" memberEnd="_6Undi-O8EdyGNPaNHSGn_w _6UneEuO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UneEuO8EdyGNPaNHSGn_w" name="target" type="_6UndiOO8EdyGNPaNHSGn_w" association="_6UneEeO8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                  <packagedElement xmi:type="uml:Association" xmi:id="_6UneE-O8EdyGNPaNHSGn_w" memberEnd="_6Undj-O8EdyGNPaNHSGn_w _6UneFOO8EdyGNPaNHSGn_w">
+                    <ownedEnd xmi:id="_6UneFOO8EdyGNPaNHSGn_w" name="target" type="_6UndiOO8EdyGNPaNHSGn_w" association="_6UneE-O8EdyGNPaNHSGn_w"/>
+                  </packagedElement>
+                </packagedElement>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UneFeO8EdyGNPaNHSGn_w" name="LineStyle2D"/>
+                <packagedElement xmi:type="uml:DataType" xmi:id="_6UneFuO8EdyGNPaNHSGn_w" name="PolygonStyle2D"/>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UneF-O8EdyGNPaNHSGn_w" memberEnd="_6UncNOO8EdyGNPaNHSGn_w _6UneGOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UneGOO8EdyGNPaNHSGn_w" name="target" type="_6UncAOO8EdyGNPaNHSGn_w" association="_6UneF-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UneGeO8EdyGNPaNHSGn_w" name="Canvas"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UneGuO8EdyGNPaNHSGn_w" name="Style2D"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UneG-O8EdyGNPaNHSGn_w" name="NullValue"/>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UneHOO8EdyGNPaNHSGn_w" memberEnd="_6UnZMuO8EdyGNPaNHSGn_w _6UneHeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UneHeO8EdyGNPaNHSGn_w" name="target" type="_6UnZMOO8EdyGNPaNHSGn_w" association="_6UneHOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UneHuO8EdyGNPaNHSGn_w" memberEnd="_6UnZM-O8EdyGNPaNHSGn_w _6UneH-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UneH-O8EdyGNPaNHSGn_w" name="target" type="_6UnZMOO8EdyGNPaNHSGn_w" association="_6UneHuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UneIOO8EdyGNPaNHSGn_w" memberEnd="_6UnZPOO8EdyGNPaNHSGn_w _6UneIeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UneIeO8EdyGNPaNHSGn_w" name="target" type="_6UnZOuO8EdyGNPaNHSGn_w" association="_6UneIOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UneIuO8EdyGNPaNHSGn_w" memberEnd="_6UnZPeO8EdyGNPaNHSGn_w _6UneI-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UneI-O8EdyGNPaNHSGn_w" name="target" type="_6UnZOuO8EdyGNPaNHSGn_w" association="_6UneIuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UneJOO8EdyGNPaNHSGn_w" memberEnd="_6UnZVuO8EdyGNPaNHSGn_w _6UneJeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UneJeO8EdyGNPaNHSGn_w" name="target" type="_6UnZVOO8EdyGNPaNHSGn_w" association="_6UneJOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UneJuO8EdyGNPaNHSGn_w" memberEnd="_6UnZX-O8EdyGNPaNHSGn_w _6UneJ-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UneJ-O8EdyGNPaNHSGn_w" name="target" type="_6UnZW-O8EdyGNPaNHSGn_w" association="_6UneJuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UneKOO8EdyGNPaNHSGn_w" memberEnd="_6UnZkuO8EdyGNPaNHSGn_w _6UneKeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UneKeO8EdyGNPaNHSGn_w" name="target" type="_6UnZh-O8EdyGNPaNHSGn_w" association="_6UneKOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UneKuO8EdyGNPaNHSGn_w" memberEnd="_6UnZ4eO8EdyGNPaNHSGn_w _6UneK-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UneK-O8EdyGNPaNHSGn_w" name="target" type="_6UnZ3-O8EdyGNPaNHSGn_w" association="_6UneKuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UneLOO8EdyGNPaNHSGn_w" memberEnd="_6UnaauO8EdyGNPaNHSGn_w _6UneLeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UneLeO8EdyGNPaNHSGn_w" name="target" type="_6UnaaOO8EdyGNPaNHSGn_w" association="_6UneLOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UneLuO8EdyGNPaNHSGn_w" memberEnd="_6UnabOO8EdyGNPaNHSGn_w _6UneL-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UneL-O8EdyGNPaNHSGn_w" name="target" type="_6UnaaOO8EdyGNPaNHSGn_w" association="_6UneLuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UneMOO8EdyGNPaNHSGn_w" memberEnd="_6Unbu-O8EdyGNPaNHSGn_w _6UneMeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UneMeO8EdyGNPaNHSGn_w" name="target" type="_6UnbseO8EdyGNPaNHSGn_w" association="_6UneMOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UneMuO8EdyGNPaNHSGn_w" name="services">
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UneM-O8EdyGNPaNHSGn_w" name="RemoteService">
+                <ownedOperation xmi:id="_6UneNOO8EdyGNPaNHSGn_w" name="setServiceName" visibility="public">
+                  <ownedParameter xmi:id="_6UneNeO8EdyGNPaNHSGn_w" name="serviceName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UneNuO8EdyGNPaNHSGn_w" name="getServiceName" visibility="public">
+                  <ownedParameter xmi:id="_6UneN-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UneOOO8EdyGNPaNHSGn_w" name="setHost" visibility="public">
+                  <ownedParameter xmi:id="_6UneOeO8EdyGNPaNHSGn_w" name="hostName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UneOuO8EdyGNPaNHSGn_w" name="getHost" visibility="public">
+                  <ownedParameter xmi:id="_6UneO-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnePOO8EdyGNPaNHSGn_w" name="setPort" visibility="public">
+                  <ownedParameter xmi:id="_6UnePeO8EdyGNPaNHSGn_w" name="portNr" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnePuO8EdyGNPaNHSGn_w" name="getPort" visibility="public">
+                  <ownedParameter xmi:id="_6UneP-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UneQOO8EdyGNPaNHSGn_w" name="connect" visibility="public"/>
+                <ownedOperation xmi:id="_6UneQeO8EdyGNPaNHSGn_w" name="isConnected" visibility="public">
+                  <ownedParameter xmi:id="_6UneQuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UneQ-O8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UneROO8EdyGNPaNHSGn_w" name="OGCService">
+                <generalization xmi:id="_6UneReO8EdyGNPaNHSGn_w" general="_6UneM-O8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UneRuO8EdyGNPaNHSGn_w" name="spatialindex">
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UneR-O8EdyGNPaNHSGn_w" name="INearestNeighbourFinder">
+                <ownedOperation xmi:id="_6UneSOO8EdyGNPaNHSGn_w" name="findNNearest" visibility="public">
+                  <ownedParameter xmi:id="_6UneSeO8EdyGNPaNHSGn_w" name="numberOfNearest" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneSuO8EdyGNPaNHSGn_w" name="point" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneS-O8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UneTOO8EdyGNPaNHSGn_w" name="findNNearest" visibility="public">
+                  <ownedParameter xmi:id="_6UneTeO8EdyGNPaNHSGn_w" name="numberOfNearest" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneTuO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneT-O8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UneUOO8EdyGNPaNHSGn_w" name="QuadtreeGt2" clientDependency="_6UneWOO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UneUeO8EdyGNPaNHSGn_w" name="quadtree" type="_6UnfJuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UneUuO8EdyGNPaNHSGn_w" name="quadtreeFile" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UneU-O8EdyGNPaNHSGn_w" name="qExt" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UneVOO8EdyGNPaNHSGn_w" name="byteOrder" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UneVeO8EdyGNPaNHSGn_w" name="bounds" type="_6Ud77eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UneVuO8EdyGNPaNHSGn_w" name="numRecs" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UneV-O8EdyGNPaNHSGn_w" name="inMemory" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UneWOO8EdyGNPaNHSGn_w" name="IPersistentSpatialIndex" supplier="_6UneueO8EdyGNPaNHSGn_w" client="_6UneUOO8EdyGNPaNHSGn_w" contract="_6UneueO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UneWeO8EdyGNPaNHSGn_w" name="exists" visibility="public">
+                  <ownedParameter xmi:id="_6UneWuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UneW-O8EdyGNPaNHSGn_w" name="load" visibility="public"/>
+                <ownedOperation xmi:id="_6UneXOO8EdyGNPaNHSGn_w" name="query" visibility="public">
+                  <ownedParameter xmi:id="_6UneXeO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneXuO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UneX-O8EdyGNPaNHSGn_w" name="insert" visibility="public">
+                  <ownedParameter xmi:id="_6UneYOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneYeO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UneYuO8EdyGNPaNHSGn_w" name="toJtsEnvelope" visibility="public">
+                  <ownedParameter xmi:id="_6UneY-O8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneZOO8EdyGNPaNHSGn_w" name="return" type="_6Ud77eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UneZeO8EdyGNPaNHSGn_w" name="delete" visibility="public">
+                  <ownedParameter xmi:id="_6UneZuO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneZ-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UneaOO8EdyGNPaNHSGn_w" name="openQuadTree"/>
+                <ownedOperation xmi:id="_6UneaeO8EdyGNPaNHSGn_w" name="openQuadTreeInMemory"/>
+                <ownedOperation xmi:id="_6UneauO8EdyGNPaNHSGn_w" name="queryQuadTree" visibility="private">
+                  <ownedParameter xmi:id="_6Unea-O8EdyGNPaNHSGn_w" name="bbox" type="_6Ud77eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnebOO8EdyGNPaNHSGn_w" name="return" type="_6Ud79eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnebeO8EdyGNPaNHSGn_w" name="flush" visibility="public"/>
+                <ownedOperation xmi:id="_6UnebuO8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Uneb-O8EdyGNPaNHSGn_w" name="PersistentRTreeJsi" clientDependency="_6UnedeO8EdyGNPaNHSGn_w _6UneduO8EdyGNPaNHSGn_w _6Uned-O8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UnecOO8EdyGNPaNHSGn_w" name="rtree" visibility="private" type="_6UnfJ-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UneceO8EdyGNPaNHSGn_w" name="rtreeFile" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnecuO8EdyGNPaNHSGn_w" name="hasChange" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unec-O8EdyGNPaNHSGn_w" name="rExt" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnedOO8EdyGNPaNHSGn_w" name="rectangles" visibility="private" type="_6UnfKOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnedeO8EdyGNPaNHSGn_w" name="IPersistentSpatialIndex" supplier="_6UneueO8EdyGNPaNHSGn_w" client="_6Uneb-O8EdyGNPaNHSGn_w" contract="_6UneueO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UneduO8EdyGNPaNHSGn_w" name="INearestNeighbourFinder" supplier="_6UneR-O8EdyGNPaNHSGn_w" client="_6Uneb-O8EdyGNPaNHSGn_w" contract="_6UneR-O8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Uned-O8EdyGNPaNHSGn_w" name="ISpatialIndex" supplier="_6UneoOO8EdyGNPaNHSGn_w" client="_6Uneb-O8EdyGNPaNHSGn_w" contract="_6UneoOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UneeOO8EdyGNPaNHSGn_w" name="flush" visibility="public"/>
+                <ownedOperation xmi:id="_6UneeeO8EdyGNPaNHSGn_w" name="exists" visibility="public">
+                  <ownedParameter xmi:id="_6UneeuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unee-O8EdyGNPaNHSGn_w" name="load" visibility="public"/>
+                <ownedOperation xmi:id="_6UnefOO8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+                <ownedOperation xmi:id="_6UnefeO8EdyGNPaNHSGn_w" name="query" visibility="public">
+                  <ownedParameter xmi:id="_6UnefuO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unef-O8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnegOO8EdyGNPaNHSGn_w" name="insert" visibility="public">
+                  <ownedParameter xmi:id="_6UnegeO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneguO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uneg-O8EdyGNPaNHSGn_w" name="delete" visibility="public">
+                  <ownedParameter xmi:id="_6UnehOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneheO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnehuO8EdyGNPaNHSGn_w" name="findNNearest" visibility="public">
+                  <ownedParameter xmi:id="_6Uneh-O8EdyGNPaNHSGn_w" name="numberOfNearest" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneiOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneieO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UneiuO8EdyGNPaNHSGn_w" name="findNNearest" visibility="public">
+                  <ownedParameter xmi:id="_6Unei-O8EdyGNPaNHSGn_w" name="numberOfNearest" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnejOO8EdyGNPaNHSGn_w" name="point" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnejeO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnejuO8EdyGNPaNHSGn_w" name="toJsiRect" visibility="private">
+                  <ownedParameter xmi:id="_6Unej-O8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnekOO8EdyGNPaNHSGn_w" name="return" type="_6UUrOeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnekeO8EdyGNPaNHSGn_w" name="size" visibility="public">
+                  <ownedParameter xmi:id="_6UnekuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Unek-O8EdyGNPaNHSGn_w" name="ListIntProcedure">
+                <ownedAttribute xmi:id="_6UnelOO8EdyGNPaNHSGn_w" name="solution" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UneleO8EdyGNPaNHSGn_w" name="solution" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UneluO8EdyGNPaNHSGn_w" name="execute" visibility="public">
+                  <ownedParameter xmi:id="_6Unel-O8EdyGNPaNHSGn_w" name="arg0" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnemOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnemeO8EdyGNPaNHSGn_w" name="getSolution" visibility="public">
+                  <ownedParameter xmi:id="_6UnemuO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unem-O8EdyGNPaNHSGn_w" name="execute" visibility="public">
+                  <ownedParameter xmi:id="_6UnenOO8EdyGNPaNHSGn_w" name="arg0" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneneO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnenuO8EdyGNPaNHSGn_w" name="getSolution" visibility="public">
+                  <ownedParameter xmi:id="_6Unen-O8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UneoOO8EdyGNPaNHSGn_w" name="ISpatialIndex">
+                <ownedOperation xmi:id="_6UneoeO8EdyGNPaNHSGn_w" name="query" visibility="public">
+                  <ownedParameter xmi:id="_6UneouO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uneo-O8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnepOO8EdyGNPaNHSGn_w" name="insert" visibility="public">
+                  <ownedParameter xmi:id="_6UnepeO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnepuO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unep-O8EdyGNPaNHSGn_w" name="delete" visibility="public">
+                  <ownedParameter xmi:id="_6UneqOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneqeO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnequO8EdyGNPaNHSGn_w" name="QuadtreeJts" clientDependency="_6UnerOO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6Uneq-O8EdyGNPaNHSGn_w" name="quadtree" visibility="private" type="_6Ud77OO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnerOO8EdyGNPaNHSGn_w" name="ISpatialIndex" supplier="_6UneoOO8EdyGNPaNHSGn_w" client="_6UnequO8EdyGNPaNHSGn_w" contract="_6UneoOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnereO8EdyGNPaNHSGn_w" name="query" visibility="public">
+                  <ownedParameter xmi:id="_6UneruO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Uner-O8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnesOO8EdyGNPaNHSGn_w" name="insert" visibility="public">
+                  <ownedParameter xmi:id="_6UneseO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnesuO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unes-O8EdyGNPaNHSGn_w" name="delete" visibility="public">
+                  <ownedParameter xmi:id="_6UnetOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneteO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnetuO8EdyGNPaNHSGn_w" name="fromRect" visibility="private">
+                  <ownedParameter xmi:id="_6Unet-O8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneuOO8EdyGNPaNHSGn_w" name="return" type="_6Ud77eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Interface" xmi:id="_6UneueO8EdyGNPaNHSGn_w" name="IPersistentSpatialIndex">
+                <generalization xmi:id="_6UneuuO8EdyGNPaNHSGn_w" general="_6UneoOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Uneu-O8EdyGNPaNHSGn_w" name="flush" visibility="public"/>
+                <ownedOperation xmi:id="_6UnevOO8EdyGNPaNHSGn_w" name="exists" visibility="public">
+                  <ownedParameter xmi:id="_6UneveO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnevuO8EdyGNPaNHSGn_w" name="load" visibility="public"/>
+                <ownedOperation xmi:id="_6Unev-O8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnewOO8EdyGNPaNHSGn_w" name="RTreeJsi" clientDependency="_6UnewuO8EdyGNPaNHSGn_w _6Unew-O8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UneweO8EdyGNPaNHSGn_w" name="rtree" visibility="private" type="_6UnfJ-O8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnewuO8EdyGNPaNHSGn_w" name="ISpatialIndex" supplier="_6UneoOO8EdyGNPaNHSGn_w" client="_6UnewOO8EdyGNPaNHSGn_w" contract="_6UneoOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Unew-O8EdyGNPaNHSGn_w" name="INearestNeighbourFinder" supplier="_6UneR-O8EdyGNPaNHSGn_w" client="_6UnewOO8EdyGNPaNHSGn_w" contract="_6UneR-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnexOO8EdyGNPaNHSGn_w" name="create" visibility="public"/>
+                <ownedOperation xmi:id="_6UnexeO8EdyGNPaNHSGn_w" name="query" visibility="public">
+                  <ownedParameter xmi:id="_6UnexuO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unex-O8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UneyOO8EdyGNPaNHSGn_w" name="toJsiRect" visibility="private">
+                  <ownedParameter xmi:id="_6UneyeO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UneyuO8EdyGNPaNHSGn_w" name="return" type="_6UUrOeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Uney-O8EdyGNPaNHSGn_w" name="insert" visibility="public">
+                  <ownedParameter xmi:id="_6UnezOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnezeO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnezuO8EdyGNPaNHSGn_w" name="delete" visibility="public">
+                  <ownedParameter xmi:id="_6Unez-O8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Une0OO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Une0eO8EdyGNPaNHSGn_w" name="findNNearest" visibility="public">
+                  <ownedParameter xmi:id="_6Une0uO8EdyGNPaNHSGn_w" name="numberOfNearest" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Une0-O8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Une1OO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Une1eO8EdyGNPaNHSGn_w" name="findNNearest" visibility="public">
+                  <ownedParameter xmi:id="_6Une1uO8EdyGNPaNHSGn_w" name="numberOfNearest" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Une1-O8EdyGNPaNHSGn_w" name="point" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Une2OO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Une2eO8EdyGNPaNHSGn_w" name="iterator" visibility="public">
+                  <ownedParameter xmi:id="_6Une2uO8EdyGNPaNHSGn_w" name="return" type="_6UUiHuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Une2-O8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Une3OO8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Une3eO8EdyGNPaNHSGn_w" name="ListIntProcedure"/>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Une3uO8EdyGNPaNHSGn_w" name="SpatialIndexException">
+                <generalization xmi:id="_6Une3-O8EdyGNPaNHSGn_w" general="_6UKs5eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Une4OO8EdyGNPaNHSGn_w" name="e" type="_6UnhhOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Une4eO8EdyGNPaNHSGn_w" name="values" visibility="protected">
+                  <ownedParameter xmi:id="_6Une4uO8EdyGNPaNHSGn_w" name="return" type="_6UKs5-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Une4-O8EdyGNPaNHSGn_w" name="printStackTrace" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Une5OO8EdyGNPaNHSGn_w" name="RTreeSptLib" clientDependency="_6Une6-O8EdyGNPaNHSGn_w _6Une7OO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6Une5eO8EdyGNPaNHSGn_w" name="defaultPageSize" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Une5uO8EdyGNPaNHSGn_w" name="defaultFillFactor" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Une5-O8EdyGNPaNHSGn_w" name="BUFFER_SIZE" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Une6OO8EdyGNPaNHSGn_w" name="rtree" type="_6UnfJ-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Une6eO8EdyGNPaNHSGn_w" name="rtreeFile" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Une6uO8EdyGNPaNHSGn_w" name="diskfile" type="_6UnfKeO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Une6-O8EdyGNPaNHSGn_w" name="IPersistentSpatialIndex" supplier="_6UneueO8EdyGNPaNHSGn_w" client="_6Une5OO8EdyGNPaNHSGn_w" contract="_6UneueO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Une7OO8EdyGNPaNHSGn_w" name="INearestNeighbourFinder" supplier="_6UneR-O8EdyGNPaNHSGn_w" client="_6Une5OO8EdyGNPaNHSGn_w" contract="_6UneR-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Une7eO8EdyGNPaNHSGn_w" name="exists" visibility="public">
+                  <ownedParameter xmi:id="_6Une7uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Une7-O8EdyGNPaNHSGn_w" name="query" visibility="public">
+                  <ownedParameter xmi:id="_6Une8OO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Une8eO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Une8uO8EdyGNPaNHSGn_w" name="containtmentQuery" visibility="public">
+                  <ownedParameter xmi:id="_6Une8-O8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Une9OO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Une9eO8EdyGNPaNHSGn_w" name="insert" visibility="public">
+                  <ownedParameter xmi:id="_6Une9uO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Une9-O8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Une-OO8EdyGNPaNHSGn_w" name="createRegion" visibility="private">
+                  <ownedParameter xmi:id="_6Une-eO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Une-uO8EdyGNPaNHSGn_w" name="return" type="_6UnfKuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Une--O8EdyGNPaNHSGn_w" name="delete" visibility="public">
+                  <ownedParameter xmi:id="_6Une_OO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Une_eO8EdyGNPaNHSGn_w" name="index" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Une_uO8EdyGNPaNHSGn_w" name="findNNearest" visibility="public">
+                  <ownedParameter xmi:id="_6Une_-O8EdyGNPaNHSGn_w" name="numberOfNearest" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnfAOO8EdyGNPaNHSGn_w" name="rect" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnfAeO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfAuO8EdyGNPaNHSGn_w" name="findNNearest" visibility="public">
+                  <ownedParameter xmi:id="_6UnfA-O8EdyGNPaNHSGn_w" name="numberOfNearest" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnfBOO8EdyGNPaNHSGn_w" name="point" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnfBeO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfBuO8EdyGNPaNHSGn_w" name="flush" visibility="public"/>
+                <ownedOperation xmi:id="_6UnfB-O8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UnfCOO8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfCeO8EdyGNPaNHSGn_w" name="load" visibility="public"/>
+                <ownedOperation xmi:id="_6UnfCuO8EdyGNPaNHSGn_w" name="close" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnfC-O8EdyGNPaNHSGn_w" name="RTreeVisitor">
+                <ownedAttribute xmi:id="_6UnfDOO8EdyGNPaNHSGn_w" name="solution" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnfDeO8EdyGNPaNHSGn_w" name="visitNode" visibility="public">
+                  <ownedParameter xmi:id="_6UnfDuO8EdyGNPaNHSGn_w" name="n" type="_6UnfK-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfD-O8EdyGNPaNHSGn_w" name="visitData" visibility="public">
+                  <ownedParameter xmi:id="_6UnfEOO8EdyGNPaNHSGn_w" name="d" type="_6UnfLOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfEeO8EdyGNPaNHSGn_w" name="getSolution" visibility="public">
+                  <ownedParameter xmi:id="_6UnfEuO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnfE-O8EdyGNPaNHSGn_w" name="SpatialIndexTest">
+                <generalization xmi:id="_6UnfFOO8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfFeO8EdyGNPaNHSGn_w" name="fwAndamiDriverPath" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfFuO8EdyGNPaNHSGn_w" name="baseDataPath" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfF-O8EdyGNPaNHSGn_w" name="baseDriversPath" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfGOO8EdyGNPaNHSGn_w" name="SHP_DRIVER_NAME" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfGeO8EdyGNPaNHSGn_w" name="PROJECTION_DEFAULT" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfGuO8EdyGNPaNHSGn_w" name="cantabria" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6UnfLeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfG-O8EdyGNPaNHSGn_w" name="edificaciones" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6UnfL-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnfHOO8EdyGNPaNHSGn_w" name="setUp" visibility="protected"/>
+                <ownedOperation xmi:id="_6UnfHeO8EdyGNPaNHSGn_w" name="newLayer" visibility="public">
+                  <ownedParameter xmi:id="_6UnfHuO8EdyGNPaNHSGn_w" name="fileName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnfH-O8EdyGNPaNHSGn_w" name="driverName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnfIOO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfIeO8EdyGNPaNHSGn_w" name="tearDown" visibility="protected"/>
+                <ownedOperation xmi:id="_6UnfIuO8EdyGNPaNHSGn_w" name="testSpatialIndexFullExtent" visibility="public"/>
+                <ownedOperation xmi:id="_6UnfI-O8EdyGNPaNHSGn_w" name="testPersistentRtreeJsi" visibility="public"/>
+                <ownedOperation xmi:id="_6UnfJOO8EdyGNPaNHSGn_w" name="testPerformanceRtreeJsiQuadtreeGt2" visibility="public"/>
+                <ownedOperation xmi:id="_6UnfJeO8EdyGNPaNHSGn_w" name="testNearestRectanglePoint" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UnfJuO8EdyGNPaNHSGn_w" name="QuadTree"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UnfJ-O8EdyGNPaNHSGn_w" name="RTree"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UnfKOO8EdyGNPaNHSGn_w" name="LinkedHashMap"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UnfKeO8EdyGNPaNHSGn_w" name="IStorageManager"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UnfKuO8EdyGNPaNHSGn_w" name="Region"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UnfK-O8EdyGNPaNHSGn_w" name="INode"/>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UnfLOO8EdyGNPaNHSGn_w" name="IData"/>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnfLeO8EdyGNPaNHSGn_w" memberEnd="_6UnfGuO8EdyGNPaNHSGn_w _6UnfLuO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UnfLuO8EdyGNPaNHSGn_w" name="target" type="_6UnfE-O8EdyGNPaNHSGn_w" association="_6UnfLeO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnfL-O8EdyGNPaNHSGn_w" memberEnd="_6UnfG-O8EdyGNPaNHSGn_w _6UnfMOO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UnfMOO8EdyGNPaNHSGn_w" name="target" type="_6UnfE-O8EdyGNPaNHSGn_w" association="_6UnfL-O8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UnfMeO8EdyGNPaNHSGn_w" name="tools">
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnfMuO8EdyGNPaNHSGn_w" name="AreaListenerImpl" clientDependency="_6UnfN-O8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UnfM-O8EdyGNPaNHSGn_w" name="iarea" visibility="private" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfNOO8EdyGNPaNHSGn_w" name="cur" visibility="private" type="_6UnhK-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfNeO8EdyGNPaNHSGn_w" name="mapCtrl" visibility="protected" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UnhLOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfNuO8EdyGNPaNHSGn_w" name="event" visibility="protected" type="_6Ung1-O8EdyGNPaNHSGn_w" association="_6UnhLuO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnfN-O8EdyGNPaNHSGn_w" name="PolylineListener" supplier="_6Ung9eO8EdyGNPaNHSGn_w" client="_6UnfMuO8EdyGNPaNHSGn_w" contract="_6Ung9eO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnfOOO8EdyGNPaNHSGn_w" name="points" visibility="public">
+                  <ownedParameter xmi:id="_6UnfOeO8EdyGNPaNHSGn_w" name="event" type="_6Ung1-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfOuO8EdyGNPaNHSGn_w" name="returnArea" visibility="protected">
+                  <ownedParameter xmi:id="_6UnfO-O8EdyGNPaNHSGn_w" name="point" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnfPOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfPeO8EdyGNPaNHSGn_w" name="returnCoordsArea" visibility="public">
+                  <ownedParameter xmi:id="_6UnfPuO8EdyGNPaNHSGn_w" name="xs" type="_6UdyauO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnfP-O8EdyGNPaNHSGn_w" name="ys" type="_6UdyauO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnfQOO8EdyGNPaNHSGn_w" name="point" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnfQeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfQuO8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UnfQ-O8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfROO8EdyGNPaNHSGn_w" name="returnGeoCArea" visibility="public">
+                  <ownedParameter xmi:id="_6UnfReO8EdyGNPaNHSGn_w" name="xs" type="_6UdyauO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnfRuO8EdyGNPaNHSGn_w" name="ys" type="_6UdyauO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnfR-O8EdyGNPaNHSGn_w" name="point" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnfSOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfSeO8EdyGNPaNHSGn_w" name="getCursor" visibility="public">
+                  <ownedParameter xmi:id="_6UnfSuO8EdyGNPaNHSGn_w" name="return" type="_6UnhK-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfS-O8EdyGNPaNHSGn_w" name="pointFixed" visibility="public">
+                  <ownedParameter xmi:id="_6UnfTOO8EdyGNPaNHSGn_w" name="event" type="_6Ung1-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfTeO8EdyGNPaNHSGn_w" name="polylineFinished" visibility="public">
+                  <ownedParameter xmi:id="_6UnfTuO8EdyGNPaNHSGn_w" name="event" type="_6Ung1-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfT-O8EdyGNPaNHSGn_w" name="cancelDrawing" visibility="public">
+                  <ownedParameter xmi:id="_6UnfUOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnfUeO8EdyGNPaNHSGn_w" name="PolygonSelectionListener" clientDependency="_6UnfVeO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UnfUuO8EdyGNPaNHSGn_w" name="img" visibility="private" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfU-O8EdyGNPaNHSGn_w" name="cur" visibility="private" type="_6UnhK-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfVOO8EdyGNPaNHSGn_w" name="mapCtrl" visibility="private" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UnhMOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnfVeO8EdyGNPaNHSGn_w" name="PolylineListener" supplier="_6Ung9eO8EdyGNPaNHSGn_w" client="_6UnfUeO8EdyGNPaNHSGn_w" contract="_6Ung9eO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnfVuO8EdyGNPaNHSGn_w" name="getCursor" visibility="public">
+                  <ownedParameter xmi:id="_6UnfV-O8EdyGNPaNHSGn_w" name="return" type="_6UnhK-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfWOO8EdyGNPaNHSGn_w" name="cancelDrawing" visibility="public">
+                  <ownedParameter xmi:id="_6UnfWeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfWuO8EdyGNPaNHSGn_w" name="points" visibility="public">
+                  <ownedParameter xmi:id="_6UnfW-O8EdyGNPaNHSGn_w" name="event" type="_6Ung1-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfXOO8EdyGNPaNHSGn_w" name="pointFixed" visibility="public">
+                  <ownedParameter xmi:id="_6UnfXeO8EdyGNPaNHSGn_w" name="event" type="_6Ung1-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfXuO8EdyGNPaNHSGn_w" name="polylineFinished" visibility="public">
+                  <ownedParameter xmi:id="_6UnfX-O8EdyGNPaNHSGn_w" name="event" type="_6Ung1-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnfYOO8EdyGNPaNHSGn_w" name="PointSelectionListener" clientDependency="_6UnfZOO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UnfYeO8EdyGNPaNHSGn_w" name="img" visibility="private" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfYuO8EdyGNPaNHSGn_w" name="cur" visibility="private" type="_6UnhK-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfY-O8EdyGNPaNHSGn_w" name="mapCtrl" visibility="protected" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UnhMuO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnfZOO8EdyGNPaNHSGn_w" name="PointListener" supplier="_6UnhAuO8EdyGNPaNHSGn_w" client="_6UnfYOO8EdyGNPaNHSGn_w" contract="_6UnhAuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnfZeO8EdyGNPaNHSGn_w" name="point" visibility="public">
+                  <ownedParameter xmi:id="_6UnfZuO8EdyGNPaNHSGn_w" name="event" type="_6UngzuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfZ-O8EdyGNPaNHSGn_w" name="getCursor" visibility="public">
+                  <ownedParameter xmi:id="_6UnfaOO8EdyGNPaNHSGn_w" name="return" type="_6UnhK-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfaeO8EdyGNPaNHSGn_w" name="cancelDrawing" visibility="public">
+                  <ownedParameter xmi:id="_6UnfauO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unfa-O8EdyGNPaNHSGn_w" name="pointDoubleClick" visibility="public">
+                  <ownedParameter xmi:id="_6UnfbOO8EdyGNPaNHSGn_w" name="event" type="_6UngzuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnfbeO8EdyGNPaNHSGn_w" name="ZoomInListenerImpl" clientDependency="_6UnfceO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UnfbuO8EdyGNPaNHSGn_w" name="izoomin" visibility="private" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unfb-O8EdyGNPaNHSGn_w" name="cur" visibility="private" type="_6UnhK-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfcOO8EdyGNPaNHSGn_w" name="mapCtrl" visibility="private" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UnhNOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnfceO8EdyGNPaNHSGn_w" name="RectangleListener" supplier="_6Ung8eO8EdyGNPaNHSGn_w" client="_6UnfbeO8EdyGNPaNHSGn_w" contract="_6Ung8eO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnfcuO8EdyGNPaNHSGn_w" name="rectangle" visibility="public">
+                  <ownedParameter xmi:id="_6Unfc-O8EdyGNPaNHSGn_w" name="event" type="_6Ung5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfdOO8EdyGNPaNHSGn_w" name="getCursor" visibility="public">
+                  <ownedParameter xmi:id="_6UnfdeO8EdyGNPaNHSGn_w" name="return" type="_6UnhK-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfduO8EdyGNPaNHSGn_w" name="cancelDrawing" visibility="public">
+                  <ownedParameter xmi:id="_6Unfd-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnfeOO8EdyGNPaNHSGn_w" name="BehaviorException">
+                <generalization xmi:id="_6UnfeeO8EdyGNPaNHSGn_w" general="_6UnhhOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnfeuO8EdyGNPaNHSGn_w" name="RectangleSelectionListener" clientDependency="_6UnffuO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6Unfe-O8EdyGNPaNHSGn_w" name="img" visibility="private" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnffOO8EdyGNPaNHSGn_w" name="cur" visibility="private" type="_6UnhK-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnffeO8EdyGNPaNHSGn_w" name="mapCtrl" visibility="private" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UnhNuO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnffuO8EdyGNPaNHSGn_w" name="RectangleListener" supplier="_6Ung8eO8EdyGNPaNHSGn_w" client="_6UnfeuO8EdyGNPaNHSGn_w" contract="_6Ung8eO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Unff-O8EdyGNPaNHSGn_w" name="rectangle" visibility="public">
+                  <ownedParameter xmi:id="_6UnfgOO8EdyGNPaNHSGn_w" name="event" type="_6Ung5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfgeO8EdyGNPaNHSGn_w" name="getCursor" visibility="public">
+                  <ownedParameter xmi:id="_6UnfguO8EdyGNPaNHSGn_w" name="return" type="_6UnhK-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unfg-O8EdyGNPaNHSGn_w" name="cancelDrawing" visibility="public">
+                  <ownedParameter xmi:id="_6UnfhOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnfheO8EdyGNPaNHSGn_w" name="ZoomOutRightButtonListener" clientDependency="_6UnfieO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UnfhuO8EdyGNPaNHSGn_w" name="izoomout" visibility="private" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unfh-O8EdyGNPaNHSGn_w" name="cur" visibility="private" type="_6UnhK-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfiOO8EdyGNPaNHSGn_w" name="mapControl" visibility="private" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UnhOOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnfieO8EdyGNPaNHSGn_w" name="PointListener" supplier="_6UnhAuO8EdyGNPaNHSGn_w" client="_6UnfheO8EdyGNPaNHSGn_w" contract="_6UnhAuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnfiuO8EdyGNPaNHSGn_w" name="point" visibility="public">
+                  <ownedParameter xmi:id="_6Unfi-O8EdyGNPaNHSGn_w" name="event" type="_6UngzuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfjOO8EdyGNPaNHSGn_w" name="getCursor" visibility="public">
+                  <ownedParameter xmi:id="_6UnfjeO8EdyGNPaNHSGn_w" name="return" type="_6UnhK-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfjuO8EdyGNPaNHSGn_w" name="cancelDrawing" visibility="public">
+                  <ownedParameter xmi:id="_6Unfj-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfkOO8EdyGNPaNHSGn_w" name="pointDoubleClick" visibility="public">
+                  <ownedParameter xmi:id="_6UnfkeO8EdyGNPaNHSGn_w" name="event" type="_6UngzuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnfkuO8EdyGNPaNHSGn_w" name="PanListenerImpl" clientDependency="_6UnfluO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6Unfk-O8EdyGNPaNHSGn_w" name="ipan" visibility="private" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnflOO8EdyGNPaNHSGn_w" name="cur" visibility="private" type="_6UnhK-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfleO8EdyGNPaNHSGn_w" name="mapControl" visibility="private" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UnhOuO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnfluO8EdyGNPaNHSGn_w" name="PanListener" supplier="_6UnhCOO8EdyGNPaNHSGn_w" client="_6UnfkuO8EdyGNPaNHSGn_w" contract="_6UnhCOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Unfl-O8EdyGNPaNHSGn_w" name="move" visibility="public">
+                  <ownedParameter xmi:id="_6UnfmOO8EdyGNPaNHSGn_w" name="event" type="_6UngxOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfmeO8EdyGNPaNHSGn_w" name="getCursor" visibility="public">
+                  <ownedParameter xmi:id="_6UnfmuO8EdyGNPaNHSGn_w" name="return" type="_6UnhK-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unfm-O8EdyGNPaNHSGn_w" name="cancelDrawing" visibility="public">
+                  <ownedParameter xmi:id="_6UnfnOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnfneO8EdyGNPaNHSGn_w" name="MeasureListenerImpl" clientDependency="_6UnfoeO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UnfnuO8EdyGNPaNHSGn_w" name="iruler" visibility="private" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unfn-O8EdyGNPaNHSGn_w" name="cur" visibility="private" type="_6UnhK-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfoOO8EdyGNPaNHSGn_w" name="mapCtrl" visibility="protected" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UnhPOO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnfoeO8EdyGNPaNHSGn_w" name="PolylineListener" supplier="_6Ung9eO8EdyGNPaNHSGn_w" client="_6UnfneO8EdyGNPaNHSGn_w" contract="_6Ung9eO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnfouO8EdyGNPaNHSGn_w" name="points" visibility="public">
+                  <ownedParameter xmi:id="_6Unfo-O8EdyGNPaNHSGn_w" name="event" type="_6Ung1-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfpOO8EdyGNPaNHSGn_w" name="getCursor" visibility="public">
+                  <ownedParameter xmi:id="_6UnfpeO8EdyGNPaNHSGn_w" name="return" type="_6UnhK-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfpuO8EdyGNPaNHSGn_w" name="pointFixed" visibility="public">
+                  <ownedParameter xmi:id="_6Unfp-O8EdyGNPaNHSGn_w" name="event" type="_6Ung1-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfqOO8EdyGNPaNHSGn_w" name="cancelDrawing" visibility="public">
+                  <ownedParameter xmi:id="_6UnfqeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfquO8EdyGNPaNHSGn_w" name="polylineFinished" visibility="public">
+                  <ownedParameter xmi:id="_6Unfq-O8EdyGNPaNHSGn_w" name="event" type="_6Ung1-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnfrOO8EdyGNPaNHSGn_w" name="ZoomOutListenerImpl" clientDependency="_6UnfsOO8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6UnfreO8EdyGNPaNHSGn_w" name="izoomout" visibility="private" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfruO8EdyGNPaNHSGn_w" name="cur" visibility="private" type="_6UnhK-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unfr-O8EdyGNPaNHSGn_w" name="mapControl" visibility="private" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UnhPuO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6UnfsOO8EdyGNPaNHSGn_w" name="PointListener" supplier="_6UnhAuO8EdyGNPaNHSGn_w" client="_6UnfrOO8EdyGNPaNHSGn_w" contract="_6UnhAuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnfseO8EdyGNPaNHSGn_w" name="point" visibility="public">
+                  <ownedParameter xmi:id="_6UnfsuO8EdyGNPaNHSGn_w" name="event" type="_6UngzuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unfs-O8EdyGNPaNHSGn_w" name="getCursor" visibility="public">
+                  <ownedParameter xmi:id="_6UnftOO8EdyGNPaNHSGn_w" name="return" type="_6UnhK-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfteO8EdyGNPaNHSGn_w" name="cancelDrawing" visibility="public">
+                  <ownedParameter xmi:id="_6UnftuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unft-O8EdyGNPaNHSGn_w" name="pointDoubleClick" visibility="public">
+                  <ownedParameter xmi:id="_6UnfuOO8EdyGNPaNHSGn_w" name="event" type="_6UngzuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnfueO8EdyGNPaNHSGn_w" name="CompoundBehavior">
+                <generalization xmi:id="_6UnfuuO8EdyGNPaNHSGn_w" general="_6UngmOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unfu-O8EdyGNPaNHSGn_w" name="behaviors" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfvOO8EdyGNPaNHSGn_w" name="draws" visibility="private" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnfveO8EdyGNPaNHSGn_w" name="behavior" visibility="private" type="_6UngmOO8EdyGNPaNHSGn_w" association="_6UnhQOO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnfvuO8EdyGNPaNHSGn_w" name="addMapBehavior" visibility="public">
+                  <ownedParameter xmi:id="_6Unfv-O8EdyGNPaNHSGn_w" name="mt" type="_6UngmOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnfwOO8EdyGNPaNHSGn_w" name="draw" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfweO8EdyGNPaNHSGn_w" name="getCursor" visibility="public">
+                  <ownedParameter xmi:id="_6UnfwuO8EdyGNPaNHSGn_w" name="return" type="_6UnhK-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unfw-O8EdyGNPaNHSGn_w" name="mouseClicked" visibility="public">
+                  <ownedParameter xmi:id="_6UnfxOO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfxeO8EdyGNPaNHSGn_w" name="mouseDragged" visibility="public">
+                  <ownedParameter xmi:id="_6UnfxuO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unfx-O8EdyGNPaNHSGn_w" name="mouseEntered" visibility="public">
+                  <ownedParameter xmi:id="_6UnfyOO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfyeO8EdyGNPaNHSGn_w" name="mouseExited" visibility="public">
+                  <ownedParameter xmi:id="_6UnfyuO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unfy-O8EdyGNPaNHSGn_w" name="mouseMoved" visibility="public">
+                  <ownedParameter xmi:id="_6UnfzOO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnfzeO8EdyGNPaNHSGn_w" name="mousePressed" visibility="public">
+                  <ownedParameter xmi:id="_6UnfzuO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unfz-O8EdyGNPaNHSGn_w" name="mouseReleased" visibility="public">
+                  <ownedParameter xmi:id="_6Unf0OO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unf0eO8EdyGNPaNHSGn_w" name="mouseWheelMoved" visibility="public">
+                  <ownedParameter xmi:id="_6Unf0uO8EdyGNPaNHSGn_w" name="e" type="_6Unhn-O8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unf0-O8EdyGNPaNHSGn_w" name="paintComponent" visibility="public">
+                  <ownedParameter xmi:id="_6Unf1OO8EdyGNPaNHSGn_w" name="g" type="_6UnhmeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unf1eO8EdyGNPaNHSGn_w" name="setListener" visibility="public">
+                  <ownedParameter xmi:id="_6Unf1uO8EdyGNPaNHSGn_w" name="listener" type="_6Ung_eO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unf1-O8EdyGNPaNHSGn_w" name="getListener" visibility="public">
+                  <ownedParameter xmi:id="_6Unf2OO8EdyGNPaNHSGn_w" name="return" type="_6Ung_eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unf2eO8EdyGNPaNHSGn_w" name="setMapControl" visibility="public">
+                  <ownedParameter xmi:id="_6Unf2uO8EdyGNPaNHSGn_w" name="mc" type="_6UKvhOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unf2-O8EdyGNPaNHSGn_w" name="setAllControlsBehavior" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Unf3OO8EdyGNPaNHSGn_w" name="behavior" type="_6UngmOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unf3eO8EdyGNPaNHSGn_w" name="getAllControlsBehavior" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6Unf3uO8EdyGNPaNHSGn_w" name="return" type="_6UngmOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Unf3-O8EdyGNPaNHSGn_w" name="MapTool">
+                <ownedAttribute xmi:id="_6Unf4OO8EdyGNPaNHSGn_w" name="mc" visibility="protected" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UnhQuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unf4eO8EdyGNPaNHSGn_w" name="cursor" visibility="protected" type="_6UnhK-O8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Unf4uO8EdyGNPaNHSGn_w" name="cmd" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6Unf4-O8EdyGNPaNHSGn_w" name="pt" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unf5OO8EdyGNPaNHSGn_w" name="bt" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unf5eO8EdyGNPaNHSGn_w" name="mouseEvent" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unf5uO8EdyGNPaNHSGn_w" name="paintComponent" visibility="public" isAbstract="true">
+                  <ownedParameter xmi:id="_6Unf5-O8EdyGNPaNHSGn_w" name="g" type="_6UnhmeO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unf6OO8EdyGNPaNHSGn_w" name="getCursor" visibility="public">
+                  <ownedParameter xmi:id="_6Unf6eO8EdyGNPaNHSGn_w" name="return" type="_6UnhK-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Unf6uO8EdyGNPaNHSGn_w" name="SelectImageListenerImpl" clientDependency="_6Unf7-O8EdyGNPaNHSGn_w">
+                <ownedAttribute xmi:id="_6Unf6-O8EdyGNPaNHSGn_w" name="isaveraster" visibility="private" type="_6UUpzeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unf7OO8EdyGNPaNHSGn_w" name="cur" visibility="private" type="_6UnhK-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unf7eO8EdyGNPaNHSGn_w" name="mapCtrl" visibility="protected" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UnhROO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unf7uO8EdyGNPaNHSGn_w" name="wcPoint" visibility="protected" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                <interfaceRealization xmi:id="_6Unf7-O8EdyGNPaNHSGn_w" name="PointListener" supplier="_6UnhAuO8EdyGNPaNHSGn_w" client="_6Unf6uO8EdyGNPaNHSGn_w" contract="_6UnhAuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Unf8OO8EdyGNPaNHSGn_w" name="point" visibility="public">
+                  <ownedParameter xmi:id="_6Unf8eO8EdyGNPaNHSGn_w" name="event" type="_6UngzuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unf8uO8EdyGNPaNHSGn_w" name="getCursor" visibility="public">
+                  <ownedParameter xmi:id="_6Unf8-O8EdyGNPaNHSGn_w" name="return" type="_6UnhK-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unf9OO8EdyGNPaNHSGn_w" name="cancelDrawing" visibility="public">
+                  <ownedParameter xmi:id="_6Unf9eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unf9uO8EdyGNPaNHSGn_w" name="pointDoubleClick" visibility="public">
+                  <ownedParameter xmi:id="_6Unf9-O8EdyGNPaNHSGn_w" name="event" type="_6UngzuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6Unf-OO8EdyGNPaNHSGn_w" name="Behavior">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Unf-eO8EdyGNPaNHSGn_w" name="MoveBehavior">
+                  <generalization xmi:id="_6Unf-uO8EdyGNPaNHSGn_w" general="_6UngmOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Unf--O8EdyGNPaNHSGn_w" name="m_FirstPoint" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Unf_OO8EdyGNPaNHSGn_w" name="m_LastPoint" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Unf_eO8EdyGNPaNHSGn_w" name="listener" visibility="private" type="_6UnhCOO8EdyGNPaNHSGn_w" association="_6UngteO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Unf_uO8EdyGNPaNHSGn_w" name="isButton1" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Unf_-O8EdyGNPaNHSGn_w" name="paintComponent" visibility="public">
+                    <ownedParameter xmi:id="_6UngAOO8EdyGNPaNHSGn_w" name="g" type="_6UnhmeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngAeO8EdyGNPaNHSGn_w" name="mousePressed" visibility="public">
+                    <ownedParameter xmi:id="_6UngAuO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngA-O8EdyGNPaNHSGn_w" name="mouseReleased" visibility="public">
+                    <ownedParameter xmi:id="_6UngBOO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngBeO8EdyGNPaNHSGn_w" name="mouseDragged" visibility="public">
+                    <ownedParameter xmi:id="_6UngBuO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngB-O8EdyGNPaNHSGn_w" name="setListener" visibility="public">
+                    <ownedParameter xmi:id="_6UngCOO8EdyGNPaNHSGn_w" name="listener" type="_6Ung_eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngCeO8EdyGNPaNHSGn_w" name="getListener" visibility="public">
+                    <ownedParameter xmi:id="_6UngCuO8EdyGNPaNHSGn_w" name="return" type="_6Ung_eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UngC-O8EdyGNPaNHSGn_w" name="IBehavior">
+                  <ownedOperation xmi:id="_6UngDOO8EdyGNPaNHSGn_w" name="getListener" visibility="public">
+                    <ownedParameter xmi:id="_6UngDeO8EdyGNPaNHSGn_w" name="return" type="_6Ung_eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngDuO8EdyGNPaNHSGn_w" name="paintComponent" visibility="public">
+                    <ownedParameter xmi:id="_6UngD-O8EdyGNPaNHSGn_w" name="g" type="_6UnhmeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngEOO8EdyGNPaNHSGn_w" name="setMapControl" visibility="public">
+                    <ownedParameter xmi:id="_6UngEeO8EdyGNPaNHSGn_w" name="mc" type="_6UKvhOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngEuO8EdyGNPaNHSGn_w" name="getCursor" visibility="public">
+                    <ownedParameter xmi:id="_6UngE-O8EdyGNPaNHSGn_w" name="return" type="_6UnhK-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngFOO8EdyGNPaNHSGn_w" name="getMapControl" visibility="public">
+                    <ownedParameter xmi:id="_6UngFeO8EdyGNPaNHSGn_w" name="return" type="_6UKvhOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngFuO8EdyGNPaNHSGn_w" name="mouseClicked" visibility="public">
+                    <ownedParameter xmi:id="_6UngF-O8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngGOO8EdyGNPaNHSGn_w" name="mouseEntered" visibility="public">
+                    <ownedParameter xmi:id="_6UngGeO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngGuO8EdyGNPaNHSGn_w" name="mouseExited" visibility="public">
+                    <ownedParameter xmi:id="_6UngG-O8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngHOO8EdyGNPaNHSGn_w" name="mousePressed" visibility="public">
+                    <ownedParameter xmi:id="_6UngHeO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngHuO8EdyGNPaNHSGn_w" name="mouseReleased" visibility="public">
+                    <ownedParameter xmi:id="_6UngH-O8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngIOO8EdyGNPaNHSGn_w" name="mouseDragged" visibility="public">
+                    <ownedParameter xmi:id="_6UngIeO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngIuO8EdyGNPaNHSGn_w" name="mouseMoved" visibility="public">
+                    <ownedParameter xmi:id="_6UngI-O8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngJOO8EdyGNPaNHSGn_w" name="mouseWheelMoved" visibility="public">
+                    <ownedParameter xmi:id="_6UngJeO8EdyGNPaNHSGn_w" name="e" type="_6Unhn-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UngJuO8EdyGNPaNHSGn_w" name="PolygonBehavior">
+                  <generalization xmi:id="_6UngJ-O8EdyGNPaNHSGn_w" general="_6UngUOO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UngKOO8EdyGNPaNHSGn_w" name="paintComponent" visibility="public">
+                    <ownedParameter xmi:id="_6UngKeO8EdyGNPaNHSGn_w" name="g" type="_6UnhmeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngKuO8EdyGNPaNHSGn_w" name="mousePressed" visibility="public">
+                    <ownedParameter xmi:id="_6UngK-O8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngLOO8EdyGNPaNHSGn_w" name="addAntPoint" visibility="private">
+                    <ownedParameter xmi:id="_6UngLeO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngLuO8EdyGNPaNHSGn_w" name="changeAntPoint" visibility="private">
+                    <ownedParameter xmi:id="_6UngL-O8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngMOO8EdyGNPaNHSGn_w" name="mouseMoved" visibility="public">
+                    <ownedParameter xmi:id="_6UngMeO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngMuO8EdyGNPaNHSGn_w" name="mouseDragged" visibility="public">
+                    <ownedParameter xmi:id="_6UngM-O8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UngNOO8EdyGNPaNHSGn_w" name="RectangleBehavior">
+                  <generalization xmi:id="_6UngNeO8EdyGNPaNHSGn_w" general="_6UngmOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UngNuO8EdyGNPaNHSGn_w" name="m_FirstPoint" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UngN-O8EdyGNPaNHSGn_w" name="m_LastPoint" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UngOOO8EdyGNPaNHSGn_w" name="listener" visibility="private" type="_6Ung8eO8EdyGNPaNHSGn_w" association="_6Ungt-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UngOeO8EdyGNPaNHSGn_w" name="paintComponent" visibility="public">
+                    <ownedParameter xmi:id="_6UngOuO8EdyGNPaNHSGn_w" name="g" type="_6UnhmeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngO-O8EdyGNPaNHSGn_w" name="mousePressed" visibility="public">
+                    <ownedParameter xmi:id="_6UngPOO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngPeO8EdyGNPaNHSGn_w" name="mouseReleased" visibility="public">
+                    <ownedParameter xmi:id="_6UngPuO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngP-O8EdyGNPaNHSGn_w" name="mouseDragged" visibility="public">
+                    <ownedParameter xmi:id="_6UngQOO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngQeO8EdyGNPaNHSGn_w" name="setListener" visibility="public">
+                    <ownedParameter xmi:id="_6UngQuO8EdyGNPaNHSGn_w" name="listener" type="_6Ung_eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngQ-O8EdyGNPaNHSGn_w" name="getListener" visibility="public">
+                    <ownedParameter xmi:id="_6UngROO8EdyGNPaNHSGn_w" name="return" type="_6Ung_eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UngReO8EdyGNPaNHSGn_w" name="MouseMovementBehavior">
+                  <generalization xmi:id="_6UngRuO8EdyGNPaNHSGn_w" general="_6UngmOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UngR-O8EdyGNPaNHSGn_w" name="listener" visibility="protected" type="_6UnhAuO8EdyGNPaNHSGn_w" association="_6UngueO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UngSOO8EdyGNPaNHSGn_w" name="mouseDragged" visibility="public">
+                    <ownedParameter xmi:id="_6UngSeO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngSuO8EdyGNPaNHSGn_w" name="mouseMoved" visibility="public">
+                    <ownedParameter xmi:id="_6UngS-O8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngTOO8EdyGNPaNHSGn_w" name="setListener" visibility="public">
+                    <ownedParameter xmi:id="_6UngTeO8EdyGNPaNHSGn_w" name="listener" type="_6Ung_eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngTuO8EdyGNPaNHSGn_w" name="getListener" visibility="public">
+                    <ownedParameter xmi:id="_6UngT-O8EdyGNPaNHSGn_w" name="return" type="_6Ung_eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UngUOO8EdyGNPaNHSGn_w" name="PolylineBehavior">
+                  <generalization xmi:id="_6UngUeO8EdyGNPaNHSGn_w" general="_6UngmOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UngUuO8EdyGNPaNHSGn_w" name="arrayX" visibility="protected" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UngU-O8EdyGNPaNHSGn_w" name="arrayY" visibility="protected" type="_6UnhiOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UngVOO8EdyGNPaNHSGn_w" name="isClicked" visibility="protected" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UngVeO8EdyGNPaNHSGn_w" name="listener" visibility="protected" type="_6Ung9eO8EdyGNPaNHSGn_w" association="_6Ungu-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UngVuO8EdyGNPaNHSGn_w" name="paintComponent" visibility="public">
+                    <ownedParameter xmi:id="_6UngV-O8EdyGNPaNHSGn_w" name="g" type="_6UnhmeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngWOO8EdyGNPaNHSGn_w" name="mousePressed" visibility="public">
+                    <ownedParameter xmi:id="_6UngWeO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngWuO8EdyGNPaNHSGn_w" name="mouseDragged" visibility="public">
+                    <ownedParameter xmi:id="_6UngW-O8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngXOO8EdyGNPaNHSGn_w" name="changeLastPoint" visibility="protected">
+                    <ownedParameter xmi:id="_6UngXeO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngXuO8EdyGNPaNHSGn_w" name="mouseMoved" visibility="public">
+                    <ownedParameter xmi:id="_6UngX-O8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngYOO8EdyGNPaNHSGn_w" name="drawPolyLine" visibility="protected">
+                    <ownedParameter xmi:id="_6UngYeO8EdyGNPaNHSGn_w" name="g2" type="_6UnhjuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngYuO8EdyGNPaNHSGn_w" name="addPoint" visibility="protected">
+                    <ownedParameter xmi:id="_6UngY-O8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngZOO8EdyGNPaNHSGn_w" name="setListener" visibility="public">
+                    <ownedParameter xmi:id="_6UngZeO8EdyGNPaNHSGn_w" name="listener" type="_6Ung_eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngZuO8EdyGNPaNHSGn_w" name="getListener" visibility="public">
+                    <ownedParameter xmi:id="_6UngZ-O8EdyGNPaNHSGn_w" name="return" type="_6Ung_eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UngaOO8EdyGNPaNHSGn_w" name="PointBehavior">
+                  <generalization xmi:id="_6UngaeO8EdyGNPaNHSGn_w" general="_6UngmOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UngauO8EdyGNPaNHSGn_w" name="listener" visibility="private" type="_6UnhAuO8EdyGNPaNHSGn_w" association="_6UngveO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Unga-O8EdyGNPaNHSGn_w" name="doubleClick" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UngbOO8EdyGNPaNHSGn_w" name="mousePressed" visibility="public">
+                    <ownedParameter xmi:id="_6UngbeO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngbuO8EdyGNPaNHSGn_w" name="mouseReleased" visibility="public">
+                    <ownedParameter xmi:id="_6Ungb-O8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngcOO8EdyGNPaNHSGn_w" name="setListener" visibility="public">
+                    <ownedParameter xmi:id="_6UngceO8EdyGNPaNHSGn_w" name="listener" type="_6Ung_eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngcuO8EdyGNPaNHSGn_w" name="getListener" visibility="public">
+                    <ownedParameter xmi:id="_6Ungc-O8EdyGNPaNHSGn_w" name="return" type="_6Ung_eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UngdOO8EdyGNPaNHSGn_w" name="DraggerBehavior">
+                  <generalization xmi:id="_6UngdeO8EdyGNPaNHSGn_w" general="_6UngmOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UngduO8EdyGNPaNHSGn_w" name="m_FirstPoint" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ungd-O8EdyGNPaNHSGn_w" name="listener" visibility="private" type="_6UnhCOO8EdyGNPaNHSGn_w" association="_6Ungv-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UngeOO8EdyGNPaNHSGn_w" name="paintComponent" visibility="public">
+                    <ownedParameter xmi:id="_6UngeeO8EdyGNPaNHSGn_w" name="g" type="_6UnhmeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngeuO8EdyGNPaNHSGn_w" name="mousePressed" visibility="public">
+                    <ownedParameter xmi:id="_6Unge-O8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngfOO8EdyGNPaNHSGn_w" name="mouseReleased" visibility="public">
+                    <ownedParameter xmi:id="_6UngfeO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngfuO8EdyGNPaNHSGn_w" name="mouseDragged" visibility="public">
+                    <ownedParameter xmi:id="_6Ungf-O8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UnggOO8EdyGNPaNHSGn_w" name="setListener" visibility="public">
+                    <ownedParameter xmi:id="_6UnggeO8EdyGNPaNHSGn_w" name="listener" type="_6Ung_eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngguO8EdyGNPaNHSGn_w" name="getListener" visibility="public">
+                    <ownedParameter xmi:id="_6Ungg-O8EdyGNPaNHSGn_w" name="return" type="_6Ung_eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UnghOO8EdyGNPaNHSGn_w" name="CircleBehavior">
+                  <generalization xmi:id="_6UngheO8EdyGNPaNHSGn_w" general="_6UngmOO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UnghuO8EdyGNPaNHSGn_w" name="m_FirstPoint" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ungh-O8EdyGNPaNHSGn_w" name="m_LastPoint" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UngiOO8EdyGNPaNHSGn_w" name="listener" visibility="private" type="_6UnhDOO8EdyGNPaNHSGn_w" association="_6UngweO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UngieO8EdyGNPaNHSGn_w" name="isClicked" visibility="protected" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UngiuO8EdyGNPaNHSGn_w" name="paintComponent" visibility="public">
+                    <ownedParameter xmi:id="_6Ungi-O8EdyGNPaNHSGn_w" name="g" type="_6UnhmeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngjOO8EdyGNPaNHSGn_w" name="mousePressed" visibility="public">
+                    <ownedParameter xmi:id="_6UngjeO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngjuO8EdyGNPaNHSGn_w" name="mouseReleased" visibility="public">
+                    <ownedParameter xmi:id="_6Ungj-O8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngkOO8EdyGNPaNHSGn_w" name="mouseDragged" visibility="public">
+                    <ownedParameter xmi:id="_6UngkeO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngkuO8EdyGNPaNHSGn_w" name="mouseMoved" visibility="public">
+                    <ownedParameter xmi:id="_6Ungk-O8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UnglOO8EdyGNPaNHSGn_w" name="setListener" visibility="public">
+                    <ownedParameter xmi:id="_6UngleO8EdyGNPaNHSGn_w" name="listener" type="_6Ung_eO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngluO8EdyGNPaNHSGn_w" name="getListener" visibility="public">
+                    <ownedParameter xmi:id="_6Ungl-O8EdyGNPaNHSGn_w" name="return" type="_6Ung_eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UngmOO8EdyGNPaNHSGn_w" name="Behavior" clientDependency="_6UngmuO8EdyGNPaNHSGn_w">
+                  <ownedAttribute xmi:id="_6UngmeO8EdyGNPaNHSGn_w" name="mapControl" visibility="private" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UnhsuO8EdyGNPaNHSGn_w"/>
+                  <interfaceRealization xmi:id="_6UngmuO8EdyGNPaNHSGn_w" name="IBehavior" supplier="_6UngC-O8EdyGNPaNHSGn_w" client="_6UngmOO8EdyGNPaNHSGn_w" contract="_6UngC-O8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ungm-O8EdyGNPaNHSGn_w" name="getListener" visibility="public" isAbstract="true">
+                    <ownedParameter xmi:id="_6UngnOO8EdyGNPaNHSGn_w" name="return" type="_6Ung_eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngneO8EdyGNPaNHSGn_w" name="paintComponent" visibility="public">
+                    <ownedParameter xmi:id="_6UngnuO8EdyGNPaNHSGn_w" name="g" type="_6UnhmeO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ungn-O8EdyGNPaNHSGn_w" name="setMapControl" visibility="public">
+                    <ownedParameter xmi:id="_6UngoOO8EdyGNPaNHSGn_w" name="mc" type="_6UKvhOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngoeO8EdyGNPaNHSGn_w" name="getCursor" visibility="public">
+                    <ownedParameter xmi:id="_6UngouO8EdyGNPaNHSGn_w" name="return" type="_6UnhK-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ungo-O8EdyGNPaNHSGn_w" name="getMapControl" visibility="public">
+                    <ownedParameter xmi:id="_6UngpOO8EdyGNPaNHSGn_w" name="return" type="_6UKvhOO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngpeO8EdyGNPaNHSGn_w" name="mouseClicked" visibility="public">
+                    <ownedParameter xmi:id="_6UngpuO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ungp-O8EdyGNPaNHSGn_w" name="mouseEntered" visibility="public">
+                    <ownedParameter xmi:id="_6UngqOO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngqeO8EdyGNPaNHSGn_w" name="mouseExited" visibility="public">
+                    <ownedParameter xmi:id="_6UngquO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ungq-O8EdyGNPaNHSGn_w" name="mousePressed" visibility="public">
+                    <ownedParameter xmi:id="_6UngrOO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngreO8EdyGNPaNHSGn_w" name="mouseReleased" visibility="public">
+                    <ownedParameter xmi:id="_6UngruO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ungr-O8EdyGNPaNHSGn_w" name="mouseDragged" visibility="public">
+                    <ownedParameter xmi:id="_6UngsOO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngseO8EdyGNPaNHSGn_w" name="mouseMoved" visibility="public">
+                    <ownedParameter xmi:id="_6UngsuO8EdyGNPaNHSGn_w" name="e" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ungs-O8EdyGNPaNHSGn_w" name="mouseWheelMoved" visibility="public">
+                    <ownedParameter xmi:id="_6UngtOO8EdyGNPaNHSGn_w" name="e" type="_6Unhn-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UngteO8EdyGNPaNHSGn_w" memberEnd="_6Unf_eO8EdyGNPaNHSGn_w _6UngtuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UngtuO8EdyGNPaNHSGn_w" name="target" type="_6Unf-eO8EdyGNPaNHSGn_w" association="_6UngteO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Ungt-O8EdyGNPaNHSGn_w" memberEnd="_6UngOOO8EdyGNPaNHSGn_w _6UnguOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UnguOO8EdyGNPaNHSGn_w" name="target" type="_6UngNOO8EdyGNPaNHSGn_w" association="_6Ungt-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UngueO8EdyGNPaNHSGn_w" memberEnd="_6UngR-O8EdyGNPaNHSGn_w _6UnguuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UnguuO8EdyGNPaNHSGn_w" name="target" type="_6UngReO8EdyGNPaNHSGn_w" association="_6UngueO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Ungu-O8EdyGNPaNHSGn_w" memberEnd="_6UngVeO8EdyGNPaNHSGn_w _6UngvOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UngvOO8EdyGNPaNHSGn_w" name="target" type="_6UngUOO8EdyGNPaNHSGn_w" association="_6Ungu-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UngveO8EdyGNPaNHSGn_w" memberEnd="_6UngauO8EdyGNPaNHSGn_w _6UngvuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UngvuO8EdyGNPaNHSGn_w" name="target" type="_6UngaOO8EdyGNPaNHSGn_w" association="_6UngveO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6Ungv-O8EdyGNPaNHSGn_w" memberEnd="_6Ungd-O8EdyGNPaNHSGn_w _6UngwOO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UngwOO8EdyGNPaNHSGn_w" name="target" type="_6UngdOO8EdyGNPaNHSGn_w" association="_6Ungv-O8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Association" xmi:id="_6UngweO8EdyGNPaNHSGn_w" memberEnd="_6UngiOO8EdyGNPaNHSGn_w _6UngwuO8EdyGNPaNHSGn_w">
+                  <ownedEnd xmi:id="_6UngwuO8EdyGNPaNHSGn_w" name="target" type="_6UnghOO8EdyGNPaNHSGn_w" association="_6UngweO8EdyGNPaNHSGn_w"/>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6Ungw-O8EdyGNPaNHSGn_w" name="Events">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UngxOO8EdyGNPaNHSGn_w" name="MoveEvent">
+                  <ownedAttribute xmi:id="_6UngxeO8EdyGNPaNHSGn_w" name="from" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UngxuO8EdyGNPaNHSGn_w" name="to" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ungx-O8EdyGNPaNHSGn_w" name="event" visibility="private" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UngyOO8EdyGNPaNHSGn_w" name="getFrom" visibility="public">
+                    <ownedParameter xmi:id="_6UngyeO8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngyuO8EdyGNPaNHSGn_w" name="getTo" visibility="public">
+                    <ownedParameter xmi:id="_6Ungy-O8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UngzOO8EdyGNPaNHSGn_w" name="getEvent" visibility="public">
+                    <ownedParameter xmi:id="_6UngzeO8EdyGNPaNHSGn_w" name="return" type="_6UnhnuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UngzuO8EdyGNPaNHSGn_w" name="PointEvent">
+                  <ownedAttribute xmi:id="_6Ungz-O8EdyGNPaNHSGn_w" name="p" visibility="private" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ung0OO8EdyGNPaNHSGn_w" name="e" visibility="private" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ung0eO8EdyGNPaNHSGn_w" name="getPoint" visibility="public">
+                    <ownedParameter xmi:id="_6Ung0uO8EdyGNPaNHSGn_w" name="return" type="_6UnhieO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ung0-O8EdyGNPaNHSGn_w" name="setPoint" visibility="public">
+                    <ownedParameter xmi:id="_6Ung1OO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ung1eO8EdyGNPaNHSGn_w" name="getEvent" visibility="public">
+                    <ownedParameter xmi:id="_6Ung1uO8EdyGNPaNHSGn_w" name="return" type="_6UnhnuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ung1-O8EdyGNPaNHSGn_w" name="MeasureEvent">
+                  <ownedAttribute xmi:id="_6Ung2OO8EdyGNPaNHSGn_w" name="gp" visibility="private" type="_6UUgc-O8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ung2eO8EdyGNPaNHSGn_w" name="x" visibility="private" type="_6UdyauO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ung2uO8EdyGNPaNHSGn_w" name="y" visibility="private" type="_6UdyauO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ung2-O8EdyGNPaNHSGn_w" name="event" visibility="private" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ung3OO8EdyGNPaNHSGn_w" name="getGP" visibility="public">
+                    <ownedParameter xmi:id="_6Ung3eO8EdyGNPaNHSGn_w" name="return" type="_6UUgc-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ung3uO8EdyGNPaNHSGn_w" name="setGP" visibility="public">
+                    <ownedParameter xmi:id="_6Ung3-O8EdyGNPaNHSGn_w" name="gp" type="_6UUgc-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ung4OO8EdyGNPaNHSGn_w" name="getXs" visibility="public">
+                    <ownedParameter xmi:id="_6Ung4eO8EdyGNPaNHSGn_w" name="return" type="_6UdyauO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ung4uO8EdyGNPaNHSGn_w" name="getYs" visibility="public">
+                    <ownedParameter xmi:id="_6Ung4-O8EdyGNPaNHSGn_w" name="return" type="_6UdyauO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ung5OO8EdyGNPaNHSGn_w" name="getEvent" visibility="public">
+                    <ownedParameter xmi:id="_6Ung5eO8EdyGNPaNHSGn_w" name="return" type="_6UnhnuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Class" xmi:id="_6Ung5uO8EdyGNPaNHSGn_w" name="RectangleEvent">
+                  <ownedAttribute xmi:id="_6Ung5-O8EdyGNPaNHSGn_w" name="rect" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ung6OO8EdyGNPaNHSGn_w" name="pixRect" visibility="private" type="_6UnhguO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6Ung6eO8EdyGNPaNHSGn_w" name="event" visibility="private" type="_6UnhnuO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ung6uO8EdyGNPaNHSGn_w" name="getWorldCoordRect" visibility="public">
+                    <ownedParameter xmi:id="_6Ung6-O8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ung7OO8EdyGNPaNHSGn_w" name="getPixelCoordRect" visibility="public">
+                    <ownedParameter xmi:id="_6Ung7eO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ung7uO8EdyGNPaNHSGn_w" name="getEvent" visibility="public">
+                    <ownedParameter xmi:id="_6Ung7-O8EdyGNPaNHSGn_w" name="return" type="_6UnhnuO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6Ung8OO8EdyGNPaNHSGn_w" name="Listeners">
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ung8eO8EdyGNPaNHSGn_w" name="RectangleListener">
+                  <generalization xmi:id="_6Ung8uO8EdyGNPaNHSGn_w" general="_6Ung_eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ung8-O8EdyGNPaNHSGn_w" name="rectangle" visibility="public">
+                    <ownedParameter xmi:id="_6Ung9OO8EdyGNPaNHSGn_w" name="event" type="_6Ung5uO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ung9eO8EdyGNPaNHSGn_w" name="PolylineListener">
+                  <generalization xmi:id="_6Ung9uO8EdyGNPaNHSGn_w" general="_6Ung_eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6Ung9-O8EdyGNPaNHSGn_w" name="points" visibility="public">
+                    <ownedParameter xmi:id="_6Ung-OO8EdyGNPaNHSGn_w" name="event" type="_6Ung1-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ung-eO8EdyGNPaNHSGn_w" name="pointFixed" visibility="public">
+                    <ownedParameter xmi:id="_6Ung-uO8EdyGNPaNHSGn_w" name="event" type="_6Ung1-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6Ung--O8EdyGNPaNHSGn_w" name="polylineFinished" visibility="public">
+                    <ownedParameter xmi:id="_6Ung_OO8EdyGNPaNHSGn_w" name="event" type="_6Ung1-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6Ung_eO8EdyGNPaNHSGn_w" name="ToolListener">
+                  <ownedOperation xmi:id="_6Ung_uO8EdyGNPaNHSGn_w" name="getCursor" visibility="public">
+                    <ownedParameter xmi:id="_6Ung_-O8EdyGNPaNHSGn_w" name="return" type="_6UnhK-O8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UnhAOO8EdyGNPaNHSGn_w" name="cancelDrawing" visibility="public">
+                    <ownedParameter xmi:id="_6UnhAeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UnhAuO8EdyGNPaNHSGn_w" name="PointListener">
+                  <generalization xmi:id="_6UnhA-O8EdyGNPaNHSGn_w" general="_6Ung_eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UnhBOO8EdyGNPaNHSGn_w" name="point" visibility="public">
+                    <ownedParameter xmi:id="_6UnhBeO8EdyGNPaNHSGn_w" name="event" type="_6UngzuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UnhBuO8EdyGNPaNHSGn_w" name="pointDoubleClick" visibility="public">
+                    <ownedParameter xmi:id="_6UnhB-O8EdyGNPaNHSGn_w" name="event" type="_6UngzuO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UnhCOO8EdyGNPaNHSGn_w" name="PanListener">
+                  <generalization xmi:id="_6UnhCeO8EdyGNPaNHSGn_w" general="_6Ung_eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UnhCuO8EdyGNPaNHSGn_w" name="move" visibility="public">
+                    <ownedParameter xmi:id="_6UnhC-O8EdyGNPaNHSGn_w" name="event" type="_6UngxOO8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+                <packagedElement xmi:type="uml:Interface" xmi:id="_6UnhDOO8EdyGNPaNHSGn_w" name="CircleListener">
+                  <generalization xmi:id="_6UnhDeO8EdyGNPaNHSGn_w" general="_6Ung_eO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UnhDuO8EdyGNPaNHSGn_w" name="circle" visibility="public">
+                    <ownedParameter xmi:id="_6UnhD-O8EdyGNPaNHSGn_w" name="event" type="_6Ung1-O8EdyGNPaNHSGn_w"/>
+                  </ownedOperation>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Package" xmi:id="_6UnhEOO8EdyGNPaNHSGn_w" name="geo">
+                <packagedElement xmi:type="uml:Class" xmi:id="_6UnhEeO8EdyGNPaNHSGn_w" name="Geo">
+                  <ownedAttribute xmi:id="_6UnhEuO8EdyGNPaNHSGn_w" name="HalfPi" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UnhE-O8EdyGNPaNHSGn_w" name="Degree" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UnhFOO8EdyGNPaNHSGn_w" name="SqMi" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UnhFeO8EdyGNPaNHSGn_w" name="SqKm" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedAttribute xmi:id="_6UnhFuO8EdyGNPaNHSGn_w" name="SqM" visibility="public" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedOperation xmi:id="_6UnhF-O8EdyGNPaNHSGn_w" name="getDecimalDegrees" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UnhGOO8EdyGNPaNHSGn_w" name="m" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UnhGeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UnhGuO8EdyGNPaNHSGn_w" name="hav" visibility="private" isStatic="true">
+                    <ownedParameter xmi:id="_6UnhG-O8EdyGNPaNHSGn_w" name="X" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UnhHOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                  <ownedOperation xmi:id="_6UnhHeO8EdyGNPaNHSGn_w" name="sphericalPolyArea" visibility="public" isStatic="true">
+                    <ownedParameter xmi:id="_6UnhHuO8EdyGNPaNHSGn_w" name="lat" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UnhH-O8EdyGNPaNHSGn_w" name="lon" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UnhIOO8EdyGNPaNHSGn_w" name="n" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                    <ownedParameter xmi:id="_6UnhIeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                  </ownedOperation>
+                </packagedElement>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnhIuO8EdyGNPaNHSGn_w" name="AreaListenerTest">
+                <generalization xmi:id="_6UnhI-O8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnhJOO8EdyGNPaNHSGn_w" name="projectionUTM" visibility="private" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnhJeO8EdyGNPaNHSGn_w" name="projectionGeo" visibility="private" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnhJuO8EdyGNPaNHSGn_w" name="test1" visibility="public"/>
+                <ownedOperation xmi:id="_6UnhJ-O8EdyGNPaNHSGn_w" name="newMapControlUTM" visibility="private">
+                  <ownedParameter xmi:id="_6UnhKOO8EdyGNPaNHSGn_w" name="return" type="_6UKvhOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnhKeO8EdyGNPaNHSGn_w" name="newMapControlGeo" visibility="private">
+                  <ownedParameter xmi:id="_6UnhKuO8EdyGNPaNHSGn_w" name="return" type="_6UKvhOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhK-O8EdyGNPaNHSGn_w" name="Cursor"/>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnhLOO8EdyGNPaNHSGn_w" memberEnd="_6UnfNeO8EdyGNPaNHSGn_w _6UnhLeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UnhLeO8EdyGNPaNHSGn_w" name="target" type="_6UnfMuO8EdyGNPaNHSGn_w" association="_6UnhLOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnhLuO8EdyGNPaNHSGn_w" memberEnd="_6UnfNuO8EdyGNPaNHSGn_w _6UnhL-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UnhL-O8EdyGNPaNHSGn_w" name="target" type="_6UnfMuO8EdyGNPaNHSGn_w" association="_6UnhLuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnhMOO8EdyGNPaNHSGn_w" memberEnd="_6UnfVOO8EdyGNPaNHSGn_w _6UnhMeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UnhMeO8EdyGNPaNHSGn_w" name="target" type="_6UnfUeO8EdyGNPaNHSGn_w" association="_6UnhMOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnhMuO8EdyGNPaNHSGn_w" memberEnd="_6UnfY-O8EdyGNPaNHSGn_w _6UnhM-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UnhM-O8EdyGNPaNHSGn_w" name="target" type="_6UnfYOO8EdyGNPaNHSGn_w" association="_6UnhMuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnhNOO8EdyGNPaNHSGn_w" memberEnd="_6UnfcOO8EdyGNPaNHSGn_w _6UnhNeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UnhNeO8EdyGNPaNHSGn_w" name="target" type="_6UnfbeO8EdyGNPaNHSGn_w" association="_6UnhNOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnhNuO8EdyGNPaNHSGn_w" memberEnd="_6UnffeO8EdyGNPaNHSGn_w _6UnhN-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UnhN-O8EdyGNPaNHSGn_w" name="target" type="_6UnfeuO8EdyGNPaNHSGn_w" association="_6UnhNuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnhOOO8EdyGNPaNHSGn_w" memberEnd="_6UnfiOO8EdyGNPaNHSGn_w _6UnhOeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UnhOeO8EdyGNPaNHSGn_w" name="target" type="_6UnfheO8EdyGNPaNHSGn_w" association="_6UnhOOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnhOuO8EdyGNPaNHSGn_w" memberEnd="_6UnfleO8EdyGNPaNHSGn_w _6UnhO-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UnhO-O8EdyGNPaNHSGn_w" name="target" type="_6UnfkuO8EdyGNPaNHSGn_w" association="_6UnhOuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnhPOO8EdyGNPaNHSGn_w" memberEnd="_6UnfoOO8EdyGNPaNHSGn_w _6UnhPeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UnhPeO8EdyGNPaNHSGn_w" name="target" type="_6UnfneO8EdyGNPaNHSGn_w" association="_6UnhPOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnhPuO8EdyGNPaNHSGn_w" memberEnd="_6Unfr-O8EdyGNPaNHSGn_w _6UnhP-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UnhP-O8EdyGNPaNHSGn_w" name="target" type="_6UnfrOO8EdyGNPaNHSGn_w" association="_6UnhPuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnhQOO8EdyGNPaNHSGn_w" memberEnd="_6UnfveO8EdyGNPaNHSGn_w _6UnhQeO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UnhQeO8EdyGNPaNHSGn_w" name="target" type="_6UnfueO8EdyGNPaNHSGn_w" association="_6UnhQOO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnhQuO8EdyGNPaNHSGn_w" memberEnd="_6Unf4OO8EdyGNPaNHSGn_w _6UnhQ-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UnhQ-O8EdyGNPaNHSGn_w" name="target" type="_6Unf3-O8EdyGNPaNHSGn_w" association="_6UnhQuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnhROO8EdyGNPaNHSGn_w" memberEnd="_6Unf7eO8EdyGNPaNHSGn_w _6UnhReO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UnhReO8EdyGNPaNHSGn_w" name="target" type="_6Unf6uO8EdyGNPaNHSGn_w" association="_6UnhROO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UnhRuO8EdyGNPaNHSGn_w" name="AllTests">
+              <generalization xmi:id="_6UnhR-O8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnhSOO8EdyGNPaNHSGn_w" name="TEST_DEFAULT_PROJECTION" visibility="public" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnhSeO8EdyGNPaNHSGn_w" name="TEST_DEFAULT_MERCATOR_PROJECTION" visibility="public" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnhSuO8EdyGNPaNHSGn_w" name="test_newProjection" visibility="public" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnhS-O8EdyGNPaNHSGn_w" name="fwAndamiDriverPath" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnhTOO8EdyGNPaNHSGn_w" name="baseDataPath" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnhTeO8EdyGNPaNHSGn_w" name="baseDriversPath" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UnhTuO8EdyGNPaNHSGn_w" name="suite" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UnhT-O8EdyGNPaNHSGn_w" name="return" type="_6UnhouO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnhUOO8EdyGNPaNHSGn_w" name="setUpDrivers" visibility="public" isStatic="true"/>
+              <ownedOperation xmi:id="_6UnhUeO8EdyGNPaNHSGn_w" name="newLayer" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UnhUuO8EdyGNPaNHSGn_w" name="fileName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnhU-O8EdyGNPaNHSGn_w" name="driverName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnhVOO8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnhVeO8EdyGNPaNHSGn_w" name="newMapContext" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UnhVuO8EdyGNPaNHSGn_w" name="projection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnhV-O8EdyGNPaNHSGn_w" name="return" type="_6UKuxOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6UnhWOO8EdyGNPaNHSGn_w" name="featureiterators">
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UnhWeO8EdyGNPaNHSGn_w" name="FeatureIteratorTest">
+                <generalization xmi:id="_6UnhWuO8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnhW-O8EdyGNPaNHSGn_w" name="fwAndamiDriverPath" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnhXOO8EdyGNPaNHSGn_w" name="baseDataPath" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnhXeO8EdyGNPaNHSGn_w" name="baseDriversPath" visibility="private" type="_6UnhgeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnhXuO8EdyGNPaNHSGn_w" name="SHP_DRIVER_NAME" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnhX-O8EdyGNPaNHSGn_w" name="DXF_DRIVER_NAME" visibility="public" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnhYOO8EdyGNPaNHSGn_w" name="PROJECTION_DEFAULT" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnhYeO8EdyGNPaNHSGn_w" name="newProjection" type="_6UnhiuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnhYuO8EdyGNPaNHSGn_w" name="doSetup" visibility="private" isStatic="true"/>
+                <ownedOperation xmi:id="_6UnhY-O8EdyGNPaNHSGn_w" name="setUp" visibility="protected"/>
+                <ownedOperation xmi:id="_6UnhZOO8EdyGNPaNHSGn_w" name="newLayer" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UnhZeO8EdyGNPaNHSGn_w" name="fileName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnhZuO8EdyGNPaNHSGn_w" name="driverName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnhZ-O8EdyGNPaNHSGn_w" name="return" type="_6Ud5J-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnhaOO8EdyGNPaNHSGn_w" name="newJdbcLayer" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UnhaeO8EdyGNPaNHSGn_w" name="layerName" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnhauO8EdyGNPaNHSGn_w" name="return" type="_6Ud4YeO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unha-O8EdyGNPaNHSGn_w" name="test0" visibility="public"/>
+                <ownedOperation xmi:id="_6UnhbOO8EdyGNPaNHSGn_w" name="test1" visibility="public"/>
+                <ownedOperation xmi:id="_6UnhbeO8EdyGNPaNHSGn_w" name="test4" visibility="public"/>
+                <ownedOperation xmi:id="_6UnhbuO8EdyGNPaNHSGn_w" name="test5" visibility="public"/>
+                <ownedOperation xmi:id="_6Unhb-O8EdyGNPaNHSGn_w" name="test7" visibility="public"/>
+                <ownedOperation xmi:id="_6UnhcOO8EdyGNPaNHSGn_w" name="getScaleView" visibility="private">
+                  <ownedParameter xmi:id="_6UnhceO8EdyGNPaNHSGn_w" name="viewPort" type="_6UKtueO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnhcuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1-O8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Unhc-O8EdyGNPaNHSGn_w" name="PerformanceFeatureIteratorTest">
+                <generalization xmi:id="_6UnhdOO8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UnhdeO8EdyGNPaNHSGn_w" name="lyr" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6UnhfuO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnhduO8EdyGNPaNHSGn_w" name="test1" visibility="public"/>
+                <ownedOperation xmi:id="_6Unhd-O8EdyGNPaNHSGn_w" name="test3" visibility="public"/>
+                <ownedOperation xmi:id="_6UnheOO8EdyGNPaNHSGn_w" name="test4" visibility="public"/>
+                <ownedOperation xmi:id="_6UnheeO8EdyGNPaNHSGn_w" name="test5" visibility="public"/>
+                <ownedOperation xmi:id="_6UnheuO8EdyGNPaNHSGn_w" name="test6" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Unhe-O8EdyGNPaNHSGn_w" name="DBFeatureIteratorTest">
+                <generalization xmi:id="_6UnhfOO8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UnhfeO8EdyGNPaNHSGn_w" name="test2" visibility="public"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UnhfuO8EdyGNPaNHSGn_w" memberEnd="_6UnhdeO8EdyGNPaNHSGn_w _6Unhf-O8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6Unhf-O8EdyGNPaNHSGn_w" name="target" type="_6Unhc-O8EdyGNPaNHSGn_w" association="_6UnhfuO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhgOO8EdyGNPaNHSGn_w" name="ExceptionDescription"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhgeO8EdyGNPaNHSGn_w" name="File"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhguO8EdyGNPaNHSGn_w" name="Rectangle2D"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6Unhg-O8EdyGNPaNHSGn_w" name="XMLEntity"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhhOO8EdyGNPaNHSGn_w" name="Exception"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhheO8EdyGNPaNHSGn_w" name="Color"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhhuO8EdyGNPaNHSGn_w" name="Dimension"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6Unhh-O8EdyGNPaNHSGn_w" name="AffineTransform"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhiOO8EdyGNPaNHSGn_w" name="ArrayList"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhieO8EdyGNPaNHSGn_w" name="Point2D"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhiuO8EdyGNPaNHSGn_w" name="IProjection"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6Unhi-O8EdyGNPaNHSGn_w" name="URL"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhjOO8EdyGNPaNHSGn_w" name="List"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhjeO8EdyGNPaNHSGn_w" name="BufferedImage"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhjuO8EdyGNPaNHSGn_w" name="Graphics2D"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6Unhj-O8EdyGNPaNHSGn_w" name="PrintRequestAttributeSet"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhkOO8EdyGNPaNHSGn_w" name="ICoordTrans"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhkeO8EdyGNPaNHSGn_w" name="IGeometry"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhkuO8EdyGNPaNHSGn_w" name="Cancellable"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6Unhk-O8EdyGNPaNHSGn_w" name="Object"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhlOO8EdyGNPaNHSGn_w" name="JComponent"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhleO8EdyGNPaNHSGn_w" name="HashMap"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhluO8EdyGNPaNHSGn_w" name="Timer"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6Unhl-O8EdyGNPaNHSGn_w" name="ExceptionHandlingSupport"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhmOO8EdyGNPaNHSGn_w" name="Set"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhmeO8EdyGNPaNHSGn_w" name="Graphics"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhmuO8EdyGNPaNHSGn_w" name="ComponentEvent"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6Unhm-O8EdyGNPaNHSGn_w" name="ExceptionListener"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhnOO8EdyGNPaNHSGn_w" name="Throwable"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhneO8EdyGNPaNHSGn_w" name="Thread"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhnuO8EdyGNPaNHSGn_w" name="MouseEvent"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6Unhn-O8EdyGNPaNHSGn_w" name="MouseWheelEvent"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhoOO8EdyGNPaNHSGn_w" name="ResourceBundle"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhoeO8EdyGNPaNHSGn_w" name="TestCase"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnhouO8EdyGNPaNHSGn_w" name="Test"/>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6Unho-O8EdyGNPaNHSGn_w" memberEnd="_6UKtluO8EdyGNPaNHSGn_w _6UnhpOO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnhpOO8EdyGNPaNHSGn_w" name="target" type="_6UKtlOO8EdyGNPaNHSGn_w" association="_6Unho-O8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6UnhpeO8EdyGNPaNHSGn_w" memberEnd="_6UKtxuO8EdyGNPaNHSGn_w _6UnhpuO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnhpuO8EdyGNPaNHSGn_w" name="target" type="_6UKtueO8EdyGNPaNHSGn_w" association="_6UnhpeO8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6Unhp-O8EdyGNPaNHSGn_w" memberEnd="_6UKu0OO8EdyGNPaNHSGn_w _6Ud3j-O8EdyGNPaNHSGn_w"/>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6UnhqOO8EdyGNPaNHSGn_w" memberEnd="_6UKu0eO8EdyGNPaNHSGn_w _6UnhqeO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnhqeO8EdyGNPaNHSGn_w" name="target" type="_6UKuxOO8EdyGNPaNHSGn_w" association="_6UnhqOO8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6UnhquO8EdyGNPaNHSGn_w" memberEnd="_6UKu0uO8EdyGNPaNHSGn_w _6Unhq-O8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6Unhq-O8EdyGNPaNHSGn_w" name="target" type="_6UKuxOO8EdyGNPaNHSGn_w" association="_6UnhquO8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6UnhrOO8EdyGNPaNHSGn_w" memberEnd="_6UKu1eO8EdyGNPaNHSGn_w _6UnhreO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnhreO8EdyGNPaNHSGn_w" name="target" type="_6UKuxOO8EdyGNPaNHSGn_w" association="_6UnhrOO8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6UnhruO8EdyGNPaNHSGn_w" memberEnd="_6UKu1uO8EdyGNPaNHSGn_w _6Unhr-O8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6Unhr-O8EdyGNPaNHSGn_w" name="target" type="_6UKuxOO8EdyGNPaNHSGn_w" association="_6UnhruO8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6UnhsOO8EdyGNPaNHSGn_w" memberEnd="_6UKvi-O8EdyGNPaNHSGn_w _6UnhseO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnhseO8EdyGNPaNHSGn_w" name="target" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UnhsOO8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6UnhsuO8EdyGNPaNHSGn_w" memberEnd="_6UKvjeO8EdyGNPaNHSGn_w _6UngmeO8EdyGNPaNHSGn_w"/>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6Unhs-O8EdyGNPaNHSGn_w" memberEnd="_6UKvkeO8EdyGNPaNHSGn_w _6UnhtOO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnhtOO8EdyGNPaNHSGn_w" name="target" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6Unhs-O8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6UnhteO8EdyGNPaNHSGn_w" memberEnd="_6UKvk-O8EdyGNPaNHSGn_w _6UnhtuO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnhtuO8EdyGNPaNHSGn_w" name="target" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UnhteO8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6Unht-O8EdyGNPaNHSGn_w" memberEnd="_6UKvlOO8EdyGNPaNHSGn_w _6UnhuOO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnhuOO8EdyGNPaNHSGn_w" name="target" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6Unht-O8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6UnhueO8EdyGNPaNHSGn_w" memberEnd="_6UKvleO8EdyGNPaNHSGn_w _6UnhuuO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnhuuO8EdyGNPaNHSGn_w" name="target" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6UnhueO8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6Unhu-O8EdyGNPaNHSGn_w" memberEnd="_6UKvluO8EdyGNPaNHSGn_w _6UnhvOO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnhvOO8EdyGNPaNHSGn_w" name="target" type="_6UKvhOO8EdyGNPaNHSGn_w" association="_6Unhu-O8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6UnhveO8EdyGNPaNHSGn_w" memberEnd="_6UUd2eO8EdyGNPaNHSGn_w _6UnhvuO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnhvuO8EdyGNPaNHSGn_w" name="target" type="_6UUd2OO8EdyGNPaNHSGn_w" association="_6UnhveO8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6Unhv-O8EdyGNPaNHSGn_w" memberEnd="_6UUd2uO8EdyGNPaNHSGn_w _6UnhwOO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnhwOO8EdyGNPaNHSGn_w" name="target" type="_6UUd2OO8EdyGNPaNHSGn_w" association="_6Unhv-O8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6UnhweO8EdyGNPaNHSGn_w" memberEnd="_6UUd5uO8EdyGNPaNHSGn_w _6UnhwuO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnhwuO8EdyGNPaNHSGn_w" name="target" type="_6UUd4-O8EdyGNPaNHSGn_w" association="_6UnhweO8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Package" xmi:id="_6Unhw-O8EdyGNPaNHSGn_w" name="topology">
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UnhxOO8EdyGNPaNHSGn_w" name="TopologyBuilder">
+              <ownedAttribute xmi:id="_6UnhxeO8EdyGNPaNHSGn_w" name="fuzzyTolerance" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnhxuO8EdyGNPaNHSGn_w" name="dangleTolerance" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unhx-O8EdyGNPaNHSGn_w" name="inputLayer" visibility="private" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6UnijeO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnhyOO8EdyGNPaNHSGn_w" name="outputLayer" visibility="private" type="_6Ud4YeO8EdyGNPaNHSGn_w" association="_6Unij-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnhyeO8EdyGNPaNHSGn_w" name="statusMessage" visibility="private" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnhyuO8EdyGNPaNHSGn_w" name="fact" visibility="private" type="_6UUiR-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unhy-O8EdyGNPaNHSGn_w" name="nodeInputLines" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnhzOO8EdyGNPaNHSGn_w" name="polygonizer" visibility="private" type="_6Unii-O8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UnhzeO8EdyGNPaNHSGn_w" name="getLines" visibility="private">
+                <ownedParameter xmi:id="_6UnhzuO8EdyGNPaNHSGn_w" name="lv" type="_6Ud4YeO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unhz-O8EdyGNPaNHSGn_w" name="return" type="_6Ud79eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unh0OO8EdyGNPaNHSGn_w" name="nodeLines" visibility="private">
+                <ownedParameter xmi:id="_6Unh0eO8EdyGNPaNHSGn_w" name="lines" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unh0uO8EdyGNPaNHSGn_w" name="return" type="_6Ud79eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unh0-O8EdyGNPaNHSGn_w" name="buildPolygons" visibility="public">
+                <ownedParameter xmi:id="_6Unh1OO8EdyGNPaNHSGn_w" name="return" type="_6Ud79eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unh1eO8EdyGNPaNHSGn_w" name="buildLines" visibility="public"/>
+              <ownedOperation xmi:id="_6Unh1uO8EdyGNPaNHSGn_w" name="getErrorNodes" visibility="public">
+                <ownedParameter xmi:id="_6Unh1-O8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unh2OO8EdyGNPaNHSGn_w" name="getStatusMessage" visibility="public">
+                <ownedParameter xmi:id="_6Unh2eO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unh2uO8EdyGNPaNHSGn_w" name="isNodeInputLines" visibility="public">
+                <ownedParameter xmi:id="_6Unh2-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unh3OO8EdyGNPaNHSGn_w" name="setNodeInputLines" visibility="public">
+                <ownedParameter xmi:id="_6Unh3eO8EdyGNPaNHSGn_w" name="nodeInputLines" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unh3uO8EdyGNPaNHSGn_w" name="getCutEdges" visibility="public">
+                <ownedParameter xmi:id="_6Unh3-O8EdyGNPaNHSGn_w" name="return" type="_6Ud79eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unh4OO8EdyGNPaNHSGn_w" name="getDangles" visibility="public">
+                <ownedParameter xmi:id="_6Unh4eO8EdyGNPaNHSGn_w" name="return" type="_6Ud79eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unh4uO8EdyGNPaNHSGn_w" name="getInputLayer" visibility="public">
+                <ownedParameter xmi:id="_6Unh4-O8EdyGNPaNHSGn_w" name="return" type="_6Ud4YeO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unh5OO8EdyGNPaNHSGn_w" name="setInputLayer" visibility="public">
+                <ownedParameter xmi:id="_6Unh5eO8EdyGNPaNHSGn_w" name="inputLayer" type="_6Ud4YeO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unh5uO8EdyGNPaNHSGn_w" name="getOutputLayer" visibility="public">
+                <ownedParameter xmi:id="_6Unh5-O8EdyGNPaNHSGn_w" name="return" type="_6Ud4YeO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unh6OO8EdyGNPaNHSGn_w" name="setOutputLayer" visibility="public">
+                <ownedParameter xmi:id="_6Unh6eO8EdyGNPaNHSGn_w" name="outputLayer" type="_6Ud4YeO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6Unh6uO8EdyGNPaNHSGn_w" name="NodeError">
+              <generalization xmi:id="_6Unh6-O8EdyGNPaNHSGn_w" general="_6UnijOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unh7OO8EdyGNPaNHSGn_w" name="DANGLE" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unh7eO8EdyGNPaNHSGn_w" name="FUZZY" visibility="public" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unh7uO8EdyGNPaNHSGn_w" name="occurrences" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unh7-O8EdyGNPaNHSGn_w" name="errorType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6Unh8OO8EdyGNPaNHSGn_w" name="getOccurrences" visibility="public">
+                <ownedParameter xmi:id="_6Unh8eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unh8uO8EdyGNPaNHSGn_w" name="setOccurrences" visibility="public">
+                <ownedParameter xmi:id="_6Unh8-O8EdyGNPaNHSGn_w" name="occurrences" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unh9OO8EdyGNPaNHSGn_w" name="getErrorType" visibility="public">
+                <ownedParameter xmi:id="_6Unh9eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unh9uO8EdyGNPaNHSGn_w" name="setErrorType" visibility="public">
+                <ownedParameter xmi:id="_6Unh9-O8EdyGNPaNHSGn_w" name="errorType" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Package" xmi:id="_6Unh-OO8EdyGNPaNHSGn_w" name="triangulation">
+              <packagedElement xmi:type="uml:Class" xmi:id="_6Unh-eO8EdyGNPaNHSGn_w" name="Simplex">
+                <generalization xmi:id="_6Unh-uO8EdyGNPaNHSGn_w" general="_6UnihuO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unh--O8EdyGNPaNHSGn_w" name="vertices" visibility="private" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unh_OO8EdyGNPaNHSGn_w" name="idNumber" visibility="private" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unh_eO8EdyGNPaNHSGn_w" name="idGenerator" visibility="private" type="_6UKs1-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6Unh_uO8EdyGNPaNHSGn_w" name="moreInfo" visibility="public" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6Unh_-O8EdyGNPaNHSGn_w" name="toString" visibility="public">
+                  <ownedParameter xmi:id="_6UniAOO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniAeO8EdyGNPaNHSGn_w" name="dimension" visibility="public">
+                  <ownedParameter xmi:id="_6UniAuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniA-O8EdyGNPaNHSGn_w" name="isNeighbor" visibility="public">
+                  <ownedParameter xmi:id="_6UniBOO8EdyGNPaNHSGn_w" name="simplex" type="_6Unh-eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniBeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniBuO8EdyGNPaNHSGn_w" name="facets" visibility="public">
+                  <ownedParameter xmi:id="_6UniB-O8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniCOO8EdyGNPaNHSGn_w" name="boundary" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UniCeO8EdyGNPaNHSGn_w" name="simplexSet" type="_6UnhmOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniCuO8EdyGNPaNHSGn_w" name="return" type="_6UnhmOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniC-O8EdyGNPaNHSGn_w" name="iterator" visibility="public">
+                  <ownedParameter xmi:id="_6UniDOO8EdyGNPaNHSGn_w" name="return" type="_6UUiHuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniDeO8EdyGNPaNHSGn_w" name="size" visibility="public">
+                  <ownedParameter xmi:id="_6UniDuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniD-O8EdyGNPaNHSGn_w" name="hashCode" visibility="public">
+                  <ownedParameter xmi:id="_6UniEOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniEeO8EdyGNPaNHSGn_w" name="equals" visibility="public">
+                  <ownedParameter xmi:id="_6UniEuO8EdyGNPaNHSGn_w" name="o" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniE-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UniFOO8EdyGNPaNHSGn_w" name="Triangulation">
+                <ownedAttribute xmi:id="_6UniFeO8EdyGNPaNHSGn_w" name="neighbors" visibility="private" type="_6UnhleO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UniFuO8EdyGNPaNHSGn_w" name="toString" visibility="public">
+                  <ownedParameter xmi:id="_6UniF-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniGOO8EdyGNPaNHSGn_w" name="size" visibility="public">
+                  <ownedParameter xmi:id="_6UniGeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniGuO8EdyGNPaNHSGn_w" name="contains" visibility="public">
+                  <ownedParameter xmi:id="_6UniG-O8EdyGNPaNHSGn_w" name="simplex" type="_6Unh-eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniHOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniHeO8EdyGNPaNHSGn_w" name="iterator" visibility="public">
+                  <ownedParameter xmi:id="_6UniHuO8EdyGNPaNHSGn_w" name="return" type="_6UUiHuO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniH-O8EdyGNPaNHSGn_w" name="printStuff" visibility="public"/>
+                <ownedOperation xmi:id="_6UniIOO8EdyGNPaNHSGn_w" name="neighborOpposite" visibility="public">
+                  <ownedParameter xmi:id="_6UniIeO8EdyGNPaNHSGn_w" name="vertex" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniIuO8EdyGNPaNHSGn_w" name="simplex" type="_6Unh-eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniI-O8EdyGNPaNHSGn_w" name="return" type="_6Unh-eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniJOO8EdyGNPaNHSGn_w" name="neighbors" visibility="public">
+                  <ownedParameter xmi:id="_6UniJeO8EdyGNPaNHSGn_w" name="simplex" type="_6Unh-eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniJuO8EdyGNPaNHSGn_w" name="return" type="_6UnhmOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniJ-O8EdyGNPaNHSGn_w" name="update" visibility="public">
+                  <ownedParameter xmi:id="_6UniKOO8EdyGNPaNHSGn_w" name="oldSet" type="_6UnhmOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniKeO8EdyGNPaNHSGn_w" name="newSet" type="_6UnhmOO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UniKuO8EdyGNPaNHSGn_w" name="DelaunayTriangulation">
+                <generalization xmi:id="_6UniK-O8EdyGNPaNHSGn_w" general="_6UniFOO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UniLOO8EdyGNPaNHSGn_w" name="mostRecent" visibility="private" type="_6Unh-eO8EdyGNPaNHSGn_w" association="_6Unih-O8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UniLeO8EdyGNPaNHSGn_w" name="debug" visibility="public" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UniLuO8EdyGNPaNHSGn_w" name="initialSize" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedAttribute xmi:id="_6UniL-O8EdyGNPaNHSGn_w" name="initialTriangle" visibility="private" type="_6Unh-eO8EdyGNPaNHSGn_w" association="_6UniieO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UniMOO8EdyGNPaNHSGn_w" name="locate" visibility="public">
+                  <ownedParameter xmi:id="_6UniMeO8EdyGNPaNHSGn_w" name="point" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniMuO8EdyGNPaNHSGn_w" name="return" type="_6Unh-eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniM-O8EdyGNPaNHSGn_w" name="delaunayPlace" visibility="public">
+                  <ownedParameter xmi:id="_6UniNOO8EdyGNPaNHSGn_w" name="site" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniNeO8EdyGNPaNHSGn_w" name="return" type="_6UnhmOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniNuO8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UniN-O8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniOOO8EdyGNPaNHSGn_w" name="delaunayPlace" visibility="public">
+                  <ownedParameter xmi:id="_6UniOeO8EdyGNPaNHSGn_w" name="p" type="_6UnhieO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniOuO8EdyGNPaNHSGn_w" name="delaunayPlace" visibility="public">
+                  <ownedParameter xmi:id="_6UniO-O8EdyGNPaNHSGn_w" name="c" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Class" xmi:id="_6UniPOO8EdyGNPaNHSGn_w" name="Pnt">
+                <ownedAttribute xmi:id="_6UniPeO8EdyGNPaNHSGn_w" name="coordinates" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedOperation xmi:id="_6UniPuO8EdyGNPaNHSGn_w" name="toString" visibility="public">
+                  <ownedParameter xmi:id="_6UniP-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniQOO8EdyGNPaNHSGn_w" name="equals" visibility="public">
+                  <ownedParameter xmi:id="_6UniQeO8EdyGNPaNHSGn_w" name="other" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniQuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniQ-O8EdyGNPaNHSGn_w" name="hashCode" visibility="public">
+                  <ownedParameter xmi:id="_6UniROO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniReO8EdyGNPaNHSGn_w" name="coord" visibility="public">
+                  <ownedParameter xmi:id="_6UniRuO8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniR-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniSOO8EdyGNPaNHSGn_w" name="dimension" visibility="public">
+                  <ownedParameter xmi:id="_6UniSeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniSuO8EdyGNPaNHSGn_w" name="dimCheck" visibility="public">
+                  <ownedParameter xmi:id="_6UniS-O8EdyGNPaNHSGn_w" name="p" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniTOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniTeO8EdyGNPaNHSGn_w" name="extend" visibility="public">
+                  <ownedParameter xmi:id="_6UniTuO8EdyGNPaNHSGn_w" name="coords" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniT-O8EdyGNPaNHSGn_w" name="return" type="_6UniPOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniUOO8EdyGNPaNHSGn_w" name="dot" visibility="public">
+                  <ownedParameter xmi:id="_6UniUeO8EdyGNPaNHSGn_w" name="p" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniUuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniU-O8EdyGNPaNHSGn_w" name="magnitude" visibility="public">
+                  <ownedParameter xmi:id="_6UniVOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniVeO8EdyGNPaNHSGn_w" name="subtract" visibility="public">
+                  <ownedParameter xmi:id="_6UniVuO8EdyGNPaNHSGn_w" name="p" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniV-O8EdyGNPaNHSGn_w" name="return" type="_6UniPOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniWOO8EdyGNPaNHSGn_w" name="add" visibility="public">
+                  <ownedParameter xmi:id="_6UniWeO8EdyGNPaNHSGn_w" name="p" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniWuO8EdyGNPaNHSGn_w" name="return" type="_6UniPOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniW-O8EdyGNPaNHSGn_w" name="angle" visibility="public">
+                  <ownedParameter xmi:id="_6UniXOO8EdyGNPaNHSGn_w" name="p" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniXeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniXuO8EdyGNPaNHSGn_w" name="bisector" visibility="public">
+                  <ownedParameter xmi:id="_6UniX-O8EdyGNPaNHSGn_w" name="point" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniYOO8EdyGNPaNHSGn_w" name="return" type="_6UniPOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniYeO8EdyGNPaNHSGn_w" name="toString" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UniYuO8EdyGNPaNHSGn_w" name="matrix" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniY-O8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniZOO8EdyGNPaNHSGn_w" name="determinant" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UniZeO8EdyGNPaNHSGn_w" name="matrix" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniZuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UniZ-O8EdyGNPaNHSGn_w" name="determinant" visibility="private" isStatic="true">
+                  <ownedParameter xmi:id="_6UniaOO8EdyGNPaNHSGn_w" name="matrix" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniaeO8EdyGNPaNHSGn_w" name="row" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniauO8EdyGNPaNHSGn_w" name="columns" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unia-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnibOO8EdyGNPaNHSGn_w" name="cross" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UnibeO8EdyGNPaNHSGn_w" name="matrix" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnibuO8EdyGNPaNHSGn_w" name="return" type="_6UniPOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unib-O8EdyGNPaNHSGn_w" name="content" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UnicOO8EdyGNPaNHSGn_w" name="simplex" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UniceO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnicuO8EdyGNPaNHSGn_w" name="relation" visibility="public">
+                  <ownedParameter xmi:id="_6Unic-O8EdyGNPaNHSGn_w" name="simplex" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnidOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnideO8EdyGNPaNHSGn_w" name="isOutside" visibility="public">
+                  <ownedParameter xmi:id="_6UniduO8EdyGNPaNHSGn_w" name="simplex" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unid-O8EdyGNPaNHSGn_w" name="return" type="_6UniPOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnieOO8EdyGNPaNHSGn_w" name="isOn" visibility="public">
+                  <ownedParameter xmi:id="_6UnieeO8EdyGNPaNHSGn_w" name="simplex" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnieuO8EdyGNPaNHSGn_w" name="return" type="_6UniPOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6Unie-O8EdyGNPaNHSGn_w" name="isInside" visibility="public">
+                  <ownedParameter xmi:id="_6UnifOO8EdyGNPaNHSGn_w" name="simplex" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnifeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnifuO8EdyGNPaNHSGn_w" name="vsCircumcircle" visibility="public">
+                  <ownedParameter xmi:id="_6Unif-O8EdyGNPaNHSGn_w" name="simplex" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6UnigOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnigeO8EdyGNPaNHSGn_w" name="circumcenter" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UniguO8EdyGNPaNHSGn_w" name="simplex" type="_6UniPOO8EdyGNPaNHSGn_w"/>
+                  <ownedParameter xmi:id="_6Unig-O8EdyGNPaNHSGn_w" name="return" type="_6UniPOO8EdyGNPaNHSGn_w" direction="return"/>
+                </ownedOperation>
+                <ownedOperation xmi:id="_6UnihOO8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                  <ownedParameter xmi:id="_6UniheO8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+                </ownedOperation>
+              </packagedElement>
+              <packagedElement xmi:type="uml:DataType" xmi:id="_6UnihuO8EdyGNPaNHSGn_w" name="AbstractSet"/>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6Unih-O8EdyGNPaNHSGn_w" memberEnd="_6UniLOO8EdyGNPaNHSGn_w _6UniiOO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UniiOO8EdyGNPaNHSGn_w" name="target" type="_6UniKuO8EdyGNPaNHSGn_w" association="_6Unih-O8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+              <packagedElement xmi:type="uml:Association" xmi:id="_6UniieO8EdyGNPaNHSGn_w" memberEnd="_6UniL-O8EdyGNPaNHSGn_w _6UniiuO8EdyGNPaNHSGn_w">
+                <ownedEnd xmi:id="_6UniiuO8EdyGNPaNHSGn_w" name="target" type="_6UniKuO8EdyGNPaNHSGn_w" association="_6UniieO8EdyGNPaNHSGn_w"/>
+              </packagedElement>
+            </packagedElement>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6Unii-O8EdyGNPaNHSGn_w" name="Polygonizer"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnijOO8EdyGNPaNHSGn_w" name="Node"/>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6UnijeO8EdyGNPaNHSGn_w" memberEnd="_6Unhx-O8EdyGNPaNHSGn_w _6UnijuO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnijuO8EdyGNPaNHSGn_w" name="target" type="_6UnhxOO8EdyGNPaNHSGn_w" association="_6UnijeO8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6Unij-O8EdyGNPaNHSGn_w" memberEnd="_6UnhyOO8EdyGNPaNHSGn_w _6UnikOO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnikOO8EdyGNPaNHSGn_w" name="target" type="_6UnhxOO8EdyGNPaNHSGn_w" association="_6Unij-O8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Package" xmi:id="_6UnikeO8EdyGNPaNHSGn_w" name="util">
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UnikuO8EdyGNPaNHSGn_w" name="SnappingCoordinateMap">
+              <generalization xmi:id="_6Unik-O8EdyGNPaNHSGn_w" general="_6UdsL-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnilOO8EdyGNPaNHSGn_w" name="snapTolerance" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnileO8EdyGNPaNHSGn_w" name="scaleFactor" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UniluO8EdyGNPaNHSGn_w" name="put" visibility="public">
+                <ownedParameter xmi:id="_6Unil-O8EdyGNPaNHSGn_w" name="key" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnimOO8EdyGNPaNHSGn_w" name="obj" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnimeO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnimuO8EdyGNPaNHSGn_w" name="get" visibility="public">
+                <ownedParameter xmi:id="_6Unim-O8EdyGNPaNHSGn_w" name="key" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UninOO8EdyGNPaNHSGn_w" name="return" type="_6Unhk-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnineO8EdyGNPaNHSGn_w" name="containsKey" visibility="public">
+                <ownedParameter xmi:id="_6UninuO8EdyGNPaNHSGn_w" name="key" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unin-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnioOO8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UnioeO8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UniouO8EdyGNPaNHSGn_w" name="SnapCoordinate">
+              <generalization xmi:id="_6Unio-O8EdyGNPaNHSGn_w" general="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UnipOO8EdyGNPaNHSGn_w" name="equals" visibility="public">
+                <ownedParameter xmi:id="_6UnipeO8EdyGNPaNHSGn_w" name="obj" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnipuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unip-O8EdyGNPaNHSGn_w" name="hashCode" visibility="public">
+                <ownedParameter xmi:id="_6UniqOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UniqeO8EdyGNPaNHSGn_w" name="simplify" visibility="public">
+                <ownedParameter xmi:id="_6UniquO8EdyGNPaNHSGn_w" name="coordinate" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Uniq-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UnirOO8EdyGNPaNHSGn_w" name="MinDistCoordComparator">
+              <ownedAttribute xmi:id="_6UnireO8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UniruO8EdyGNPaNHSGn_w" name="compare" visibility="public">
+                <ownedParameter xmi:id="_6Unir-O8EdyGNPaNHSGn_w" name="arg0" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnisOO8EdyGNPaNHSGn_w" name="arg1" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UniseO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+          </packagedElement>
+        </packagedElement>
+      </packagedElement>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Package" xmi:id="_6UnisuO8EdyGNPaNHSGn_w" name="vividsolutions">
+      <packagedElement xmi:type="uml:Package" xmi:id="_6Unis-O8EdyGNPaNHSGn_w" name="jts">
+        <packagedElement xmi:type="uml:Package" xmi:id="_6UnitOO8EdyGNPaNHSGn_w" name="algorithms">
+          <packagedElement xmi:type="uml:Class" xmi:id="_6UniteO8EdyGNPaNHSGn_w" name="SnapCGAlgorithms">
+            <generalization xmi:id="_6UnituO8EdyGNPaNHSGn_w" general="_6UnjBeO8EdyGNPaNHSGn_w"/>
+            <ownedOperation xmi:id="_6Unit-O8EdyGNPaNHSGn_w" name="isOnLine" visibility="public" isStatic="true">
+              <ownedParameter xmi:id="_6UniuOO8EdyGNPaNHSGn_w" name="p" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UniueO8EdyGNPaNHSGn_w" name="pt" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UniuuO8EdyGNPaNHSGn_w" name="snapTol" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uniu-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnivOO8EdyGNPaNHSGn_w" name="isPointInRing" visibility="public" isStatic="true">
+              <ownedParameter xmi:id="_6UniveO8EdyGNPaNHSGn_w" name="p" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnivuO8EdyGNPaNHSGn_w" name="ring" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Univ-O8EdyGNPaNHSGn_w" name="snapTolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UniwOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UniweO8EdyGNPaNHSGn_w" name="computeOrientation" visibility="public" isStatic="true">
+              <ownedParameter xmi:id="_6UniwuO8EdyGNPaNHSGn_w" name="p1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uniw-O8EdyGNPaNHSGn_w" name="p2" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnixOO8EdyGNPaNHSGn_w" name="q" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnixeO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnixuO8EdyGNPaNHSGn_w" name="orientationIndex" visibility="public" isStatic="true">
+              <ownedParameter xmi:id="_6Unix-O8EdyGNPaNHSGn_w" name="p1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UniyOO8EdyGNPaNHSGn_w" name="p2" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UniyeO8EdyGNPaNHSGn_w" name="q" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UniyuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Uniy-O8EdyGNPaNHSGn_w" name="snapEquals2D" visibility="public" isStatic="true">
+              <ownedParameter xmi:id="_6UnizOO8EdyGNPaNHSGn_w" name="a" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnizeO8EdyGNPaNHSGn_w" name="b" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnizuO8EdyGNPaNHSGn_w" name="snapTolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uniz-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Class" xmi:id="_6Uni0OO8EdyGNPaNHSGn_w" name="SnapSimplePointInAreaLocator">
+            <generalization xmi:id="_6Uni0eO8EdyGNPaNHSGn_w" general="_6UnjBuO8EdyGNPaNHSGn_w"/>
+            <ownedOperation xmi:id="_6Uni0uO8EdyGNPaNHSGn_w" name="locate" visibility="public" isStatic="true">
+              <ownedParameter xmi:id="_6Uni0-O8EdyGNPaNHSGn_w" name="p" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni1OO8EdyGNPaNHSGn_w" name="geom" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni1eO8EdyGNPaNHSGn_w" name="snapTolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni1uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Uni1-O8EdyGNPaNHSGn_w" name="containsPoint" visibility="private" isStatic="true">
+              <ownedParameter xmi:id="_6Uni2OO8EdyGNPaNHSGn_w" name="p" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni2eO8EdyGNPaNHSGn_w" name="geom" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni2uO8EdyGNPaNHSGn_w" name="snapTolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni2-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Uni3OO8EdyGNPaNHSGn_w" name="containsPointInPolygon" visibility="public" isStatic="true">
+              <ownedParameter xmi:id="_6Uni3eO8EdyGNPaNHSGn_w" name="p" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni3uO8EdyGNPaNHSGn_w" name="poly" type="_6UnjB-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni3-O8EdyGNPaNHSGn_w" name="snapTolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni4OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Class" xmi:id="_6Uni4eO8EdyGNPaNHSGn_w" name="SnapPointLocator">
+            <generalization xmi:id="_6Uni4uO8EdyGNPaNHSGn_w" general="_6UnjCOO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6Uni4-O8EdyGNPaNHSGn_w" name="boundaryRule" visibility="private" type="_6UnjCeO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6Uni5OO8EdyGNPaNHSGn_w" name="isIn" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6Uni5eO8EdyGNPaNHSGn_w" name="numBoundaries" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+            <ownedOperation xmi:id="_6Uni5uO8EdyGNPaNHSGn_w" name="intersects" visibility="public">
+              <ownedParameter xmi:id="_6Uni5-O8EdyGNPaNHSGn_w" name="p" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni6OO8EdyGNPaNHSGn_w" name="geom" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni6eO8EdyGNPaNHSGn_w" name="snapTolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni6uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Uni6-O8EdyGNPaNHSGn_w" name="locate" visibility="public">
+              <ownedParameter xmi:id="_6Uni7OO8EdyGNPaNHSGn_w" name="p" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni7eO8EdyGNPaNHSGn_w" name="geom" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni7uO8EdyGNPaNHSGn_w" name="snapTolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni7-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Uni8OO8EdyGNPaNHSGn_w" name="computeLocation" visibility="private">
+              <ownedParameter xmi:id="_6Uni8eO8EdyGNPaNHSGn_w" name="p" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni8uO8EdyGNPaNHSGn_w" name="geom" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni8-O8EdyGNPaNHSGn_w" name="snapTolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Uni9OO8EdyGNPaNHSGn_w" name="updateLocationInfo" visibility="private">
+              <ownedParameter xmi:id="_6Uni9eO8EdyGNPaNHSGn_w" name="loc" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Uni9uO8EdyGNPaNHSGn_w" name="locate" visibility="private">
+              <ownedParameter xmi:id="_6Uni9-O8EdyGNPaNHSGn_w" name="p" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni-OO8EdyGNPaNHSGn_w" name="l" type="_6UUiReO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni-eO8EdyGNPaNHSGn_w" name="snapTolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni-uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Uni--O8EdyGNPaNHSGn_w" name="locate" visibility="private">
+              <ownedParameter xmi:id="_6Uni_OO8EdyGNPaNHSGn_w" name="p" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni_eO8EdyGNPaNHSGn_w" name="ring" type="_6UnjCuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni_uO8EdyGNPaNHSGn_w" name="snapTolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Uni_-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjAOO8EdyGNPaNHSGn_w" name="locate" visibility="private">
+              <ownedParameter xmi:id="_6UnjAeO8EdyGNPaNHSGn_w" name="p" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjAuO8EdyGNPaNHSGn_w" name="poly" type="_6UnjB-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjA-O8EdyGNPaNHSGn_w" name="snapTolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjBOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+          </packagedElement>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnjBeO8EdyGNPaNHSGn_w" name="CGAlgorithms"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnjBuO8EdyGNPaNHSGn_w" name="com.vividsolutions.jts.algorithm.SimplePointInAreaLocator"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnjB-O8EdyGNPaNHSGn_w" name="Polygon"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnjCOO8EdyGNPaNHSGn_w" name="com.vividsolutions.jts.algorithm.PointLocator"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnjCeO8EdyGNPaNHSGn_w" name="BoundaryNodeRule"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnjCuO8EdyGNPaNHSGn_w" name="LinearRing"/>
+        </packagedElement>
+        <packagedElement xmi:type="uml:Package" xmi:id="_6UnjC-O8EdyGNPaNHSGn_w" name="geomgraph">
+          <packagedElement xmi:type="uml:Class" xmi:id="_6UnjDOO8EdyGNPaNHSGn_w" name="SnapDirectedEdge">
+            <generalization xmi:id="_6UnjDeO8EdyGNPaNHSGn_w" general="_6UnkpuO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjDuO8EdyGNPaNHSGn_w" name="p0" visibility="private" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjD-O8EdyGNPaNHSGn_w" name="p1" visibility="private" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjEOO8EdyGNPaNHSGn_w" name="dx" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjEeO8EdyGNPaNHSGn_w" name="dy" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjEuO8EdyGNPaNHSGn_w" name="quadrant" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+            <ownedOperation xmi:id="_6UnjE-O8EdyGNPaNHSGn_w" name="getCoordinate" visibility="public">
+              <ownedParameter xmi:id="_6UnjFOO8EdyGNPaNHSGn_w" name="return" type="_6UUiSuO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjFeO8EdyGNPaNHSGn_w" name="getDirectedCoordinate" visibility="public">
+              <ownedParameter xmi:id="_6UnjFuO8EdyGNPaNHSGn_w" name="return" type="_6UUiSuO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjF-O8EdyGNPaNHSGn_w" name="getQuadrant" visibility="public">
+              <ownedParameter xmi:id="_6UnjGOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjGeO8EdyGNPaNHSGn_w" name="getDx" visibility="public">
+              <ownedParameter xmi:id="_6UnjGuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjG-O8EdyGNPaNHSGn_w" name="getDy" visibility="public">
+              <ownedParameter xmi:id="_6UnjHOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjHeO8EdyGNPaNHSGn_w" name="init" visibility="protected">
+              <ownedParameter xmi:id="_6UnjHuO8EdyGNPaNHSGn_w" name="p0" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjH-O8EdyGNPaNHSGn_w" name="p1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjIOO8EdyGNPaNHSGn_w" name="toString" visibility="public">
+              <ownedParameter xmi:id="_6UnjIeO8EdyGNPaNHSGn_w" name="return" type="_6UKs5uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjIuO8EdyGNPaNHSGn_w" name="compareTo" visibility="public">
+              <ownedParameter xmi:id="_6UnjI-O8EdyGNPaNHSGn_w" name="obj" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjJOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjJeO8EdyGNPaNHSGn_w" name="compareDirection" visibility="public">
+              <ownedParameter xmi:id="_6UnjJuO8EdyGNPaNHSGn_w" name="e" type="_6UnjDOO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjJ-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Class" xmi:id="_6UnjKOO8EdyGNPaNHSGn_w" name="SnappingGeometryGraph">
+            <generalization xmi:id="_6UnjKeO8EdyGNPaNHSGn_w" general="_6Unkp-O8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjKuO8EdyGNPaNHSGn_w" name="cga" visibility="public" type="_6UnjBeO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjK-O8EdyGNPaNHSGn_w" name="nodes" visibility="protected" type="_6UnkDuO8EdyGNPaNHSGn_w" association="_6UnkteO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjLOO8EdyGNPaNHSGn_w" name="boundaryNodes" visibility="protected" type="_6Ud79eO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjLeO8EdyGNPaNHSGn_w" name="argIndex" visibility="protected" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjLuO8EdyGNPaNHSGn_w" name="useBoundaryDeterminationRule" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjL-O8EdyGNPaNHSGn_w" name="hasTooFewPoints" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjMOO8EdyGNPaNHSGn_w" name="invalidPoint" visibility="private" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjMeO8EdyGNPaNHSGn_w" name="lineEdgeMap" visibility="private" type="_6UKs5-O8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjMuO8EdyGNPaNHSGn_w" name="parentGeometry" visibility="private" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjM-O8EdyGNPaNHSGn_w" name="boundaryNodeRule" visibility="private" type="_6UnjCeO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjNOO8EdyGNPaNHSGn_w" name="snapTolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+            <ownedOperation xmi:id="_6UnjNeO8EdyGNPaNHSGn_w" name="getGeometry" visibility="public">
+              <ownedParameter xmi:id="_6UnjNuO8EdyGNPaNHSGn_w" name="return" type="_6UUrO-O8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjN-O8EdyGNPaNHSGn_w" name="dumpNodes" visibility="public"/>
+            <ownedOperation xmi:id="_6UnjOOO8EdyGNPaNHSGn_w" name="getBoundaryNodes" visibility="public">
+              <ownedParameter xmi:id="_6UnjOeO8EdyGNPaNHSGn_w" name="return" type="_6Ud79eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjOuO8EdyGNPaNHSGn_w" name="getBoundaryPoints" visibility="public">
+              <ownedParameter xmi:id="_6UnjO-O8EdyGNPaNHSGn_w" name="return" type="_6UUiSuO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjPOO8EdyGNPaNHSGn_w" name="getNodeIterator" visibility="public">
+              <ownedParameter xmi:id="_6UnjPeO8EdyGNPaNHSGn_w" name="return" type="_6UUiHuO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjPuO8EdyGNPaNHSGn_w" name="getNodes" visibility="public">
+              <ownedParameter xmi:id="_6UnjP-O8EdyGNPaNHSGn_w" name="return" type="_6Ud79eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjQOO8EdyGNPaNHSGn_w" name="addNode" visibility="public">
+              <ownedParameter xmi:id="_6UnjQeO8EdyGNPaNHSGn_w" name="node" type="_6UnijOO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjQuO8EdyGNPaNHSGn_w" name="return" type="_6UnijOO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjQ-O8EdyGNPaNHSGn_w" name="addNode" visibility="public">
+              <ownedParameter xmi:id="_6UnjROO8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjReO8EdyGNPaNHSGn_w" name="return" type="_6UnijOO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjRuO8EdyGNPaNHSGn_w" name="find" visibility="public">
+              <ownedParameter xmi:id="_6UnjR-O8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjSOO8EdyGNPaNHSGn_w" name="return" type="_6UnijOO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjSeO8EdyGNPaNHSGn_w" name="isBoundaryNode" visibility="public">
+              <ownedParameter xmi:id="_6UnjSuO8EdyGNPaNHSGn_w" name="geomIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjS-O8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjTOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjTeO8EdyGNPaNHSGn_w" name="add" visibility="public">
+              <ownedParameter xmi:id="_6UnjTuO8EdyGNPaNHSGn_w" name="e" type="_6UnkqOO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjT-O8EdyGNPaNHSGn_w" name="linkResultDirectedEdges" visibility="public"/>
+            <ownedOperation xmi:id="_6UnjUOO8EdyGNPaNHSGn_w" name="linkAllDirectedEdges" visibility="public"/>
+            <ownedOperation xmi:id="_6UnjUeO8EdyGNPaNHSGn_w" name="findEdgeEnd" visibility="public">
+              <ownedParameter xmi:id="_6UnjUuO8EdyGNPaNHSGn_w" name="e" type="_6UnkqeO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjU-O8EdyGNPaNHSGn_w" name="return" type="_6UnkqOO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjVOO8EdyGNPaNHSGn_w" name="findEdge" visibility="public">
+              <ownedParameter xmi:id="_6UnjVeO8EdyGNPaNHSGn_w" name="p0" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjVuO8EdyGNPaNHSGn_w" name="p1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjV-O8EdyGNPaNHSGn_w" name="return" type="_6UnkqeO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjWOO8EdyGNPaNHSGn_w" name="findEdgeInSameDirection" visibility="public">
+              <ownedParameter xmi:id="_6UnjWeO8EdyGNPaNHSGn_w" name="p0" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjWuO8EdyGNPaNHSGn_w" name="p1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjW-O8EdyGNPaNHSGn_w" name="return" type="_6UnkqeO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjXOO8EdyGNPaNHSGn_w" name="matchInSameDirection" visibility="private">
+              <ownedParameter xmi:id="_6UnjXeO8EdyGNPaNHSGn_w" name="p0" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjXuO8EdyGNPaNHSGn_w" name="p1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjX-O8EdyGNPaNHSGn_w" name="ep0" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjYOO8EdyGNPaNHSGn_w" name="ep1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjYeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjYuO8EdyGNPaNHSGn_w" name="add" visibility="private">
+              <ownedParameter xmi:id="_6UnjY-O8EdyGNPaNHSGn_w" name="g" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjZOO8EdyGNPaNHSGn_w" name="addCollection" visibility="private">
+              <ownedParameter xmi:id="_6UnjZeO8EdyGNPaNHSGn_w" name="gc" type="_6UUiQ-O8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjZuO8EdyGNPaNHSGn_w" name="addPoint" visibility="private">
+              <ownedParameter xmi:id="_6UnjZ-O8EdyGNPaNHSGn_w" name="p" type="_6UUiRuO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjaOO8EdyGNPaNHSGn_w" name="addPolygonRing" visibility="private">
+              <ownedParameter xmi:id="_6UnjaeO8EdyGNPaNHSGn_w" name="lr" type="_6UnjCuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjauO8EdyGNPaNHSGn_w" name="cwLeft" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unja-O8EdyGNPaNHSGn_w" name="cwRight" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjbOO8EdyGNPaNHSGn_w" name="addPolygon" visibility="private">
+              <ownedParameter xmi:id="_6UnjbeO8EdyGNPaNHSGn_w" name="p" type="_6UnjB-O8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjbuO8EdyGNPaNHSGn_w" name="addLineString" visibility="private">
+              <ownedParameter xmi:id="_6Unjb-O8EdyGNPaNHSGn_w" name="line" type="_6UUiReO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjcOO8EdyGNPaNHSGn_w" name="addEdge" visibility="public">
+              <ownedParameter xmi:id="_6UnjceO8EdyGNPaNHSGn_w" name="e" type="_6UnkqeO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjcuO8EdyGNPaNHSGn_w" name="addPoint" visibility="public">
+              <ownedParameter xmi:id="_6Unjc-O8EdyGNPaNHSGn_w" name="pt" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjdOO8EdyGNPaNHSGn_w" name="computeSelfNodes" visibility="public">
+              <ownedParameter xmi:id="_6UnjdeO8EdyGNPaNHSGn_w" name="li" type="_6UnkquO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjduO8EdyGNPaNHSGn_w" name="computeRingSelfNodes" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unjd-O8EdyGNPaNHSGn_w" name="return" type="_6Unkq-O8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjeOO8EdyGNPaNHSGn_w" name="computeEdgeIntersections" visibility="public">
+              <ownedParameter xmi:id="_6UnjeeO8EdyGNPaNHSGn_w" name="g" type="_6Unkp-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjeuO8EdyGNPaNHSGn_w" name="li" type="_6UnkquO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unje-O8EdyGNPaNHSGn_w" name="includeProper" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjfOO8EdyGNPaNHSGn_w" name="return" type="_6Unkq-O8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjfeO8EdyGNPaNHSGn_w" name="addSelfIntersectionNodes" visibility="private">
+              <ownedParameter xmi:id="_6UnjfuO8EdyGNPaNHSGn_w" name="argIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unjf-O8EdyGNPaNHSGn_w" name="addSelfIntersectionNode" visibility="private">
+              <ownedParameter xmi:id="_6UnjgOO8EdyGNPaNHSGn_w" name="argIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjgeO8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjguO8EdyGNPaNHSGn_w" name="loc" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unjg-O8EdyGNPaNHSGn_w" name="insertPoint" visibility="private">
+              <ownedParameter xmi:id="_6UnjhOO8EdyGNPaNHSGn_w" name="argIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjheO8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjhuO8EdyGNPaNHSGn_w" name="onLocation" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unjh-O8EdyGNPaNHSGn_w" name="insertBoundaryPoint" visibility="private">
+              <ownedParameter xmi:id="_6UnjiOO8EdyGNPaNHSGn_w" name="argIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjieO8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjiuO8EdyGNPaNHSGn_w" name="computeSplitEdges" visibility="public">
+              <ownedParameter xmi:id="_6Unji-O8EdyGNPaNHSGn_w" name="edgelist" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjjOO8EdyGNPaNHSGn_w" name="clearIntersections" visibility="public"/>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Class" xmi:id="_6UnjjeO8EdyGNPaNHSGn_w" name="SnapEdgeList">
+            <generalization xmi:id="_6UnjjuO8EdyGNPaNHSGn_w" general="_6UnkrOO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6Unjj-O8EdyGNPaNHSGn_w" name="edges" visibility="private" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjkOO8EdyGNPaNHSGn_w" name="spatialIndex" visibility="private" type="_6UnewOO8EdyGNPaNHSGn_w" association="_6Unkt-O8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjkeO8EdyGNPaNHSGn_w" name="snapTolerance" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+            <ownedOperation xmi:id="_6UnjkuO8EdyGNPaNHSGn_w" name="add" visibility="public">
+              <ownedParameter xmi:id="_6Unjk-O8EdyGNPaNHSGn_w" name="e" type="_6UnkqeO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjlOO8EdyGNPaNHSGn_w" name="getEnvelopeForSnap" visibility="private">
+              <ownedParameter xmi:id="_6UnjleO8EdyGNPaNHSGn_w" name="oldEnvelope" type="_6Ud77eO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjluO8EdyGNPaNHSGn_w" name="return" type="_6UnhguO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unjl-O8EdyGNPaNHSGn_w" name="findEqualEdge" visibility="public">
+              <ownedParameter xmi:id="_6UnjmOO8EdyGNPaNHSGn_w" name="e" type="_6UnkqeO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjmeO8EdyGNPaNHSGn_w" name="return" type="_6UnkqeO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjmuO8EdyGNPaNHSGn_w" name="addAll" visibility="public">
+              <ownedParameter xmi:id="_6Unjm-O8EdyGNPaNHSGn_w" name="edgeColl" type="_6Ud79eO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjnOO8EdyGNPaNHSGn_w" name="iterator" visibility="public">
+              <ownedParameter xmi:id="_6UnjneO8EdyGNPaNHSGn_w" name="return" type="_6UUiHuO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjnuO8EdyGNPaNHSGn_w" name="get" visibility="public">
+              <ownedParameter xmi:id="_6Unjn-O8EdyGNPaNHSGn_w" name="i" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjoOO8EdyGNPaNHSGn_w" name="return" type="_6UnkqeO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjoeO8EdyGNPaNHSGn_w" name="findEdgeIndex" visibility="public">
+              <ownedParameter xmi:id="_6UnjouO8EdyGNPaNHSGn_w" name="e" type="_6UnkqeO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unjo-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjpOO8EdyGNPaNHSGn_w" name="getEdges" visibility="public">
+              <ownedParameter xmi:id="_6UnjpeO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Class" xmi:id="_6UnjpuO8EdyGNPaNHSGn_w" name="SnapEdgeIntersectionList">
+            <generalization xmi:id="_6Unjp-O8EdyGNPaNHSGn_w" general="_6UnkreO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjqOO8EdyGNPaNHSGn_w" name="nodeMap" type="_6UnkDuO8EdyGNPaNHSGn_w" association="_6UnkueO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjqeO8EdyGNPaNHSGn_w" name="edge" type="_6UnkVeO8EdyGNPaNHSGn_w" association="_6Unku-O8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjquO8EdyGNPaNHSGn_w" name="snapTolerance" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+            <ownedOperation xmi:id="_6Unjq-O8EdyGNPaNHSGn_w" name="add" visibility="public">
+              <ownedParameter xmi:id="_6UnjrOO8EdyGNPaNHSGn_w" name="intPt" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjreO8EdyGNPaNHSGn_w" name="segmentIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjruO8EdyGNPaNHSGn_w" name="dist" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unjr-O8EdyGNPaNHSGn_w" name="return" type="_6UnkruO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjsOO8EdyGNPaNHSGn_w" name="iterator" visibility="public">
+              <ownedParameter xmi:id="_6UnjseO8EdyGNPaNHSGn_w" name="return" type="_6UUiHuO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjsuO8EdyGNPaNHSGn_w" name="isIntersection" visibility="public">
+              <ownedParameter xmi:id="_6Unjs-O8EdyGNPaNHSGn_w" name="pt" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjtOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjteO8EdyGNPaNHSGn_w" name="addSplitEdges" visibility="public">
+              <ownedParameter xmi:id="_6UnjtuO8EdyGNPaNHSGn_w" name="edgeList" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unjt-O8EdyGNPaNHSGn_w" name="addEndpoints" visibility="public"/>
+            <ownedOperation xmi:id="_6UnjuOO8EdyGNPaNHSGn_w" name="createSplitEdge">
+              <ownedParameter xmi:id="_6UnjueO8EdyGNPaNHSGn_w" name="ei0" type="_6UnkruO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjuuO8EdyGNPaNHSGn_w" name="ei1" type="_6UnkruO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unju-O8EdyGNPaNHSGn_w" name="return" type="_6UnkqeO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Class" xmi:id="_6UnjvOO8EdyGNPaNHSGn_w" name="SnapEdgeIntersectNode">
+            <generalization xmi:id="_6UnjveO8EdyGNPaNHSGn_w" general="_6UnijOO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnjvuO8EdyGNPaNHSGn_w" name="edgeIntersection" type="_6UnkruO8EdyGNPaNHSGn_w"/>
+            <ownedOperation xmi:id="_6Unjv-O8EdyGNPaNHSGn_w" name="getCoordinate" visibility="public">
+              <ownedParameter xmi:id="_6UnjwOO8EdyGNPaNHSGn_w" name="return" type="_6UUiSuO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjweO8EdyGNPaNHSGn_w" name="getEdgeEndStar" visibility="public">
+              <ownedParameter xmi:id="_6UnjwuO8EdyGNPaNHSGn_w" name="return" type="_6Unkr-O8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unjw-O8EdyGNPaNHSGn_w" name="equals" visibility="public">
+              <ownedParameter xmi:id="_6UnjxOO8EdyGNPaNHSGn_w" name="obj" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjxeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjxuO8EdyGNPaNHSGn_w" name="hashCode" visibility="public">
+              <ownedParameter xmi:id="_6Unjx-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnjyOO8EdyGNPaNHSGn_w" name="compareTo" visibility="public">
+              <ownedParameter xmi:id="_6UnjyeO8EdyGNPaNHSGn_w" name="arg0" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnjyuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Class" xmi:id="_6Unjy-O8EdyGNPaNHSGn_w" name="SnapEdgeIntersection">
+            <generalization xmi:id="_6UnjzOO8EdyGNPaNHSGn_w" general="_6UnkruO8EdyGNPaNHSGn_w"/>
+            <ownedOperation xmi:id="_6UnjzeO8EdyGNPaNHSGn_w" name="compareTo" visibility="public">
+              <ownedParameter xmi:id="_6UnjzuO8EdyGNPaNHSGn_w" name="obj" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unjz-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unj0OO8EdyGNPaNHSGn_w" name="compare" visibility="public">
+              <ownedParameter xmi:id="_6Unj0eO8EdyGNPaNHSGn_w" name="segmentIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unj0uO8EdyGNPaNHSGn_w" name="dist" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unj0-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unj1OO8EdyGNPaNHSGn_w" name="isEndPoint" visibility="public">
+              <ownedParameter xmi:id="_6Unj1eO8EdyGNPaNHSGn_w" name="maxSegmentIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unj1uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Class" xmi:id="_6Unj1-O8EdyGNPaNHSGn_w" name="SnappingPlanarGraph">
+            <generalization xmi:id="_6Unj2OO8EdyGNPaNHSGn_w" general="_6UnksOO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6Unj2eO8EdyGNPaNHSGn_w" name="cga" visibility="public" type="_6UnjBeO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6Unj2uO8EdyGNPaNHSGn_w" name="edges" visibility="protected" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6Unj2-O8EdyGNPaNHSGn_w" name="nodes" visibility="protected" type="_6UnkDuO8EdyGNPaNHSGn_w" association="_6UnkvOO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6Unj3OO8EdyGNPaNHSGn_w" name="edgeEndList" visibility="protected" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+            <ownedOperation xmi:id="_6Unj3eO8EdyGNPaNHSGn_w" name="linkResultDirectedEdges" visibility="public" isStatic="true">
+              <ownedParameter xmi:id="_6Unj3uO8EdyGNPaNHSGn_w" name="nodes" type="_6Ud79eO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unj3-O8EdyGNPaNHSGn_w" name="getEdgeIterator" visibility="public">
+              <ownedParameter xmi:id="_6Unj4OO8EdyGNPaNHSGn_w" name="return" type="_6UUiHuO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unj4eO8EdyGNPaNHSGn_w" name="getEdgeEnds" visibility="public">
+              <ownedParameter xmi:id="_6Unj4uO8EdyGNPaNHSGn_w" name="return" type="_6Ud79eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unj4-O8EdyGNPaNHSGn_w" name="isBoundaryNode" visibility="public">
+              <ownedParameter xmi:id="_6Unj5OO8EdyGNPaNHSGn_w" name="geomIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unj5eO8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unj5uO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unj5-O8EdyGNPaNHSGn_w" name="insertEdge" visibility="protected">
+              <ownedParameter xmi:id="_6Unj6OO8EdyGNPaNHSGn_w" name="e" type="_6UnkqeO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unj6eO8EdyGNPaNHSGn_w" name="add" visibility="public">
+              <ownedParameter xmi:id="_6Unj6uO8EdyGNPaNHSGn_w" name="e" type="_6UnkqOO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unj6-O8EdyGNPaNHSGn_w" name="getNodeIterator" visibility="public">
+              <ownedParameter xmi:id="_6Unj7OO8EdyGNPaNHSGn_w" name="return" type="_6UUiHuO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unj7eO8EdyGNPaNHSGn_w" name="getNodes" visibility="public">
+              <ownedParameter xmi:id="_6Unj7uO8EdyGNPaNHSGn_w" name="return" type="_6Ud79eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unj7-O8EdyGNPaNHSGn_w" name="addNode" visibility="public">
+              <ownedParameter xmi:id="_6Unj8OO8EdyGNPaNHSGn_w" name="node" type="_6UnijOO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unj8eO8EdyGNPaNHSGn_w" name="return" type="_6UnijOO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unj8uO8EdyGNPaNHSGn_w" name="addNode" visibility="public">
+              <ownedParameter xmi:id="_6Unj8-O8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unj9OO8EdyGNPaNHSGn_w" name="return" type="_6UnijOO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unj9eO8EdyGNPaNHSGn_w" name="find" visibility="public">
+              <ownedParameter xmi:id="_6Unj9uO8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unj9-O8EdyGNPaNHSGn_w" name="return" type="_6UnijOO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unj-OO8EdyGNPaNHSGn_w" name="addEdges" visibility="public">
+              <ownedParameter xmi:id="_6Unj-eO8EdyGNPaNHSGn_w" name="edgesToAdd" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unj-uO8EdyGNPaNHSGn_w" name="linkResultDirectedEdges" visibility="public"/>
+            <ownedOperation xmi:id="_6Unj--O8EdyGNPaNHSGn_w" name="linkAllDirectedEdges" visibility="public"/>
+            <ownedOperation xmi:id="_6Unj_OO8EdyGNPaNHSGn_w" name="findEdgeEnd" visibility="public">
+              <ownedParameter xmi:id="_6Unj_eO8EdyGNPaNHSGn_w" name="e" type="_6UnkqeO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unj_uO8EdyGNPaNHSGn_w" name="return" type="_6UnkqOO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unj_-O8EdyGNPaNHSGn_w" name="findEdge" visibility="public">
+              <ownedParameter xmi:id="_6UnkAOO8EdyGNPaNHSGn_w" name="p0" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkAeO8EdyGNPaNHSGn_w" name="p1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkAuO8EdyGNPaNHSGn_w" name="return" type="_6UnkqeO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkA-O8EdyGNPaNHSGn_w" name="findEdgeInSameDirection" visibility="public">
+              <ownedParameter xmi:id="_6UnkBOO8EdyGNPaNHSGn_w" name="p0" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkBeO8EdyGNPaNHSGn_w" name="p1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkBuO8EdyGNPaNHSGn_w" name="return" type="_6UnkqeO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkB-O8EdyGNPaNHSGn_w" name="matchInSameDirection" visibility="private">
+              <ownedParameter xmi:id="_6UnkCOO8EdyGNPaNHSGn_w" name="p0" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkCeO8EdyGNPaNHSGn_w" name="p1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkCuO8EdyGNPaNHSGn_w" name="ep0" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkC-O8EdyGNPaNHSGn_w" name="ep1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkDOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkDeO8EdyGNPaNHSGn_w" name="dump" visibility="public"/>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Class" xmi:id="_6UnkDuO8EdyGNPaNHSGn_w" name="SnappingNodeMap">
+            <generalization xmi:id="_6UnkD-O8EdyGNPaNHSGn_w" general="_6UnkseO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnkEOO8EdyGNPaNHSGn_w" name="snapTolerance" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnkEeO8EdyGNPaNHSGn_w" name="nodeMap" visibility="protected" type="_6UnhleO8EdyGNPaNHSGn_w"/>
+            <ownedOperation xmi:id="_6UnkEuO8EdyGNPaNHSGn_w" name="addNode" visibility="public">
+              <ownedParameter xmi:id="_6UnkE-O8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkFOO8EdyGNPaNHSGn_w" name="return" type="_6UnijOO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkFeO8EdyGNPaNHSGn_w" name="addNode" visibility="public">
+              <ownedParameter xmi:id="_6UnkFuO8EdyGNPaNHSGn_w" name="n" type="_6UnijOO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkF-O8EdyGNPaNHSGn_w" name="return" type="_6UnijOO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkGOO8EdyGNPaNHSGn_w" name="add" visibility="public">
+              <ownedParameter xmi:id="_6UnkGeO8EdyGNPaNHSGn_w" name="e" type="_6UnkqOO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkGuO8EdyGNPaNHSGn_w" name="find" visibility="public">
+              <ownedParameter xmi:id="_6UnkG-O8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkHOO8EdyGNPaNHSGn_w" name="return" type="_6UnijOO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkHeO8EdyGNPaNHSGn_w" name="iterator" visibility="public">
+              <ownedParameter xmi:id="_6UnkHuO8EdyGNPaNHSGn_w" name="return" type="_6UUiHuO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkH-O8EdyGNPaNHSGn_w" name="values" visibility="public">
+              <ownedParameter xmi:id="_6UnkIOO8EdyGNPaNHSGn_w" name="return" type="_6Ud79eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkIeO8EdyGNPaNHSGn_w" name="getBoundaryNodes" visibility="public">
+              <ownedParameter xmi:id="_6UnkIuO8EdyGNPaNHSGn_w" name="geomIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkI-O8EdyGNPaNHSGn_w" name="return" type="_6Ud79eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkJOO8EdyGNPaNHSGn_w" name="dump" visibility="public"/>
+            <ownedOperation xmi:id="_6UnkJeO8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+              <ownedParameter xmi:id="_6UnkJuO8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Class" xmi:id="_6UnkJ-O8EdyGNPaNHSGn_w" name="SnapDirectedEdgeStar" visibility="private">
+            <generalization xmi:id="_6UnkKOO8EdyGNPaNHSGn_w" general="_6UnksuO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnkKeO8EdyGNPaNHSGn_w" name="ptInAreaLocation" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnkKuO8EdyGNPaNHSGn_w" name="label" visibility="private" type="_6Unks-O8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnkK-O8EdyGNPaNHSGn_w" name="resultAreaEdgeList" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnkLOO8EdyGNPaNHSGn_w" name="SCANNING_FOR_INCOMING" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnkLeO8EdyGNPaNHSGn_w" name="LINKING_TO_OUTGOING" visibility="private" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+            <ownedOperation xmi:id="_6UnkLuO8EdyGNPaNHSGn_w" name="getResultAreaEdges">
+              <ownedParameter xmi:id="_6UnkL-O8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkMOO8EdyGNPaNHSGn_w" name="linkResultDirectedEdges" visibility="public"/>
+            <ownedOperation xmi:id="_6UnkMeO8EdyGNPaNHSGn_w" name="insertEdgeEnd" visibility="protected">
+              <ownedParameter xmi:id="_6UnkMuO8EdyGNPaNHSGn_w" name="e" type="_6UnkqOO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkM-O8EdyGNPaNHSGn_w" name="obj" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkNOO8EdyGNPaNHSGn_w" name="iterator" visibility="public">
+              <ownedParameter xmi:id="_6UnkNeO8EdyGNPaNHSGn_w" name="return" type="_6UUiHuO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkNuO8EdyGNPaNHSGn_w" name="getEdges" visibility="public">
+              <ownedParameter xmi:id="_6UnkN-O8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkOOO8EdyGNPaNHSGn_w" name="getLabel" visibility="public">
+              <ownedParameter xmi:id="_6UnkOeO8EdyGNPaNHSGn_w" name="return" type="_6Unks-O8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkOuO8EdyGNPaNHSGn_w" name="computeEdgeEndLabels">
+              <ownedParameter xmi:id="_6UnkO-O8EdyGNPaNHSGn_w" name="boundaryNodeRule" type="_6UnjCeO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkPOO8EdyGNPaNHSGn_w" name="propagateSideLabels">
+              <ownedParameter xmi:id="_6UnkPeO8EdyGNPaNHSGn_w" name="geomIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkPuO8EdyGNPaNHSGn_w" name="getLocation">
+              <ownedParameter xmi:id="_6UnkP-O8EdyGNPaNHSGn_w" name="geomIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkQOO8EdyGNPaNHSGn_w" name="p" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkQeO8EdyGNPaNHSGn_w" name="geom" type="_6Unkp-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkQuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkQ-O8EdyGNPaNHSGn_w" name="mergeSymLabels" visibility="public"/>
+            <ownedOperation xmi:id="_6UnkROO8EdyGNPaNHSGn_w" name="updateLabelling" visibility="public">
+              <ownedParameter xmi:id="_6UnkReO8EdyGNPaNHSGn_w" name="nodeLabel" type="_6Unks-O8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkRuO8EdyGNPaNHSGn_w" name="computeLabelling" visibility="public">
+              <ownedParameter xmi:id="_6UnkR-O8EdyGNPaNHSGn_w" name="geom" type="_6Unkp-O8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Class" xmi:id="_6UnkSOO8EdyGNPaNHSGn_w" name="SnapNode">
+            <generalization xmi:id="_6UnkSeO8EdyGNPaNHSGn_w" general="_6UnijOO8EdyGNPaNHSGn_w"/>
+            <ownedOperation xmi:id="_6UnkSuO8EdyGNPaNHSGn_w" name="equals" visibility="public">
+              <ownedParameter xmi:id="_6UnkS-O8EdyGNPaNHSGn_w" name="obj" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkTOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkTeO8EdyGNPaNHSGn_w" name="hashCode" visibility="public">
+              <ownedParameter xmi:id="_6UnkTuO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Class" xmi:id="_6UnkT-O8EdyGNPaNHSGn_w" name="MinDistCoordComparator">
+            <ownedAttribute xmi:id="_6UnkUOO8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+            <ownedOperation xmi:id="_6UnkUeO8EdyGNPaNHSGn_w" name="compare" visibility="public">
+              <ownedParameter xmi:id="_6UnkUuO8EdyGNPaNHSGn_w" name="arg0" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkU-O8EdyGNPaNHSGn_w" name="arg1" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkVOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Class" xmi:id="_6UnkVeO8EdyGNPaNHSGn_w" name="SnappingEdge">
+            <generalization xmi:id="_6UnkVuO8EdyGNPaNHSGn_w" general="_6UnkqeO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnkV-O8EdyGNPaNHSGn_w" name="eiList" type="_6UnjpuO8EdyGNPaNHSGn_w" association="_6Unku-O8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnkWOO8EdyGNPaNHSGn_w" name="snapTolerance" visibility="private" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnkWeO8EdyGNPaNHSGn_w" name="mce" visibility="private" type="_6UnkcuO8EdyGNPaNHSGn_w" association="_6UnkvuO8EdyGNPaNHSGn_w"/>
+            <ownedAttribute xmi:id="_6UnkWuO8EdyGNPaNHSGn_w" name="nodes" visibility="private" type="_6UnkDuO8EdyGNPaNHSGn_w" association="_6Unkv-O8EdyGNPaNHSGn_w"/>
+            <ownedOperation xmi:id="_6UnkW-O8EdyGNPaNHSGn_w" name="getSnapTolerance" visibility="public">
+              <ownedParameter xmi:id="_6UnkXOO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkXeO8EdyGNPaNHSGn_w" name="getEdgeIntersectionList" visibility="public">
+              <ownedParameter xmi:id="_6UnkXuO8EdyGNPaNHSGn_w" name="return" type="_6UnkreO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkX-O8EdyGNPaNHSGn_w" name="getMonotoneChainEdge" visibility="public">
+              <ownedParameter xmi:id="_6UnkYOO8EdyGNPaNHSGn_w" name="return" type="_6UnktOO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkYeO8EdyGNPaNHSGn_w" name="isPointwiseEqual" visibility="public">
+              <ownedParameter xmi:id="_6UnkYuO8EdyGNPaNHSGn_w" name="e" type="_6UnkqeO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkY-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkZOO8EdyGNPaNHSGn_w" name="equals" visibility="public">
+              <ownedParameter xmi:id="_6UnkZeO8EdyGNPaNHSGn_w" name="o" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkZuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkZ-O8EdyGNPaNHSGn_w" name="addIntersections" visibility="public">
+              <ownedParameter xmi:id="_6UnkaOO8EdyGNPaNHSGn_w" name="li" type="_6UnkquO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkaeO8EdyGNPaNHSGn_w" name="segmentIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkauO8EdyGNPaNHSGn_w" name="geomIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6Unka-O8EdyGNPaNHSGn_w" name="addIntersection" visibility="public">
+              <ownedParameter xmi:id="_6UnkbOO8EdyGNPaNHSGn_w" name="li" type="_6UnkquO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkbeO8EdyGNPaNHSGn_w" name="segmentIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6UnkbuO8EdyGNPaNHSGn_w" name="geomIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedParameter xmi:id="_6Unkb-O8EdyGNPaNHSGn_w" name="intIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+            </ownedOperation>
+            <ownedOperation xmi:id="_6UnkcOO8EdyGNPaNHSGn_w" name="clearIntersections" visibility="public"/>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Package" xmi:id="_6UnkceO8EdyGNPaNHSGn_w" name="index">
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UnkcuO8EdyGNPaNHSGn_w" name="SnapMonotoneChainEdge">
+              <generalization xmi:id="_6Unkc-O8EdyGNPaNHSGn_w" general="_6UnktOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnkdOO8EdyGNPaNHSGn_w" name="e" type="_6UnkVeO8EdyGNPaNHSGn_w" association="_6UnkvuO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnkdeO8EdyGNPaNHSGn_w" name="startIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnkduO8EdyGNPaNHSGn_w" name="snapTolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6Unkd-O8EdyGNPaNHSGn_w" name="getEdge" visibility="public">
+                <ownedParameter xmi:id="_6UnkeOO8EdyGNPaNHSGn_w" name="return" type="_6UnkVeO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnkeeO8EdyGNPaNHSGn_w" name="computeIntersects" visibility="public">
+                <ownedParameter xmi:id="_6UnkeuO8EdyGNPaNHSGn_w" name="mce" type="_6UnktOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unke-O8EdyGNPaNHSGn_w" name="si" type="_6Unkq-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnkfOO8EdyGNPaNHSGn_w" name="computeIntersectsForChain" visibility="public">
+                <ownedParameter xmi:id="_6UnkfeO8EdyGNPaNHSGn_w" name="chainIndex0" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnkfuO8EdyGNPaNHSGn_w" name="mce" type="_6UnktOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unkf-O8EdyGNPaNHSGn_w" name="chainIndex1" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnkgOO8EdyGNPaNHSGn_w" name="si" type="_6Unkq-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnkgeO8EdyGNPaNHSGn_w" name="computeIntersectsForChain" visibility="private">
+                <ownedParameter xmi:id="_6UnkguO8EdyGNPaNHSGn_w" name="start0" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unkg-O8EdyGNPaNHSGn_w" name="end0" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnkhOO8EdyGNPaNHSGn_w" name="mce" type="_6UnktOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnkheO8EdyGNPaNHSGn_w" name="start1" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnkhuO8EdyGNPaNHSGn_w" name="end1" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unkh-O8EdyGNPaNHSGn_w" name="ei" type="_6Unkq-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UnkiOO8EdyGNPaNHSGn_w" name="SnapSimpleMCSweepLineIntersector">
+              <generalization xmi:id="_6UnkieO8EdyGNPaNHSGn_w" general="_6UnkpOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnkiuO8EdyGNPaNHSGn_w" name="events" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unki-O8EdyGNPaNHSGn_w" name="nOverlaps" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UnkjOO8EdyGNPaNHSGn_w" name="computeIntersections" visibility="public">
+                <ownedParameter xmi:id="_6UnkjeO8EdyGNPaNHSGn_w" name="edges" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnkjuO8EdyGNPaNHSGn_w" name="si" type="_6Unkq-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unkj-O8EdyGNPaNHSGn_w" name="testAllSegments" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnkkOO8EdyGNPaNHSGn_w" name="computeIntersections" visibility="public">
+                <ownedParameter xmi:id="_6UnkkeO8EdyGNPaNHSGn_w" name="edges0" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnkkuO8EdyGNPaNHSGn_w" name="edges1" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unkk-O8EdyGNPaNHSGn_w" name="si" type="_6Unkq-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnklOO8EdyGNPaNHSGn_w" name="add" visibility="private">
+                <ownedParameter xmi:id="_6UnkleO8EdyGNPaNHSGn_w" name="edges" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnkluO8EdyGNPaNHSGn_w" name="add" visibility="private">
+                <ownedParameter xmi:id="_6Unkl-O8EdyGNPaNHSGn_w" name="edges" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnkmOO8EdyGNPaNHSGn_w" name="edgeSet" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnkmeO8EdyGNPaNHSGn_w" name="add" visibility="private">
+                <ownedParameter xmi:id="_6UnkmuO8EdyGNPaNHSGn_w" name="edge" type="_6UnkqeO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unkm-O8EdyGNPaNHSGn_w" name="edgeSet" type="_6Unhk-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnknOO8EdyGNPaNHSGn_w" name="prepareEvents" visibility="private"/>
+              <ownedOperation xmi:id="_6UnkneO8EdyGNPaNHSGn_w" name="computeIntersections" visibility="private">
+                <ownedParameter xmi:id="_6UnknuO8EdyGNPaNHSGn_w" name="si" type="_6Unkq-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unkn-O8EdyGNPaNHSGn_w" name="processOverlaps" visibility="private">
+                <ownedParameter xmi:id="_6UnkoOO8EdyGNPaNHSGn_w" name="start" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnkoeO8EdyGNPaNHSGn_w" name="end" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnkouO8EdyGNPaNHSGn_w" name="ev0" type="_6UnkpeO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unko-O8EdyGNPaNHSGn_w" name="si" type="_6Unkq-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnkpOO8EdyGNPaNHSGn_w" name="SimpleMCSweepLineIntersector"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnkpeO8EdyGNPaNHSGn_w" name="SweepLineEvent"/>
+          </packagedElement>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnkpuO8EdyGNPaNHSGn_w" name="DirectedEdge"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6Unkp-O8EdyGNPaNHSGn_w" name="GeometryGraph"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnkqOO8EdyGNPaNHSGn_w" name="EdgeEnd"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnkqeO8EdyGNPaNHSGn_w" name="Edge"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnkquO8EdyGNPaNHSGn_w" name="LineIntersector"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6Unkq-O8EdyGNPaNHSGn_w" name="SegmentIntersector"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnkrOO8EdyGNPaNHSGn_w" name="EdgeList"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnkreO8EdyGNPaNHSGn_w" name="EdgeIntersectionList"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnkruO8EdyGNPaNHSGn_w" name="EdgeIntersection"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6Unkr-O8EdyGNPaNHSGn_w" name="EdgeEndStar"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnksOO8EdyGNPaNHSGn_w" name="PlanarGraph"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnkseO8EdyGNPaNHSGn_w" name="NodeMap"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnksuO8EdyGNPaNHSGn_w" name="DirectedEdgeStar"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6Unks-O8EdyGNPaNHSGn_w" name="Label"/>
+          <packagedElement xmi:type="uml:DataType" xmi:id="_6UnktOO8EdyGNPaNHSGn_w" name="MonotoneChainEdge"/>
+          <packagedElement xmi:type="uml:Association" xmi:id="_6UnkteO8EdyGNPaNHSGn_w" memberEnd="_6UnjK-O8EdyGNPaNHSGn_w _6UnktuO8EdyGNPaNHSGn_w">
+            <ownedEnd xmi:id="_6UnktuO8EdyGNPaNHSGn_w" name="target" type="_6UnjKOO8EdyGNPaNHSGn_w" association="_6UnkteO8EdyGNPaNHSGn_w"/>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Association" xmi:id="_6Unkt-O8EdyGNPaNHSGn_w" memberEnd="_6UnjkOO8EdyGNPaNHSGn_w _6UnkuOO8EdyGNPaNHSGn_w">
+            <ownedEnd xmi:id="_6UnkuOO8EdyGNPaNHSGn_w" name="target" type="_6UnjjeO8EdyGNPaNHSGn_w" association="_6Unkt-O8EdyGNPaNHSGn_w"/>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Association" xmi:id="_6UnkueO8EdyGNPaNHSGn_w" memberEnd="_6UnjqOO8EdyGNPaNHSGn_w _6UnkuuO8EdyGNPaNHSGn_w">
+            <ownedEnd xmi:id="_6UnkuuO8EdyGNPaNHSGn_w" name="target" type="_6UnjpuO8EdyGNPaNHSGn_w" association="_6UnkueO8EdyGNPaNHSGn_w"/>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Association" xmi:id="_6Unku-O8EdyGNPaNHSGn_w" memberEnd="_6UnjqeO8EdyGNPaNHSGn_w _6UnkV-O8EdyGNPaNHSGn_w"/>
+          <packagedElement xmi:type="uml:Association" xmi:id="_6UnkvOO8EdyGNPaNHSGn_w" memberEnd="_6Unj2-O8EdyGNPaNHSGn_w _6UnkveO8EdyGNPaNHSGn_w">
+            <ownedEnd xmi:id="_6UnkveO8EdyGNPaNHSGn_w" name="target" type="_6Unj1-O8EdyGNPaNHSGn_w" association="_6UnkvOO8EdyGNPaNHSGn_w"/>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Association" xmi:id="_6UnkvuO8EdyGNPaNHSGn_w" memberEnd="_6UnkWeO8EdyGNPaNHSGn_w _6UnkdOO8EdyGNPaNHSGn_w"/>
+          <packagedElement xmi:type="uml:Association" xmi:id="_6Unkv-O8EdyGNPaNHSGn_w" memberEnd="_6UnkWuO8EdyGNPaNHSGn_w _6UnkwOO8EdyGNPaNHSGn_w">
+            <ownedEnd xmi:id="_6UnkwOO8EdyGNPaNHSGn_w" name="target" type="_6UnkVeO8EdyGNPaNHSGn_w" association="_6Unkv-O8EdyGNPaNHSGn_w"/>
+          </packagedElement>
+        </packagedElement>
+        <packagedElement xmi:type="uml:Package" xmi:id="_6UnkweO8EdyGNPaNHSGn_w" name="operation">
+          <packagedElement xmi:type="uml:Package" xmi:id="_6UnkwuO8EdyGNPaNHSGn_w" name="overlay">
+            <packagedElement xmi:type="uml:Class" xmi:id="_6Unkw-O8EdyGNPaNHSGn_w" name="SnapLineIntersector">
+              <generalization xmi:id="_6UnkxOO8EdyGNPaNHSGn_w" general="_6Unle-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnkxeO8EdyGNPaNHSGn_w" name="snapTolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UnkxuO8EdyGNPaNHSGn_w" name="computeIntersection" visibility="public">
+                <ownedParameter xmi:id="_6Unkx-O8EdyGNPaNHSGn_w" name="p" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnkyOO8EdyGNPaNHSGn_w" name="p1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnkyeO8EdyGNPaNHSGn_w" name="p2" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnkyuO8EdyGNPaNHSGn_w" name="computeIntersect" visibility="public">
+                <ownedParameter xmi:id="_6Unky-O8EdyGNPaNHSGn_w" name="p1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnkzOO8EdyGNPaNHSGn_w" name="p2" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnkzeO8EdyGNPaNHSGn_w" name="q1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnkzuO8EdyGNPaNHSGn_w" name="q2" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unkz-O8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unk0OO8EdyGNPaNHSGn_w" name="getParametrizedLineFactor" visibility="private">
+                <ownedParameter xmi:id="_6Unk0eO8EdyGNPaNHSGn_w" name="p" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk0uO8EdyGNPaNHSGn_w" name="A" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk0-O8EdyGNPaNHSGn_w" name="B" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk1OO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unk1eO8EdyGNPaNHSGn_w" name="computeCollinearIntersection" visibility="private">
+                <ownedParameter xmi:id="_6Unk1uO8EdyGNPaNHSGn_w" name="p1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk1-O8EdyGNPaNHSGn_w" name="p2" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk2OO8EdyGNPaNHSGn_w" name="q1" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk2eO8EdyGNPaNHSGn_w" name="q2" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk2uO8EdyGNPaNHSGn_w" name="return" type="_6UKs1uO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unk2-O8EdyGNPaNHSGn_w" name="isInSegmentEnvelopes" visibility="private">
+                <ownedParameter xmi:id="_6Unk3OO8EdyGNPaNHSGn_w" name="intPt" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk3eO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unk3uO8EdyGNPaNHSGn_w" name="isIntersection" visibility="public">
+                <ownedParameter xmi:id="_6Unk3-O8EdyGNPaNHSGn_w" name="pt" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk4OO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unk4eO8EdyGNPaNHSGn_w" name="isInteriorIntersection" visibility="public">
+                <ownedParameter xmi:id="_6Unk4uO8EdyGNPaNHSGn_w" name="inputLineIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk4-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unk5OO8EdyGNPaNHSGn_w" name="computeIntLineIndex" visibility="protected">
+                <ownedParameter xmi:id="_6Unk5eO8EdyGNPaNHSGn_w" name="segmentIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unk5uO8EdyGNPaNHSGn_w" name="getEdgeDistance" visibility="public">
+                <ownedParameter xmi:id="_6Unk5-O8EdyGNPaNHSGn_w" name="segmentIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk6OO8EdyGNPaNHSGn_w" name="intIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk6eO8EdyGNPaNHSGn_w" name="return" type="_6UKs1OO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6Unk6uO8EdyGNPaNHSGn_w" name="SnappingOverlayOperation">
+              <generalization xmi:id="_6Unk6-O8EdyGNPaNHSGn_w" general="_6UnlfOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unk7OO8EdyGNPaNHSGn_w" name="ptLocator" visibility="protected" type="_6Uni4eO8EdyGNPaNHSGn_w" association="_6UnlgeO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unk7eO8EdyGNPaNHSGn_w" name="geomFact" visibility="protected" type="_6UUiR-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unk7uO8EdyGNPaNHSGn_w" name="resultGeom" visibility="protected" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unk7-O8EdyGNPaNHSGn_w" name="li" visibility="protected" type="_6UnkquO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unk8OO8EdyGNPaNHSGn_w" name="snapTolerance" visibility="protected" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unk8eO8EdyGNPaNHSGn_w" name="graph" visibility="protected" type="_6Unj1-O8EdyGNPaNHSGn_w" association="_6Unlg-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unk8uO8EdyGNPaNHSGn_w" name="arg" visibility="protected" type="_6UnjKOO8EdyGNPaNHSGn_w" association="_6UnlheO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unk8-O8EdyGNPaNHSGn_w" name="edgeList" visibility="protected" type="_6UnjjeO8EdyGNPaNHSGn_w" association="_6Unlh-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unk9OO8EdyGNPaNHSGn_w" name="resultPolyList" visibility="protected" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unk9eO8EdyGNPaNHSGn_w" name="resultLineList" visibility="protected" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unk9uO8EdyGNPaNHSGn_w" name="resultPointList" visibility="protected" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unk9-O8EdyGNPaNHSGn_w" name="isReused" visibility="private" type="_6UKs0eO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6Unk-OO8EdyGNPaNHSGn_w" name="overlayOp" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6Unk-eO8EdyGNPaNHSGn_w" name="geom0" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk-uO8EdyGNPaNHSGn_w" name="geom1" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk--O8EdyGNPaNHSGn_w" name="opCode" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk_OO8EdyGNPaNHSGn_w" name="tolerance" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6Unk_eO8EdyGNPaNHSGn_w" name="return" type="_6UUrO-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6Unk_uO8EdyGNPaNHSGn_w" name="getResultGeometry" visibility="public">
+                <ownedParameter xmi:id="_6Unk_-O8EdyGNPaNHSGn_w" name="funcCode" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlAOO8EdyGNPaNHSGn_w" name="return" type="_6UUrO-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlAeO8EdyGNPaNHSGn_w" name="getGraph" visibility="public">
+                <ownedParameter xmi:id="_6UnlAuO8EdyGNPaNHSGn_w" name="return" type="_6UnksOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlA-O8EdyGNPaNHSGn_w" name="setSecondGeometry" visibility="public">
+                <ownedParameter xmi:id="_6UnlBOO8EdyGNPaNHSGn_w" name="geometry" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlBeO8EdyGNPaNHSGn_w" name="computeOverlay" visibility="private">
+                <ownedParameter xmi:id="_6UnlBuO8EdyGNPaNHSGn_w" name="opCode" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlB-O8EdyGNPaNHSGn_w" name="isResultOfOp" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UnlCOO8EdyGNPaNHSGn_w" name="loc0" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlCeO8EdyGNPaNHSGn_w" name="loc1" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlCuO8EdyGNPaNHSGn_w" name="opCode" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlC-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlDOO8EdyGNPaNHSGn_w" name="isResultOfOp" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UnlDeO8EdyGNPaNHSGn_w" name="label" type="_6Unks-O8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlDuO8EdyGNPaNHSGn_w" name="opCode" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlD-O8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlEOO8EdyGNPaNHSGn_w" name="checkLabelLocation" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UnlEeO8EdyGNPaNHSGn_w" name="loc0" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlEuO8EdyGNPaNHSGn_w" name="loc1" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlE-O8EdyGNPaNHSGn_w" name="opCode" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlFOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlFeO8EdyGNPaNHSGn_w" name="insertUniqueEdges" visibility="private">
+                <ownedParameter xmi:id="_6UnlFuO8EdyGNPaNHSGn_w" name="edges" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlF-O8EdyGNPaNHSGn_w" name="insertUniqueEdge" visibility="protected">
+                <ownedParameter xmi:id="_6UnlGOO8EdyGNPaNHSGn_w" name="e" type="_6UnkqeO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlGeO8EdyGNPaNHSGn_w" name="computeLabelsFromDepths" visibility="private"/>
+              <ownedOperation xmi:id="_6UnlGuO8EdyGNPaNHSGn_w" name="replaceCollapsedEdges" visibility="private"/>
+              <ownedOperation xmi:id="_6UnlG-O8EdyGNPaNHSGn_w" name="copyPoints" visibility="private">
+                <ownedParameter xmi:id="_6UnlHOO8EdyGNPaNHSGn_w" name="argIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlHeO8EdyGNPaNHSGn_w" name="computeLabelling" visibility="private"/>
+              <ownedOperation xmi:id="_6UnlHuO8EdyGNPaNHSGn_w" name="mergeSymLabels" visibility="private"/>
+              <ownedOperation xmi:id="_6UnlH-O8EdyGNPaNHSGn_w" name="updateNodeLabelling" visibility="private"/>
+              <ownedOperation xmi:id="_6UnlIOO8EdyGNPaNHSGn_w" name="labelIncompleteNodes" visibility="private"/>
+              <ownedOperation xmi:id="_6UnlIeO8EdyGNPaNHSGn_w" name="labelIncompleteNode" visibility="private">
+                <ownedParameter xmi:id="_6UnlIuO8EdyGNPaNHSGn_w" name="n" type="_6UnijOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlI-O8EdyGNPaNHSGn_w" name="targetIndex" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlJOO8EdyGNPaNHSGn_w" name="findResultAreaEdges" visibility="private">
+                <ownedParameter xmi:id="_6UnlJeO8EdyGNPaNHSGn_w" name="opCode" type="_6UKs1uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlJuO8EdyGNPaNHSGn_w" name="cancelDuplicateResultEdges" visibility="private"/>
+              <ownedOperation xmi:id="_6UnlJ-O8EdyGNPaNHSGn_w" name="isCoveredByLA" visibility="public">
+                <ownedParameter xmi:id="_6UnlKOO8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlKeO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlKuO8EdyGNPaNHSGn_w" name="isCoveredByA" visibility="public">
+                <ownedParameter xmi:id="_6UnlK-O8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlLOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlLeO8EdyGNPaNHSGn_w" name="isCovered" visibility="private">
+                <ownedParameter xmi:id="_6UnlLuO8EdyGNPaNHSGn_w" name="coord" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlL-O8EdyGNPaNHSGn_w" name="geomList" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlMOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlMeO8EdyGNPaNHSGn_w" name="computeGeometry" visibility="private">
+                <ownedParameter xmi:id="_6UnlMuO8EdyGNPaNHSGn_w" name="resultPointList" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlM-O8EdyGNPaNHSGn_w" name="resultLineList" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlNOO8EdyGNPaNHSGn_w" name="resultPolyList" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlNeO8EdyGNPaNHSGn_w" name="return" type="_6UUrO-O8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlNuO8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UnlN-O8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UnlOOO8EdyGNPaNHSGn_w" name="SnapPolygonBuilder">
+              <generalization xmi:id="_6UnlOeO8EdyGNPaNHSGn_w" general="_6UnlfeO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnlOuO8EdyGNPaNHSGn_w" name="geometryFactory" visibility="private" type="_6UUiR-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnlO-O8EdyGNPaNHSGn_w" name="cga" visibility="private" type="_6UnjBeO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnlPOO8EdyGNPaNHSGn_w" name="shellList" visibility="private" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UnlPeO8EdyGNPaNHSGn_w" name="add" visibility="public">
+                <ownedParameter xmi:id="_6UnlPuO8EdyGNPaNHSGn_w" name="graph" type="_6Unj1-O8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlP-O8EdyGNPaNHSGn_w" name="add" visibility="public">
+                <ownedParameter xmi:id="_6UnlQOO8EdyGNPaNHSGn_w" name="dirEdges" type="_6Ud79eO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlQeO8EdyGNPaNHSGn_w" name="nodes" type="_6Ud79eO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlQuO8EdyGNPaNHSGn_w" name="getPolygons" visibility="public">
+                <ownedParameter xmi:id="_6UnlQ-O8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlROO8EdyGNPaNHSGn_w" name="buildMaximalEdgeRings" visibility="private">
+                <ownedParameter xmi:id="_6UnlReO8EdyGNPaNHSGn_w" name="dirEdges" type="_6Ud79eO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlRuO8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlR-O8EdyGNPaNHSGn_w" name="buildMinimalEdgeRings" visibility="private">
+                <ownedParameter xmi:id="_6UnlSOO8EdyGNPaNHSGn_w" name="maxEdgeRings" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlSeO8EdyGNPaNHSGn_w" name="shellList" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlSuO8EdyGNPaNHSGn_w" name="freeHoleList" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlS-O8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlTOO8EdyGNPaNHSGn_w" name="findShell" visibility="private">
+                <ownedParameter xmi:id="_6UnlTeO8EdyGNPaNHSGn_w" name="minEdgeRings" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlTuO8EdyGNPaNHSGn_w" name="return" type="_6UnlfuO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlT-O8EdyGNPaNHSGn_w" name="placePolygonHoles" visibility="private">
+                <ownedParameter xmi:id="_6UnlUOO8EdyGNPaNHSGn_w" name="shell" type="_6UnlfuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlUeO8EdyGNPaNHSGn_w" name="minEdgeRings" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlUuO8EdyGNPaNHSGn_w" name="sortShellsAndHoles" visibility="private">
+                <ownedParameter xmi:id="_6UnlU-O8EdyGNPaNHSGn_w" name="edgeRings" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlVOO8EdyGNPaNHSGn_w" name="shellList" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlVeO8EdyGNPaNHSGn_w" name="freeHoleList" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlVuO8EdyGNPaNHSGn_w" name="placeFreeHoles" visibility="private">
+                <ownedParameter xmi:id="_6UnlV-O8EdyGNPaNHSGn_w" name="shellList" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlWOO8EdyGNPaNHSGn_w" name="freeHoleList" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlWeO8EdyGNPaNHSGn_w" name="findEdgeRingContaining" visibility="private">
+                <ownedParameter xmi:id="_6UnlWuO8EdyGNPaNHSGn_w" name="testEr" type="_6UnlfuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlW-O8EdyGNPaNHSGn_w" name="shellList" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlXOO8EdyGNPaNHSGn_w" name="return" type="_6UnlfuO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlXeO8EdyGNPaNHSGn_w" name="computePolygons" visibility="private">
+                <ownedParameter xmi:id="_6UnlXuO8EdyGNPaNHSGn_w" name="shellList" type="_6UnhjOO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlX-O8EdyGNPaNHSGn_w" name="return" type="_6UnhjOO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnlYOO8EdyGNPaNHSGn_w" name="containsPoint" visibility="public">
+                <ownedParameter xmi:id="_6UnlYeO8EdyGNPaNHSGn_w" name="p" type="_6UUiSuO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlYuO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UnlY-O8EdyGNPaNHSGn_w" name="NonRobustSnapLineIntersector">
+              <generalization xmi:id="_6UnlZOO8EdyGNPaNHSGn_w" general="_6Unlf-O8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UnlZeO8EdyGNPaNHSGn_w" name="isSameSignAndNonZero" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6UnlZuO8EdyGNPaNHSGn_w" name="a" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlZ-O8EdyGNPaNHSGn_w" name="b" type="_6UKs1OO8EdyGNPaNHSGn_w"/>
+                <ownedParameter xmi:id="_6UnlaOO8EdyGNPaNHSGn_w" name="return" type="_6UKs0eO8EdyGNPaNHSGn_w" direction="return"/>
+              </ownedOperation>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Class" xmi:id="_6UnlaeO8EdyGNPaNHSGn_w" name="SnappingOverlayOperationTest">
+              <generalization xmi:id="_6UnlauO8EdyGNPaNHSGn_w" general="_6UnhoeO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unla-O8EdyGNPaNHSGn_w" name="a" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnlbOO8EdyGNPaNHSGn_w" name="b" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnlbeO8EdyGNPaNHSGn_w" name="factory" type="_6UUiR-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnlbuO8EdyGNPaNHSGn_w" name="reader" type="_6UnlgOO8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unlb-O8EdyGNPaNHSGn_w" name="c" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnlcOO8EdyGNPaNHSGn_w" name="d" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnlceO8EdyGNPaNHSGn_w" name="f" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnlcuO8EdyGNPaNHSGn_w" name="g" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6Unlc-O8EdyGNPaNHSGn_w" name="h" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnldOO8EdyGNPaNHSGn_w" name="pol1" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              <ownedAttribute xmi:id="_6UnldeO8EdyGNPaNHSGn_w" name="pol2" type="_6UUrO-O8EdyGNPaNHSGn_w"/>
+              <ownedOperation xmi:id="_6UnlduO8EdyGNPaNHSGn_w" name="main" visibility="public" isStatic="true">
+                <ownedParameter xmi:id="_6Unld-O8EdyGNPaNHSGn_w" name="args" type="_6UKs5uO8EdyGNPaNHSGn_w"/>
+              </ownedOperation>
+              <ownedOperation xmi:id="_6UnleOO8EdyGNPaNHSGn_w" name="setUp" visibility="protected"/>
+              <ownedOperation xmi:id="_6UnleeO8EdyGNPaNHSGn_w" name="tearDown" visibility="protected"/>
+              <ownedOperation xmi:id="_6UnleuO8EdyGNPaNHSGn_w" name="testSnappingOverlayOperation" visibility="public"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6Unle-O8EdyGNPaNHSGn_w" name="RobustLineIntersector"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnlfOO8EdyGNPaNHSGn_w" name="OverlayOp"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnlfeO8EdyGNPaNHSGn_w" name="PolygonBuilder"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnlfuO8EdyGNPaNHSGn_w" name="EdgeRing"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6Unlf-O8EdyGNPaNHSGn_w" name="NonRobustLineIntersector"/>
+            <packagedElement xmi:type="uml:DataType" xmi:id="_6UnlgOO8EdyGNPaNHSGn_w" name="com.vividsolutions.jts.io.WKTReader"/>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6UnlgeO8EdyGNPaNHSGn_w" memberEnd="_6Unk7OO8EdyGNPaNHSGn_w _6UnlguO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnlguO8EdyGNPaNHSGn_w" name="target" type="_6Unk6uO8EdyGNPaNHSGn_w" association="_6UnlgeO8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6Unlg-O8EdyGNPaNHSGn_w" memberEnd="_6Unk8eO8EdyGNPaNHSGn_w _6UnlhOO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnlhOO8EdyGNPaNHSGn_w" name="target" type="_6Unk6uO8EdyGNPaNHSGn_w" association="_6Unlg-O8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6UnlheO8EdyGNPaNHSGn_w" memberEnd="_6Unk8uO8EdyGNPaNHSGn_w _6UnlhuO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnlhuO8EdyGNPaNHSGn_w" name="target" type="_6Unk6uO8EdyGNPaNHSGn_w" association="_6UnlheO8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+            <packagedElement xmi:type="uml:Association" xmi:id="_6Unlh-O8EdyGNPaNHSGn_w" memberEnd="_6Unk8-O8EdyGNPaNHSGn_w _6UnliOO8EdyGNPaNHSGn_w">
+              <ownedEnd xmi:id="_6UnliOO8EdyGNPaNHSGn_w" name="target" type="_6Unk6uO8EdyGNPaNHSGn_w" association="_6Unlh-O8EdyGNPaNHSGn_w"/>
+            </packagedElement>
+          </packagedElement>
+          <packagedElement xmi:type="uml:Class" xmi:id="_6UnlieO8EdyGNPaNHSGn_w" name="JtsTests">
+            <ownedOperation xmi:id="_6UnliuO8EdyGNPaNHSGn_w" name="suite" visibility="public" isStatic="true">
+              <ownedParameter xmi:id="_6Unli-O8EdyGNPaNHSGn_w" name="return" type="_6UnhouO8EdyGNPaNHSGn_w" direction="return"/>
+            </ownedOperation>
+          </packagedElement>
+        </packagedElement>
+      </packagedElement>
+    </packagedElement>
+  </packagedElement>
+</uml:Model>

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/docs/modelFmap.uml
___________________________________________________________________
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/pom.xml
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/pom.xml	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/pom.xml	(revision 38288)
@@ -0,0 +1,408 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+	<artifactId>org.gvsig.fmap.geometry</artifactId>
+	<packaging>jar</packaging>
+	<version>2.0-SNAPSHOT</version>
+	<name>libFMap_geometries</name>
+	<parent>
+		<groupId>org.gvsig</groupId>
+		<artifactId>gvsig-base-library-pom</artifactId>
+		<version>2.0-SNAPSHOT</version>
+	</parent>	
+	<dependencies>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.tools.lib</artifactId>
+            <scope>compile</scope>
+		</dependency>			
+		<dependency>
+			<groupId>com.vividsolutions</groupId>
+			<artifactId>jts</artifactId>
+            <scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.tools.lib</artifactId>
+			<type>test-jar</type>
+            <scope>test</scope>
+		</dependency>		
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.projection</artifactId>
+            <scope>compile</scope>
+        </dependency>   
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.projection</artifactId>
+			<classifier>cresques-impl</classifier>
+			<scope>test</scope>
+		</dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <scope>compile</scope>
+        </dependency>
+		<dependency>
+			<groupId>org.opengis</groupId>
+			<artifactId>geoapi</artifactId>			
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.geotools</groupId>
+			<artifactId>gt2-legacy</artifactId>			
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.geotools</groupId>
+			<artifactId>gt2-main</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>geojava</groupId>
+			<artifactId>geojava</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>javax.media</groupId>
+			<artifactId>jai_core</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>javax.media</groupId>
+			<artifactId>jai_codec</artifactId>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+
+	<properties>
+		<build-dir>${basedir}/../build</build-dir>
+        <eclipse.project.name>libFMap_geometries</eclipse.project.name>
+	</properties>
+
+	<build>
+		<sourceDirectory>src</sourceDirectory>
+		<testSourceDirectory>src-test</testSourceDirectory>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>1.4</source>
+                    <target>1.4</target>
+                </configuration>
+            </plugin>        
+        </plugins>
+	</build>
+
+	<profiles>
+		<profile>
+			<id>se</id>
+			<activation>
+				<activeByDefault>true</activeByDefault>
+			</activation>
+			<dependencies>
+				<dependency>
+					<groupId>org.gvsig</groupId>
+					<artifactId>org.gvsig.jdk.v1_6</artifactId>
+					<version>1.0.0-SNAPSHOT</version>
+				</dependency>
+			</dependencies>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-jar-plugin</artifactId>
+						<configuration>
+							<excludes>
+								<exclude>**/operation/*/*</exclude>
+								<exclude>**/impl/**</exclude>
+							</excludes>
+						</configuration>
+						<executions>
+							<!--
+								Generates a jar file only with the geometries API TODO: make a good
+								configuration of excludes and includes, when the api and implementation
+								of the geometries library would be performed. <execution> <id>api</id>
+								<phase>package</phase> <goals> <goal>jar</goal> </goals> <configuration>
+								<classifier>api</classifier> <excludes>
+								<exclude>**/operation/*/*</exclude> </excludes> </configuration>
+								</execution>
+							-->
+							<!--
+								Generates a jar file only with the geometries implementation
+							-->
+							<execution>
+								<id>impl</id>
+								<phase>package</phase>
+								<goals>
+									<goal>jar</goal>
+								</goals>
+								<configuration>
+									<classifier>impl</classifier>
+									<excludes>
+										<exclude>**/operation/impl/**</exclude>
+									</excludes>
+									<includes>
+										<include>**/impl/**</include>
+									</includes>
+								</configuration>
+							</execution>
+							<!--
+								Generates a jar file only with the geometries operations
+							-->
+							<execution>
+								<id>operation</id>
+								<phase>package</phase>
+								<goals>
+									<goal>jar</goal>
+								</goals>
+								<configuration>
+									<classifier>operation</classifier>
+									<excludes>
+										<exclude>NONE</exclude>
+									</excludes>
+									<includes>
+										<include>**/operation/*/*</include>
+									</includes>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<artifactId>maven-antrun-plugin</artifactId>
+						<executions>
+							<execution>
+								<id>services</id>
+								<phase>package</phase>
+								<goals>
+									<goal>run</goal>
+								</goals>
+								<configuration>
+									<tasks>
+										<jar destfile="${project.build.directory}/${project.build.finalName}.jar"
+											update="true">
+											<fileset dir="${basedir}/resources/api" />
+										</jar>
+										<jar destfile="${project.build.directory}/${project.build.finalName}-impl.jar"
+											update="true">
+											<fileset dir="${basedir}/resources/impl" />
+										</jar>
+										<jar destfile="${project.build.directory}/${project.build.finalName}-operation.jar"
+											update="true">
+											<fileset dir="${basedir}/resources/operation" />
+										</jar>
+									</tasks>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-surefire-plugin</artifactId>
+						<configuration>
+							<additionalClasspathElements>
+								<additionalClasspathElement>${basedir}/resources/api</additionalClasspathElement>
+								<additionalClasspathElement>${basedir}/resources/impl</additionalClasspathElement>
+								<additionalClasspathElement>${basedir}/resources/operation</additionalClasspathElement>
+							</additionalClasspathElements>
+						</configuration>
+					</plugin>
+
+				</plugins>
+			</build>
+		</profile>
+
+		<profile>
+			<id>cdc</id>
+			<activation>
+				<activeByDefault>false</activeByDefault>
+			</activation>
+			<dependencies>
+				<dependency>
+					<groupId>org.gvsig</groupId>
+					<artifactId>org.gvsig.jdk.v1_4</artifactId>
+					<version>1.0.0-SNAPSHOT</version>
+				</dependency>
+			</dependencies>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-compiler-plugin</artifactId>
+						<configuration>
+							<excludes>
+								<exclude>**/operation/fromwkb/*</exclude>
+								<exclude>**/operation/towkb/*</exclude>
+								<exclude>**/operation/impl/*</exclude>
+							</excludes>
+
+							<testExcludes>
+								<exclude>**/fmap/geom/*</exclude>
+								<exclude>**/geom/operation/**</exclude>
+							</testExcludes>
+
+						</configuration>
+					</plugin>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-javadoc-plugin</artifactId>
+					</plugin>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-jar-plugin</artifactId>
+						<configuration>
+
+							<includes>
+								<include>**/**</include>
+							</includes>
+							<excludes>
+								<exclude>**/operation/fromwkb/*</exclude>
+								<exclude>**/operation/towkb/*</exclude>
+								<exclude>**/operation/impl/*</exclude>
+							</excludes>
+						</configuration>
+						<executions>
+							<execution>
+								<id>impl</id>
+								<phase>package</phase>
+								<goals>
+									<goal>jar</goal>
+								</goals>
+								<configuration>
+									<classifier>impl</classifier>
+									<includes>
+										<include>**/impl/**</include>
+									</includes>
+									<excludes>
+										<exclude>**/operation/impl/**</exclude>
+									</excludes>
+								</configuration>
+							</execution>
+
+							<execution>
+								<id>operation</id>
+								<phase>package</phase>
+								<goals>
+									<goal>jar</goal>
+								</goals>
+								<configuration>
+									<classifier>operation</classifier>
+									<includes>
+										<include>**/operation/*/*</include>
+									</includes>
+									<excludes>
+										<exclude>**/operation/fromwkb/*</exclude>
+										<exclude>**/operation/towkb/*</exclude>
+									</excludes>
+								</configuration>
+							</execution>
+
+						</executions>
+					</plugin>
+					
+					<plugin>
+						<artifactId>maven-antrun-plugin</artifactId>
+						<executions>
+							<execution>
+								<id>services</id>
+								<phase>package</phase>
+								<goals>
+									<goal>run</goal>
+								</goals>
+								<configuration>
+									<tasks>
+										<jar destfile="${project.build.directory}/${project.build.finalName}.jar"
+											update="true">
+											<fileset dir="${basedir}/resources/api" />
+										</jar>
+										<jar destfile="${project.build.directory}/${project.build.finalName}-impl.jar"
+											update="true">
+											<fileset dir="${basedir}/resources/impl" />
+										</jar>
+									</tasks>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-surefire-plugin</artifactId>
+						<configuration>
+							<additionalClasspathElements>
+								<additionalClasspathElement>${basedir}/resources/api</additionalClasspathElement>
+								<additionalClasspathElement>${basedir}/resources/impl</additionalClasspathElement>
+							</additionalClasspathElements>
+						</configuration>
+					</plugin>
+					
+				</plugins>
+			</build>
+		</profile>
+		<profile>
+			<id>eclipse-project</id>
+			<build>
+				<defaultGoal>antrun:run</defaultGoal>
+				<plugins>
+					<plugin>
+						<artifactId>maven-antrun-plugin</artifactId>
+						<configuration>
+							<tasks>
+								<ant antfile="${build-dir}/ant-tasks/eclipse-tasks.xml"
+									target="eclipse.all"/>
+							</tasks>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>				
+		</profile>		
+	</profiles>
+	<reporting>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-javadoc-plugin</artifactId>
+				<reportSets>
+					<reportSet>
+						<id>api</id>
+						<configuration>
+							<subpackages>org.gvsig.fmap.geom</subpackages>
+							<excludePackageNames>org.gvsig.fmap.geom.operation:org.gvsig.fmap.geom.impl:org.gvsig.fmap.geom.aggregate.impl:org.gvsig.fmap.geom.primitive.impl:org.gvsig.fmap.geom.type.impl</excludePackageNames>
+							<name>JavaDoc - API</name>
+							<destDir>api</destDir>
+						</configuration>
+						<reports>
+							<report>javadoc</report>
+						</reports>
+					</reportSet>
+					<reportSet>
+						<id>operation</id>
+						<configuration>
+							<subpackages>org.gvsig.fmap.geom.operation</subpackages>
+							<name>JavaDoc - Geometry operations</name>
+							<destDir>operation</destDir>
+						</configuration>
+						<reports>
+							<report>javadoc</report>
+						</reports>
+					</reportSet>
+					<reportSet>
+						<id>impl</id>
+						<configuration>
+							<subpackages>org.gvsig.fmap.geom.impl:org.gvsig.fmap.geom.aggregate.impl:org.gvsig.fmap.geom.primitive.impl:org.gvsig.fmap.geom.type.impl</subpackages>
+							<name>JavaDoc - Default implementation</name>
+							<destDir>impl</destDir>
+						</configuration>
+						<reports>
+							<report>javadoc</report>
+						</reports>
+					</reportSet>
+				</reportSets>
+			</plugin>
+		</plugins>
+	</reporting>
+</project>
\ No newline at end of file
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/resources/operation/META-INF/services/org.gvsig.tools.library.Library
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/resources/operation/META-INF/services/org.gvsig.tools.library.Library	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/resources/operation/META-INF/services/org.gvsig.tools.library.Library	(revision 38288)
@@ -0,0 +1 @@
+org.gvsig.fmap.geom.operation.impl.DefaultGeometryOperationLibrary
\ No newline at end of file
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/resources/impl/META-INF/services/org.gvsig.tools.library.Library
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/resources/impl/META-INF/services/org.gvsig.tools.library.Library	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/resources/impl/META-INF/services/org.gvsig.tools.library.Library	(revision 38288)
@@ -0,0 +1 @@
+org.gvsig.fmap.geom.impl.DefaultGeometryLibrary
\ No newline at end of file
Index: tags/v2_0_0_Build_2047/libraries/libFMap_geometries/resources/api/META-INF/services/org.gvsig.tools.library.Library
===================================================================
--- tags/v2_0_0_Build_2047/libraries/libFMap_geometries/resources/api/META-INF/services/org.gvsig.tools.library.Library	(revision 0)
+++ tags/v2_0_0_Build_2047/libraries/libFMap_geometries/resources/api/META-INF/services/org.gvsig.tools.library.Library	(revision 38288)
@@ -0,0 +1 @@
+org.gvsig.fmap.geom.GeometryLibrary
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/libraries/libFMap_geometries
___________________________________________________________________
Added: svn:ignore
   + .classpath 
.project 
.settings 
maven-eclipse.xml
target
bin
hs_err_pid*
.externalToolBuilders
.settings
.classpath
.project


