Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDataManager.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDataManager.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDataManager.java	(revision 43040)
@@ -20,6 +20,7 @@
 import org.gvsig.fmap.dal.DataStoreParameters;
 import org.gvsig.fmap.dal.DataStoreProviderFactory;
 import org.gvsig.fmap.dal.DataTypes;
+import org.gvsig.fmap.dal.ExpressionBuilder;
 import org.gvsig.fmap.dal.NewDataStoreParameters;
 import org.gvsig.fmap.dal.OpenErrorHandler;
 import org.gvsig.fmap.dal.Register;
@@ -36,6 +37,7 @@
 import org.gvsig.fmap.dal.feature.impl.FeatureStoreFactory;
 import org.gvsig.fmap.dal.feature.paging.FeaturePagingHelper;
 import org.gvsig.fmap.dal.feature.paging.impl.FeaturePagingHelperImpl;
+import org.gvsig.fmap.dal.feature.spi.ExpressionBuilderBase;
 import org.gvsig.fmap.dal.feature.spi.FeatureStoreProvider;
 import org.gvsig.fmap.dal.feature.spi.FeatureStoreProviderServices;
 import org.gvsig.fmap.dal.feature.spi.index.FeatureIndexProvider;
@@ -659,4 +661,9 @@
         x = reourceLoader.getClass().getResourceAsStream(name);
         return x;
     }
+    
+    @Override
+    public ExpressionBuilder createExpressionBuilder() {
+        return new ExpressionBuilderBase();
+    }
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DataManager.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DataManager.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DataManager.java	(revision 43040)
@@ -382,4 +382,14 @@
     public Register getServerExplorerRegister();
 
     public Register getFeatureIndexRegister();
+
+    /**
+     * Creates a default ExpressionBuilder.
+     * 
+     * This ExpressionBuilder is not dependent on a data source, 
+     * and is not advisable to use it.
+     * 
+     * @return the ExpressionBuilder
+     */
+    public ExpressionBuilder createExpressionBuilder();
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/spi/DataManagerProviderServices.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/spi/DataManagerProviderServices.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/spi/DataManagerProviderServices.java	(revision 43040)
@@ -29,6 +29,7 @@
 import org.gvsig.fmap.dal.DataStoreFactory_v2_4;
 import org.gvsig.fmap.dal.DataStoreParameters;
 import org.gvsig.fmap.dal.DataStoreProviderFactory;
+import org.gvsig.fmap.dal.ExpressionBuilder;
 import org.gvsig.fmap.dal.Register;
 import org.gvsig.fmap.dal.exception.InitializeException;
 import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
@@ -147,5 +148,5 @@
      * @return
      */
     public InputStream getResourceAsStream(Object resourcesLoader, String name);
-
+    
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/EqualsGeometryEvaluator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/EqualsGeometryEvaluator.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/EqualsGeometryEvaluator.java	(revision 43040)
@@ -42,6 +42,28 @@
     private final ExpressionBuilder builder;
     private final IProjection projection;
 
+    /**
+     * @param geometry
+     * @param projection
+     * @param featureType
+     * @param geomName
+     * @deprecated  use @{link org.gvsig.fmap.mapcontext.layers.vectorial.SpatialEvaluatorsFactory}
+     */
+    public EqualsGeometryEvaluator(
+            Geometry geometry,
+            IProjection projection,
+            FeatureType featureType,
+            String geomName
+    ) {
+        this(
+                geometry, 
+                projection, 
+                featureType, 
+                geomName, 
+                SpatialEvaluatorsFactory.getInstance().createBuilder()
+        );
+    }   
+    
     EqualsGeometryEvaluator(
             Geometry geometry,
             IProjection projection,
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/OverlapsGeometryEvaluator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/OverlapsGeometryEvaluator.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/OverlapsGeometryEvaluator.java	(revision 43040)
@@ -47,6 +47,28 @@
     private final ExpressionBuilder builder;
     private final IProjection projection;
 
+    /**
+     * @param geometry
+     * @param projection
+     * @param featureType
+     * @param geomName
+     * @deprecated  use @{link org.gvsig.fmap.mapcontext.layers.vectorial.SpatialEvaluatorsFactory}
+     */
+    public OverlapsGeometryEvaluator(
+            Geometry geometry,
+            IProjection projection,
+            FeatureType featureType,
+            String geomName
+    ) {
+        this(
+                geometry, 
+                projection, 
+                featureType, 
+                geomName, 
+                SpatialEvaluatorsFactory.getInstance().createBuilder()
+        );
+    }   
+    
     OverlapsGeometryEvaluator(
             Geometry geometry,
             IProjection projection,
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/SpatialEvaluatorsFactory.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/SpatialEvaluatorsFactory.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/SpatialEvaluatorsFactory.java	(revision 43040)
@@ -1,11 +1,12 @@
 package org.gvsig.fmap.mapcontext.layers.vectorial;
 
 import org.cresques.cts.IProjection;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
 import org.gvsig.fmap.dal.exception.DataException;
 import org.gvsig.fmap.dal.feature.FeatureStore;
 import org.gvsig.fmap.dal.feature.FeatureType;
 import org.gvsig.fmap.dal.ExpressionBuilder;
-import org.gvsig.fmap.dal.feature.FeatureQuery;
 import org.gvsig.fmap.geom.Geometry;
 import org.gvsig.fmap.geom.primitive.Envelope;
 import org.gvsig.tools.evaluator.Evaluator;
@@ -22,6 +23,12 @@
         
     }
     
+    public ExpressionBuilder createBuilder() {
+        DataManager manager = DALLocator.getDataManager();
+        ExpressionBuilder builder = manager.createExpressionBuilder();
+        return builder;
+    }
+    
     public Evaluator intersects(
             Geometry geometry,
             IProjection projection, 
@@ -79,7 +86,7 @@
             String geomName,
             ExpressionBuilder builder
         ){
-        return new ContainsEnvelopeEvaluator(envelope, projection, featureType, geomName);
+        return new ContainsEnvelopeEvaluator(envelope, projection, featureType, geomName, builder);
     }
 
     public Evaluator contains(
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/ContainsEnvelopeEvaluator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/ContainsEnvelopeEvaluator.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/ContainsEnvelopeEvaluator.java	(revision 43040)
@@ -3,35 +3,32 @@
  *
  * Copyright (C) 2007-2013 gvSIG Association.
  *
- * 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 3
- * of the License, or (at your option) any later version.
+ * 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 3 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.
+ * 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.
+ * 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.
  *
- * For any additional information, do not hesitate to contact us
- * at info AT gvsig.com, or visit our website www.gvsig.com.
+ * For any additional information, do not hesitate to contact us at info AT
+ * gvsig.com, or visit our website www.gvsig.com.
  */
 package org.gvsig.fmap.mapcontext.layers.vectorial;
 
 import org.cresques.cts.IProjection;
+import org.gvsig.fmap.dal.ExpressionBuilder;
 
-import org.gvsig.fmap.dal.exception.DataEvaluatorRuntimeException;
 import org.gvsig.fmap.dal.feature.Feature;
 import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
 import org.gvsig.fmap.dal.feature.FeatureType;
 import org.gvsig.fmap.geom.Geometry;
-import org.gvsig.fmap.geom.operation.GeometryOperationException;
-import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
 import org.gvsig.fmap.geom.primitive.Envelope;
 import org.gvsig.tools.evaluator.AbstractEvaluator;
 import org.gvsig.tools.evaluator.EvaluatorData;
@@ -39,25 +36,51 @@
 
 public class ContainsEnvelopeEvaluator extends AbstractEvaluator {
 
-	private Envelope envelope;
-	private String geomName;
-	private Envelope envelopeTrans;
-	private boolean isDefault;
-	private String srs;
-	private String envelopeWKT;
+    private final Envelope envelope;
+    private final String geomName;
+    private final Envelope envelopeTrans;
+    private final boolean isDefault;
+    private final ExpressionBuilder builder;
+    private final IProjection projection;
 
-	ContainsEnvelopeEvaluator(Envelope envelope,
-			IProjection envelopeProjection, FeatureType featureType,
-			String geomName) {
-		FeatureAttributeDescriptor fad = (FeatureAttributeDescriptor) featureType
-				.get(geomName);
-
-		this.isDefault = featureType.getDefaultGeometryAttributeName().equals(
-				geomName);
-		this.envelope = envelope;
-		// this.srs = envelopeProjection.getAbrev();
-		// this.projection=CRSFactory.getCRS(fad.getSRS());
-		// this.envelopeProjection=envelopeProjection;
+    /**
+     * @deprecated  use @{link org.gvsig.fmap.mapcontext.layers.vectorial.SpatialEvaluatorsFactory}
+     * @param envelope
+     * @param envelopeProjection
+     * @param featureType
+     * @param geomName
+     */
+    public ContainsEnvelopeEvaluator(
+            Envelope envelope,
+            IProjection envelopeProjection,
+            FeatureType featureType,
+            String geomName
+        ) {
+        this(
+                envelope, 
+                envelopeProjection, 
+                featureType, 
+                geomName, 
+                SpatialEvaluatorsFactory.getInstance().createBuilder()
+        );
+    }
+    
+    ContainsEnvelopeEvaluator(
+            Envelope envelope,
+            IProjection envelopeProjection,
+            FeatureType featureType,
+            String geomName,
+            ExpressionBuilder builder
+        ) {
+        FeatureAttributeDescriptor fad = (FeatureAttributeDescriptor) featureType
+                .get(geomName);
+        this.isDefault = featureType.getDefaultGeometryAttributeName().equals(geomName);
+        this.projection = envelopeProjection;
+        this.builder = builder;
+        this.envelope = envelope;
+        // this.srs = envelopeProjection.getAbrev();
+        // this.projection=CRSFactory.getCRS(fad.getSRS());
+        // this.envelopeProjection=envelopeProjection;
 //		ICoordTrans ct = null;
 //		if (!this.srs.equals(fad.getSRS())) { // FIXME comparaci�n
 //			ct = envelopeProjection.getCT(fad.getSRS());
@@ -65,46 +88,43 @@
 //		if (ct != null) {
 //			this.envelopeTrans = envelope.convert(ct);
 //		} else {
-			this.envelopeTrans = envelope;
+        this.envelopeTrans = envelope;
 //		}
-		this.geomName = geomName;
-		this.srs = envelopeProjection.getAbrev();
-		this.getFieldsInfo().addMatchFieldValue(geomName, envelopeTrans);
+        this.geomName = geomName;
+        this.getFieldsInfo().addMatchFieldValue(geomName, envelopeTrans);
 
-	}
+    }
 
-	public Object evaluate(EvaluatorData data) throws EvaluatorException {
-		Envelope featureEnvelope;
-		if (isDefault) {
-			featureEnvelope = ((Feature) data.getContextValue("feature"))
-					.getDefaultEnvelope();
+    @Override
+    public Object evaluate(EvaluatorData data) throws EvaluatorException {
+        Envelope featureEnvelope;
+        if (isDefault) {
+            featureEnvelope = ((Feature) data.getContextValue("feature"))
+                    .getDefaultEnvelope();
 
-		} else {
-                    Geometry geom = (Geometry) data.getDataValue(geomName);
-                    if( geom == null ) {
-                        return Boolean.FALSE;
-                    }
-                    featureEnvelope = geom.getEnvelope();
-		}
-		return new Boolean(envelopeTrans.contains(featureEnvelope));
-	}
+        } else {
+            Geometry geom = (Geometry) data.getDataValue(geomName);
+            if (geom == null) {
+                return false;
+            }
+            featureEnvelope = geom.getEnvelope();
+        }
+        return envelopeTrans.contains(featureEnvelope);
+    }
 
-	public String getName() {
-		return "contains in envelope";
-	}
+    @Override
+    public String getName() {
+        return "contains in envelope";
+    }
 
-	public String getSQL() {
-		if (envelopeWKT == null) {
-			try {
-				envelopeWKT = envelope.getGeometry().convertToWKT();
-			} catch (GeometryOperationNotSupportedException e) {
-				throw new DataEvaluatorRuntimeException(e);
-			} catch (GeometryOperationException e) {
-				throw new DataEvaluatorRuntimeException(e);
-			}
-		}
-		return " ST_contains(ST_GeomFromText('" + envelopeWKT + "', '" + srs
-				+ "'), ST_envelope(" + geomName + ")) ";
-	}
+    @Override
+    public String getSQL() {
+        return this.builder.set(
+                builder.ST_Contains(
+                        builder.envelope(envelope, projection),
+                        builder.column(geomName)
+                )
+        ).toString();
+    }
 
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/WithinGeometryEvaluator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/WithinGeometryEvaluator.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/WithinGeometryEvaluator.java	(revision 43040)
@@ -42,6 +42,28 @@
     private final ExpressionBuilder builder;
     private final IProjection projection;
 
+    /**
+     * @param geometry
+     * @param projection
+     * @param featureType
+     * @param geomName
+     * @deprecated  use @{link org.gvsig.fmap.mapcontext.layers.vectorial.SpatialEvaluatorsFactory}
+     */
+    public WithinGeometryEvaluator(
+            Geometry geometry,
+            IProjection projection,
+            FeatureType featureType,
+            String geomName
+    ) {
+        this(
+                geometry, 
+                projection, 
+                featureType, 
+                geomName, 
+                SpatialEvaluatorsFactory.getInstance().createBuilder()
+        );
+    }   
+    
     WithinGeometryEvaluator(
             Geometry geometry,
             IProjection projection,
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/IntersectsEnvelopeEvaluator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/IntersectsEnvelopeEvaluator.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/IntersectsEnvelopeEvaluator.java	(revision 43040)
@@ -36,30 +36,50 @@
 
 public class IntersectsEnvelopeEvaluator extends AbstractEvaluator {
 
-    private Envelope envelope;
-    private String geomName;
-    private boolean isDefault;
-    private ExpressionBuilder condition;
-    String defaultGeometryAttributeName;
+    private final Envelope envelope;
+    private final String geomName;
+    private final boolean isDefault;
+    private final String defaultGeometryAttributeName;
+    private final IProjection projection;
+    private final ExpressionBuilder builder;
     
-
-    IntersectsEnvelopeEvaluator(Envelope envelope,
-            IProjection envelopeProjection, FeatureType featureType,
+    /**
+     * @param envelope
+     * @param envelopeProjection
+     * @param featureType
+     * @param geomName
+     * @deprecated  use @{link org.gvsig.fmap.mapcontext.layers.vectorial.SpatialEvaluatorsFactory}
+     */
+    public IntersectsEnvelopeEvaluator(
+            Envelope envelope,
+            IProjection envelopeProjection, 
+            FeatureType featureType,
+            String geomName
+    ) {
+        this(
+                envelope, 
+                envelopeProjection, 
+                featureType, 
+                geomName, 
+                SpatialEvaluatorsFactory.getInstance().createBuilder()
+        );
+    }   
+    
+    IntersectsEnvelopeEvaluator(
+            Envelope envelope,
+            IProjection envelopeProjection, 
+            FeatureType featureType,
             String geomName,
-            ExpressionBuilder builder) {
+            ExpressionBuilder builder
+        ) {
         FeatureAttributeDescriptor fad = (FeatureAttributeDescriptor) featureType.get(geomName);
         defaultGeometryAttributeName = featureType.getDefaultGeometryAttributeName();
         this.isDefault = defaultGeometryAttributeName.equals(geomName);
         this.envelope = envelope;
+        this.projection = envelopeProjection;
+        this.builder = builder;
         this.geomName = geomName;
         this.getFieldsInfo().addMatchFieldValue(geomName, envelope);
-
-        this.condition = builder.set(
-                builder.ST_Intersects(
-                        builder.geometry(envelope.getGeometry(), envelopeProjection), 
-                        builder.ST_Envelope(builder.column(geomName))
-                )
-        );
     }
 
     @Override
@@ -72,14 +92,14 @@
         } else {
             geom = (Geometry) data.getDataValue(geomName);
             if (geom == null) {
-                return Boolean.FALSE;
+                return false;
             }
             featureEnvelope = geom.getEnvelope();
         }
         if (envelope.intersects(featureEnvelope)) {
             return envelope.intersects(geom);
         }
-        return Boolean.FALSE;
+        return false;
     }
 
     @Override
@@ -89,6 +109,11 @@
 
     @Override
     public String getSQL() {
-        return this.condition.toString();
+        return builder.set(
+                builder.ST_Intersects(
+                        builder.geometry(envelope.getGeometry(), this.projection), 
+                        builder.ST_Envelope(builder.column(geomName))
+                )
+        ).toString();
     }
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/OutGeometryEvaluator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/OutGeometryEvaluator.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/OutGeometryEvaluator.java	(revision 43040)
@@ -42,6 +42,28 @@
     private final ExpressionBuilder builder;
     private final IProjection projection;
 
+    /**
+     * @param geometry
+     * @param envelopeProjection
+     * @param featureType
+     * @param geomName
+     * @deprecated  use @{link org.gvsig.fmap.mapcontext.layers.vectorial.SpatialEvaluatorsFactory}
+     */
+    public OutGeometryEvaluator(
+            Geometry geometry,
+            IProjection envelopeProjection, 
+            FeatureType featureType,
+            String geomName
+    ) {
+        this(
+                geometry, 
+                envelopeProjection, 
+                featureType, 
+                geomName, 
+                SpatialEvaluatorsFactory.getInstance().createBuilder()
+        );
+    }   
+    
     OutGeometryEvaluator(
             Geometry geometry,
             IProjection envelopeProjection, 
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/TouchesGeometryEvaluator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/TouchesGeometryEvaluator.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/TouchesGeometryEvaluator.java	(revision 43040)
@@ -42,6 +42,27 @@
     private final ExpressionBuilder builder;
     private final IProjection projection;
 
+    /**
+     * @param geometry
+     * @param projection
+     * @param featureType
+     * @param geomName
+     * @deprecated  use @{link org.gvsig.fmap.mapcontext.layers.vectorial.SpatialEvaluatorsFactory}
+     */
+    public TouchesGeometryEvaluator(Geometry geometry,
+            IProjection projection,
+            FeatureType featureType,
+            String geomName
+    ) {
+        this(
+                geometry, 
+                projection, 
+                featureType, 
+                geomName, 
+                SpatialEvaluatorsFactory.getInstance().createBuilder()
+        );
+    }   
+    
     TouchesGeometryEvaluator(Geometry geometry,
             IProjection projection,
             FeatureType featureType,
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/CrossEnvelopeEvaluator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/CrossEnvelopeEvaluator.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/CrossEnvelopeEvaluator.java	(revision 43040)
@@ -43,6 +43,28 @@
     private final ExpressionBuilder builder;
     private final IProjection projection;
 
+    /**
+     * @param envelope
+     * @param envelopeProjection
+     * @param featureType
+     * @param geomName
+     * @deprecated  use @{link org.gvsig.fmap.mapcontext.layers.vectorial.SpatialEvaluatorsFactory}
+     */
+    public CrossEnvelopeEvaluator(
+            Envelope envelope,
+            IProjection envelopeProjection, 
+            FeatureType featureType,
+            String geomName
+    ) {
+        this(
+                envelope, 
+                envelopeProjection, 
+                featureType, 
+                geomName, 
+                SpatialEvaluatorsFactory.getInstance().createBuilder()
+        );
+    }   
+    
     CrossEnvelopeEvaluator(
             Envelope envelope,
             IProjection envelopeProjection, 
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/ContainsGeometryEvaluator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/ContainsGeometryEvaluator.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/ContainsGeometryEvaluator.java	(revision 43040)
@@ -43,6 +43,28 @@
     private final ExpressionBuilder builder;
     private final IProjection projection;
 
+    /**
+     * @param geometry
+     * @param projection
+     * @param featureType
+     * @param geomName
+     * @deprecated  use @{link org.gvsig.fmap.mapcontext.layers.vectorial.SpatialEvaluatorsFactory}
+     */
+    public ContainsGeometryEvaluator(
+            Geometry geometry,
+            IProjection projection,
+            FeatureType featureType,
+            String geomName
+    ) {
+        this(
+                geometry, 
+                projection, 
+                featureType, 
+                geomName, 
+                SpatialEvaluatorsFactory.getInstance().createBuilder()
+        );
+    }   
+    
     ContainsGeometryEvaluator(
             Geometry geometry,
             IProjection projection,
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/CrossesGeometryEvaluator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/CrossesGeometryEvaluator.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/CrossesGeometryEvaluator.java	(revision 43040)
@@ -42,6 +42,28 @@
     private final ExpressionBuilder builder;
     private final IProjection projection;
     
+    /**
+     * @param geometry
+     * @param projection
+     * @param featureType
+     * @param geomName
+     * @deprecated  use @{link org.gvsig.fmap.mapcontext.layers.vectorial.SpatialEvaluatorsFactory}
+     */
+    public CrossesGeometryEvaluator(
+            Geometry geometry,
+            IProjection projection, 
+            FeatureType featureType,
+            String geomName
+    ) {
+        this(
+                geometry, 
+                projection, 
+                featureType, 
+                geomName, 
+                SpatialEvaluatorsFactory.getInstance().createBuilder()
+        );
+    }   
+    
     CrossesGeometryEvaluator(
             Geometry geometry,
             IProjection projection, 
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/DisjointGeometryEvaluator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/DisjointGeometryEvaluator.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/DisjointGeometryEvaluator.java	(revision 43040)
@@ -43,6 +43,28 @@
     private final ExpressionBuilder builder;
     private final IProjection projection;
     
+    /**
+     * @param geometry
+     * @param projection
+     * @param featureType
+     * @param geomName
+     * @deprecated  use @{link org.gvsig.fmap.mapcontext.layers.vectorial.SpatialEvaluatorsFactory}
+     */
+    public DisjointGeometryEvaluator(
+            Geometry geometry,
+            IProjection projection,
+            FeatureType featureType,
+            String geomName
+    ) {
+        this(
+                geometry, 
+                projection, 
+                featureType, 
+                geomName, 
+                SpatialEvaluatorsFactory.getInstance().createBuilder()
+        );
+    }   
+    
     DisjointGeometryEvaluator(
             Geometry geometry,
             IProjection projection,
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/IntersectsGeometryEvaluator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/IntersectsGeometryEvaluator.java	(revision 43039)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/IntersectsGeometryEvaluator.java	(revision 43040)
@@ -28,7 +28,6 @@
 import org.gvsig.fmap.dal.feature.Feature;
 import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
 import org.gvsig.fmap.dal.feature.FeatureType;
-import org.gvsig.fmap.dal.SQLBuilder;
 import org.gvsig.fmap.geom.Geometry;
 import org.gvsig.tools.evaluator.AbstractEvaluator;
 import org.gvsig.tools.evaluator.EvaluatorData;
@@ -36,20 +35,48 @@
 
 public class IntersectsGeometryEvaluator extends AbstractEvaluator {
 
-    private String geomName;
-    private Geometry geometry;
-    private Geometry geometryTrans;
-    private boolean isDefault;
-    private ExpressionBuilder condition;
+    private final String geomName;
+    private final Geometry geometry;
+    private final Geometry geometryTrans;
+    private final boolean isDefault;
+    private final ExpressionBuilder builder;
+    private final IProjection projection;
 
-    IntersectsGeometryEvaluator(Geometry geometry,
-            IProjection projection, FeatureType featureType,
+    /**
+     * @param geometry
+     * @param projection
+     * @param featureType
+     * @param geomName
+     * @deprecated  use @{link org.gvsig.fmap.mapcontext.layers.vectorial.SpatialEvaluatorsFactory}
+     */
+    public IntersectsGeometryEvaluator(
+            Geometry geometry,
+            IProjection projection,
+            FeatureType featureType,
+            String geomName
+        ) {
+        this(
+                geometry, 
+                projection, 
+                featureType, 
+                geomName, 
+                SpatialEvaluatorsFactory.getInstance().createBuilder()
+        );
+    }   
+    
+    IntersectsGeometryEvaluator(
+            Geometry geometry,
+            IProjection projection,
+            FeatureType featureType,
             String geomName,
-            ExpressionBuilder builder) {
+            ExpressionBuilder builder
+        ) {
         FeatureAttributeDescriptor fad = (FeatureAttributeDescriptor) featureType
                 .get(geomName);
         this.isDefault = featureType.getDefaultGeometryAttributeName().equals(geomName);
         this.geometry = geometry;
+        this.projection = projection;
+        this.builder = builder;
         this.geometryTrans = geometry.cloneGeometry();
         ICoordTrans ct = null;
 
@@ -63,18 +90,12 @@
         }
         this.geomName = geomName;
         this.getFieldsInfo().addMatchFieldValue(geomName, geometryTrans);
-        this.condition = builder.set(
-                builder.ST_Intersects(
-                        builder.geometry(geometry, projection), 
-                        builder.column(geomName)
-                )
-        );
     }
 
     @Override
     public Object evaluate(EvaluatorData data) throws EvaluatorException {
         try {
-            Geometry geom ;
+            Geometry geom;
             if (isDefault) {
                 Feature feature = (Feature) data.getContextValue("feature");
                 geom = feature.getDefaultGeometry();
@@ -99,7 +120,12 @@
 
     @Override
     public String getSQL() {
-        return this.condition.toString();
+        return builder.set(
+                builder.ST_Intersects(
+                        builder.geometry(geometry, this.projection),
+                        builder.column(geomName)
+                )
+        ).toString();
     }
 
 }
