Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/test/java/org/gvsig/expresionevaluator/impl/TestCodeFormatter.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/test/java/org/gvsig/expresionevaluator/impl/TestCodeFormatter.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/test/java/org/gvsig/expresionevaluator/impl/TestCodeFormatter.java	(revision 44752)
@@ -4,7 +4,6 @@
 import junit.framework.TestCase;
 import org.apache.commons.lang3.StringUtils;
 import org.gvsig.expressionevaluator.Code;
-import org.gvsig.expressionevaluator.Code.Caller;
 import org.gvsig.expressionevaluator.Code.Constant;
 import org.gvsig.expressionevaluator.Codes;
 import org.gvsig.expressionevaluator.ExpressionBuilder;
@@ -14,6 +13,7 @@
 import org.gvsig.expressionevaluator.Formatter;
 import org.gvsig.expressionevaluator.LexicalAnalyzer;
 import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
+import org.gvsig.expressionevaluator.Code.Callable;
 
 public class TestCodeFormatter extends TestCase {
 
@@ -39,15 +39,15 @@
             // Need for H2Spatial
             @Override
             public boolean canApply(Code code) {
-                if( code instanceof Caller ) {
-                    return StringUtils.equalsIgnoreCase("ST_intersects",((Caller)code).name());
+                if( code instanceof Callable ) {
+                    return StringUtils.equalsIgnoreCase("ST_intersects",((Callable)code).name());
                 }
                 return false;
             }
 
             @Override
             public String format(Code code) {
-                Codes parameters = ((Caller)code).parameters();
+                Codes parameters = ((Callable)code).parameters();
                 String p1 = parameters.get(0).toString(MyFormatter.this);
                 String p2 = parameters.get(1).toString(MyFormatter.this);
                 String r = MessageFormat.format(
@@ -72,15 +72,15 @@
 
             @Override
             public boolean canApply(Code code) {
-                if( code instanceof Caller ) {
-                    return StringUtils.equalsIgnoreCase("ST_intersects2",((Caller)code).name());
+                if( code instanceof Callable ) {
+                    return StringUtils.equalsIgnoreCase("ST_intersects2",((Callable)code).name());
                 }
                 return false;
             }
 
             @Override
             public String format(Code code) {
-                Codes parameters = ((Caller)code).parameters();
+                Codes parameters = ((Callable)code).parameters();
                 String p1 = parameters.get(0).toString(MyFormatter.this);
                 String p2 = parameters.get(1).toString(MyFormatter.this);
                 String r = MessageFormat.format(
@@ -98,9 +98,9 @@
             // Need for SpatiaLite 
             @Override
             public boolean canApply(Code code) {
-                if( code instanceof Caller ) {
-                    if( StringUtils.equalsIgnoreCase("DECODE",((Caller)code).name()) ) {
-                        Codes parameters = ((Caller)code).parameters();
+                if( code instanceof Callable ) {
+                    if( StringUtils.equalsIgnoreCase("DECODE",((Callable)code).name()) ) {
+                        Codes parameters = ((Callable)code).parameters();
                         Code code_p1 = parameters.get(0);
                         Code code_p2 = parameters.get(1);
                         if( code_p1 instanceof Constant && code_p2 instanceof Constant ) {
@@ -118,7 +118,7 @@
 
             @Override
             public String format(Code code) {
-                Codes parameters = ((Caller)code).parameters();
+                Codes parameters = ((Callable)code).parameters();
                 Object p1 = ((Constant)parameters.get(0)).value();
                 return "x'"+ (String)p1 + "'";
             }
@@ -128,15 +128,15 @@
             // Need for H2Spatial
             @Override
             public boolean canApply(Code code) {
-                if( code instanceof Caller ) {
-                    return StringUtils.equalsIgnoreCase("IFNULL",((Caller)code).name());
+                if( code instanceof Callable ) {
+                    return StringUtils.equalsIgnoreCase("IFNULL",((Callable)code).name());
                 }
                 return false;
             }
 
             @Override
             public String format(Code code) {
-                Codes parameters = ((Caller)code).parameters();
+                Codes parameters = ((Callable)code).parameters();
                 String p1 = parameters.get(0).toString(MyFormatter.this);
                 String p2 = parameters.get(1).toString(MyFormatter.this);
                 String p3 = parameters.get(2).toString(MyFormatter.this);
@@ -154,15 +154,15 @@
             // Need for SpatiaLite
             @Override
             public boolean canApply(Code code) {
-                if( code instanceof Caller ) {
-                    return StringUtils.equalsIgnoreCase("ILIKE",((Caller)code).name());
+                if( code instanceof Callable ) {
+                    return StringUtils.equalsIgnoreCase("ILIKE",((Callable)code).name());
                 }
                 return false;
             }
 
             @Override
             public String format(Code code) {
-                Codes parameters = ((Caller)code).parameters();
+                Codes parameters = ((Callable)code).parameters();
                 String p1 = parameters.get(0).toString(MyFormatter.this);
                 String p2 = parameters.get(1).toString(MyFormatter.this);
                 String r = MessageFormat.format(
@@ -178,15 +178,15 @@
             // Need for H2Spatial
             @Override
             public boolean canApply(Code code) {
-                if( code instanceof Caller ) {
-                    return StringUtils.equalsIgnoreCase("NOT_IS_NULL",((Caller)code).name());
+                if( code instanceof Callable ) {
+                    return StringUtils.equalsIgnoreCase("NOT_IS_NULL",((Callable)code).name());
                 }
                 return false;
             }
 
             @Override
             public String format(Code code) {
-                Codes parameters = ((Caller)code).parameters();
+                Codes parameters = ((Callable)code).parameters();
                 String p1 = parameters.get(0).toString(MyFormatter.this);
                 String r = MessageFormat.format(
                         "( ({0}) IS NOT NULL )", 
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/ConcatOperator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/ConcatOperator.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/ConcatOperator.java	(revision 44752)
@@ -3,13 +3,13 @@
 import java.util.Objects;
 import org.apache.commons.lang3.StringUtils;
 import org.gvsig.expressionevaluator.Code;
-import org.gvsig.expressionevaluator.Code.Caller;
 import org.gvsig.expressionevaluator.Code.Constant;
 import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_CONCAT;
 import org.gvsig.expressionevaluator.Function;
 import org.gvsig.expressionevaluator.Interpreter;
 import org.gvsig.expressionevaluator.Optimizer;
 import org.gvsig.expressionevaluator.Optimizer.FunctionOptimizer;
+import org.gvsig.expressionevaluator.Code.Callable;
 
 public class ConcatOperator 
         extends AbstractBinaryOperator 
@@ -31,7 +31,7 @@
     }
 
     @Override
-    public Code optimize(Optimizer optimizer, Caller caller) {
+    public Code optimize(Optimizer optimizer, Callable caller) {
         Code op1 = optimizer.optimize(caller.parameters().get(0));
         Code op2 = optimizer.optimize(caller.parameters().get(1));
         
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/DivOperator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/DivOperator.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/DivOperator.java	(revision 44752)
@@ -44,7 +44,7 @@
     
 
     @Override
-    public Code optimize(Optimizer optimizer, Code.Caller caller) {
+    public Code optimize(Optimizer optimizer, Code.Callable caller) {
         Code op1 = optimizer.optimize(caller.parameters().get(0));
         Code op2 = optimizer.optimize(caller.parameters().get(1));
         
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/AddOperator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/AddOperator.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/AddOperator.java	(revision 44752)
@@ -2,7 +2,6 @@
 
 import java.util.Objects;
 import org.gvsig.expressionevaluator.Code;
-import org.gvsig.expressionevaluator.Code.Caller;
 import org.gvsig.expressionevaluator.Code.Constant;
 import org.gvsig.expressionevaluator.ExpressionBuilder;
 import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_ADD;
@@ -12,6 +11,7 @@
 import org.gvsig.expressionevaluator.Optimizer;
 import org.gvsig.expressionevaluator.Optimizer.FunctionOptimizer;
 import org.gvsig.expressionevaluator.impl.I18N;
+import org.gvsig.expressionevaluator.Code.Callable;
 
 public class AddOperator 
         extends AbstractBinaryOperator 
@@ -61,7 +61,7 @@
     }
 
     @Override
-    public Code optimize(Optimizer optimizer, Caller caller) {
+    public Code optimize(Optimizer optimizer, Callable caller) {
         Code op1 = optimizer.optimize(caller.parameters().get(0));
         Code op2 = optimizer.optimize(caller.parameters().get(1));
         
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/MulOperator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/MulOperator.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/MulOperator.java	(revision 44752)
@@ -43,7 +43,7 @@
     }
 
     @Override
-    public Code optimize(Optimizer optimizer, Code.Caller caller) {
+    public Code optimize(Optimizer optimizer, Code.Callable caller) {
         Code op1 = optimizer.optimize(caller.parameters().get(0));
         Code op2 = optimizer.optimize(caller.parameters().get(1));
         
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/SubstOperator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/SubstOperator.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/SubstOperator.java	(revision 44752)
@@ -44,7 +44,7 @@
     }
     
     @Override
-    public Code optimize(Optimizer optimizer, Code.Caller caller) {
+    public Code optimize(Optimizer optimizer, Code.Callable caller) {
         Code op1 = optimizer.optimize(caller.parameters().get(0));
         Code op2 = optimizer.optimize(caller.parameters().get(1));
         
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultInterpreter.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultInterpreter.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultInterpreter.java	(revision 44752)
@@ -15,7 +15,6 @@
 import org.gvsig.expressionevaluator.Code;
 import org.gvsig.expressionevaluator.Code.Constant;
 import org.gvsig.expressionevaluator.Code.Identifier;
-import org.gvsig.expressionevaluator.Code.Caller;
 import org.gvsig.expressionevaluator.Code.Method;
 import org.gvsig.expressionevaluator.Codes;
 import org.gvsig.expressionevaluator.ExpressionRuntimeException;
@@ -27,6 +26,7 @@
 import org.gvsig.expressionevaluator.impl.function.programming.ReturnFunction.ReturnException;
 import org.gvsig.expressionevaluator.spi.AbstractSymbolTable;
 import org.gvsig.tools.resourcesstorage.ResourcesStorage;
+import org.gvsig.expressionevaluator.Code.Callable;
 
 public class DefaultInterpreter implements Interpreter {
 
@@ -291,8 +291,8 @@
                     value = method.call(this, argvalues);
                     break;
                 }
-            case Code.CALLER:
-                Caller caller = (Caller) code;
+            case Code.CALLABLE:
+                Callable caller = (Callable) code;
                 Function function = caller.function();
                 if( function == null ) {
                     function = this.getSymbolTable().function(caller.name());
@@ -307,21 +307,21 @@
                 Codes args = caller.parameters();
                 try {
                     switch( caller.type() ) {
-                    case Caller.UNARY_OPERATOR:
+                    case Callable.UNARY_OPERATOR:
                         if( args == null || args.size() != 1 ) {
                             throw new ExpressionRuntimeException(code, I18N.Number_of_argument_mistmatch_in_operator_XIdentifierX_expected_1_got_XargcX(function.name(),args==null?0:args.size()));
                         }
                         value = ((UnaryOperator) function).call(this, runCode(args.get(0)));
                         break;
 
-                    case Caller.BINARY_OPERATOR:
+                    case Callable.BINARY_OPERATOR:
                         if( args == null || args.size() != 2 ) {
                             throw new ExpressionRuntimeException(code, I18N.Number_of_argument_mistmatch_in_operator_XIdentifierX_expected_2_got_XargcX(function.name(),args==null?0:args.size()));
                         }
                         value = ((BinaryOperator) function).call(this, runCode(args.get(0)), runCode(args.get(1)));
                         break;
 
-                    case Caller.FUNCTION:
+                    case Callable.FUNCTION:
                         int argc = (args == null) ? 0 : args.size();
                         if( !function.argc().contains(argc) ) {
                             throw new ExpressionRuntimeException(code, I18N.Number_of_argument_mistmatch_in_function_XIdentifierX_expected_XexpectedX_got_XfoundX(function.name(),function.argc(),argc));
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultStatement.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultStatement.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultStatement.java	(revision 44752)
@@ -8,7 +8,6 @@
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.lang3.tuple.Pair;
 import org.gvsig.expressionevaluator.Code;
-import org.gvsig.expressionevaluator.Code.Caller;
 import org.gvsig.expressionevaluator.CodeBuilder;
 import org.gvsig.expressionevaluator.Codes;
 import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_LIST;
@@ -21,6 +20,7 @@
 import org.gvsig.expressionevaluator.Statement.StatementContext;
 import org.gvsig.expressionevaluator.impl.function.programming.CodeBlockFunction;
 import org.gvsig.expressionevaluator.impl.DefaultCodeBuilder.BaseCodes;
+import org.gvsig.expressionevaluator.Code.Callable;
 
 /**
  *
@@ -834,9 +834,9 @@
             
             Codes base_args = super.build(context);
             for (Code arg : base_args) {
-                if( arg.code() == Code.CALLER && 
-                    ((Caller)arg).name().equals(CodeBlockFunction.NAME) ) {
-                    Codes block_args = ((Caller)arg).parameters();
+                if( arg.code() == Code.CALLABLE && 
+                    ((Callable)arg).name().equals(CodeBlockFunction.NAME) ) {
+                    Codes block_args = ((Callable)arg).parameters();
                     for (Code block_arg : block_args) {
                         args.add(block_arg);
                     }
@@ -881,8 +881,8 @@
                     if( args.size()==1 && 
                         StringUtils.equalsIgnoreCase(CodeBlockFunction.NAME,this.getCodeID()) ) {
                         Code code0 = args.get(0);
-                        if( code0.code() == Code.CALLER && 
-                                StringUtils.equalsIgnoreCase(CodeBlockFunction.NAME,((Caller)code0).name())
+                        if( code0.code() == Code.CALLABLE && 
+                                StringUtils.equalsIgnoreCase(CodeBlockFunction.NAME,((Callable)code0).name())
                                 ) {
                             code = code0;
                         }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultCodeBuilder.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultCodeBuilder.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultCodeBuilder.java	(revision 44752)
@@ -6,12 +6,10 @@
 import java.util.List;
 import org.apache.commons.lang3.StringUtils;
 import org.gvsig.expressionevaluator.Code;
-import static org.gvsig.expressionevaluator.Code.CALLER;
 import static org.gvsig.expressionevaluator.Code.CONSTANT;
 import static org.gvsig.expressionevaluator.Code.IDENTIFIER;
 import static org.gvsig.expressionevaluator.Code.UNDEFINED;
 import static org.gvsig.expressionevaluator.Code.CODES;
-import org.gvsig.expressionevaluator.Code.Caller;
 import org.gvsig.expressionevaluator.Code.Constant;
 import static org.gvsig.expressionevaluator.Code.EMPTY_FORMATTER;
 import org.gvsig.expressionevaluator.Code.Identifier;
@@ -53,6 +51,8 @@
 import org.gvsig.tools.dynobject.exception.DynMethodNotSupportedException;
 import org.gvsig.tools.exception.BaseException;
 import org.gvsig.tools.visitor.Visitor;
+import static org.gvsig.expressionevaluator.Code.CALLABLE;
+import org.gvsig.expressionevaluator.Code.Callable;
 
 @SuppressWarnings("UseSpecificCatch")
 public class DefaultCodeBuilder implements CodeBuilder {
@@ -82,8 +82,8 @@
         
         @Override
         public void link(SymbolTable symbolTable) {
-            if( this.code() == Code.CALLER ) {
-                Caller caller = (Caller) this;
+            if( this.code() == Code.CALLABLE ) {
+                Callable caller = (Callable) this;
                 Function fn = symbolTable.function(caller.name());
                 if( fn != null ) {
                     caller.function(fn);
@@ -363,7 +363,7 @@
         
     }
 
-    public class BaseCaller extends BaseCode implements Caller, RecursionControlSupport {
+    public class BaseCaller extends BaseCode implements Callable, RecursionControlSupport {
 
         private final String name;
         private final Codes args;
@@ -381,7 +381,7 @@
 
         @Override
         public int code() {
-            return CALLER;
+            return CALLABLE;
         }
 
         @Override
@@ -670,13 +670,13 @@
     }
 
     @Override
-    public Caller tuple() {
+    public Callable tuple() {
       BaseCodes args = this.args();
       return function(FUNCTION_TUPLE, args);
     }
     
     @Override
-    public Caller tuple(Codes args) {
+    public Callable tuple(Codes args) {
       if( args == null ) {
         args = this.args();
       }
@@ -684,13 +684,13 @@
     }
 
     @Override
-    public Caller function(String name, int type, Codes args) {
+    public Callable function(String name, int type, Codes args) {
         return new BaseCaller(name, type, args);
     }
 
     @Override
-    public Caller function(String name, Codes args) {
-        return function(name, Caller.FUNCTION, args);
+    public Callable function(String name, Codes args) {
+        return function(name, Callable.FUNCTION, args);
     }
     
     @Override
@@ -700,18 +700,18 @@
     }
     
     @Override
-    public Caller operator(String name, Code arg1) {
+    public Callable operator(String name, Code arg1) {
         BaseCodes args = args();
         args.add(arg1);
-        return function(name, Caller.UNARY_OPERATOR, args);
+        return function(name, Callable.UNARY_OPERATOR, args);
     }
 
     @Override
-    public Caller operator(String name, Code arg1, Code arg2) {
+    public Callable operator(String name, Code arg1, Code arg2) {
         BaseCodes args = args();
         args.add(arg1);
         args.add(arg2);
-        return function(name, Caller.BINARY_OPERATOR, args);
+        return function(name, Callable.BINARY_OPERATOR, args);
     }
     
     @Override
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultOptimizer.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultOptimizer.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultOptimizer.java	(revision 44752)
@@ -5,7 +5,6 @@
 import java.util.Collections;
 import java.util.Iterator;
 import org.gvsig.expressionevaluator.Code;
-import org.gvsig.expressionevaluator.Code.Caller;
 import org.gvsig.expressionevaluator.CodeBuilder;
 import org.gvsig.expressionevaluator.Codes;
 import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
@@ -13,6 +12,7 @@
 import org.gvsig.expressionevaluator.Interpreter;
 import org.gvsig.expressionevaluator.SymbolTable;
 import org.gvsig.expressionevaluator.impl.DefaultCodeBuilder.BaseCodes;
+import org.gvsig.expressionevaluator.Code.Callable;
 
 /**
  *
@@ -170,8 +170,8 @@
 
     private Code doOptimize(Code code) {
         switch (code.code()) {
-            case Code.CALLER:
-                Caller caller = (Caller) code;
+            case Code.CALLABLE:
+                Callable caller = (Callable) code;
                 Function function = caller.function();
                 if ( function == null) {
                     // resolve and link function
@@ -182,7 +182,7 @@
                     return ((FunctionOptimizer) caller.function()).optimize(this, caller);
                 } else {
                     switch (caller.type()) {
-                        case Caller.BINARY_OPERATOR: {
+                        case Callable.BINARY_OPERATOR: {
                             Code op1 = this.doOptimize(caller.parameters().get(0));
                             Code op2 = this.doOptimize(caller.parameters().get(1));
                             if ( function.allowConstantFolding()) {
@@ -196,7 +196,7 @@
                             }
                         }
 
-                        case Code.Caller.UNARY_OPERATOR: {
+                        case Code.Callable.UNARY_OPERATOR: {
                             Code op1 = this.doOptimize(caller.parameters().get(0));
                             if (function.allowConstantFolding()
                                     && op1.code() == Code.CONSTANT) {
@@ -207,7 +207,7 @@
                             return code;
                         }
 
-                        case Code.Caller.FUNCTION:
+                        case Code.Callable.FUNCTION:
                         default: {
                             BaseCodes newArgs = null;
                             boolean canOptimize = true;
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/grammars/BasicGrammarFactory.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/grammars/BasicGrammarFactory.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/grammars/BasicGrammarFactory.java	(revision 44752)
@@ -1,7 +1,6 @@
 package org.gvsig.expressionevaluator.impl.grammars;
 
 import org.gvsig.expressionevaluator.Code;
-import org.gvsig.expressionevaluator.Code.Caller;
 import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_CAST;
 import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_DATE;
 import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_EXTRACT;
@@ -27,6 +26,7 @@
 import org.gvsig.expressionevaluator.impl.function.programming.ReturnFunction;
 import org.gvsig.expressionevaluator.impl.function.programming.WhileFunction;
 import org.gvsig.expressionevaluator.spi.AbstractGrammarFactory;
+import org.gvsig.expressionevaluator.Code.Callable;
 
 /**
  *
@@ -49,7 +49,7 @@
 
         @Override
         public Code build(StatementContext context) {
-            Caller code = (Caller) super.build(context);
+            Callable code = (Callable) super.build(context);
             Code exceptCode = context.getCode(this.exceptID);
             if( exceptCode==null ) {
                 return code;
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/Code.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/Code.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/Code.java	(revision 44752)
@@ -8,7 +8,7 @@
     public static final int UNDEFINED = -1;
     public static final int CONSTANT = 0;
     public static final int IDENTIFIER = 1;
-    public static final int CALLER = 2;
+    public static final int CALLABLE = 2;
     public static final int METHOD = 3;
     public static final int CODES = 4;
     
@@ -24,7 +24,7 @@
 
     }
 
-    public interface Caller extends Code {
+    public interface Callable extends Code {
 
         public static final int FUNCTION = 0;
         public static final int BINARY_OPERATOR = 1;
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/CodeBuilder.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/CodeBuilder.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/CodeBuilder.java	(revision 44752)
@@ -1,10 +1,10 @@
 package org.gvsig.expressionevaluator;
 
-import org.gvsig.expressionevaluator.Code.Caller;
 import org.gvsig.expressionevaluator.Code.Constant;
 import org.gvsig.expressionevaluator.Code.Identifier;
 
 import org.gvsig.tools.lang.Cloneable;
+import org.gvsig.expressionevaluator.Code.Callable;
 
 public interface CodeBuilder extends Cloneable {
 
@@ -15,19 +15,19 @@
 
     Identifier identifier(String name);
 
-    Caller function(String name, int type, Codes args);
+    Callable function(String name, int type, Codes args);
 
-    Caller function(String name, Codes args);
+    Callable function(String name, Codes args);
 
-    Caller operator(String name, Code arg1);
+    Callable operator(String name, Code arg1);
 
-    Caller operator(String name, Code arg1, Code arg2);
+    Callable operator(String name, Code arg1, Code arg2);
 
     Codes args();
     
-    Caller tuple();
+    Callable tuple();
 
-    Caller tuple(Codes args);
+    Callable tuple(Codes args);
 
     Code add(Code op1, Code op2);
 
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/Optimizer.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/Optimizer.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/Optimizer.java	(revision 44752)
@@ -1,6 +1,6 @@
 package org.gvsig.expressionevaluator;
 
-import org.gvsig.expressionevaluator.Code.Caller;
+import org.gvsig.expressionevaluator.Code.Callable;
 
 /**
  *
@@ -9,7 +9,7 @@
 public interface Optimizer {
 
     public interface FunctionOptimizer {
-        public Code optimize(Optimizer optimizer, Caller caller);
+        public Code optimize(Optimizer optimizer, Callable caller);
     }
     
     public Code optimize(Code code);
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/AbstractAutomaticExpressionChecker.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/AbstractAutomaticExpressionChecker.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/AbstractAutomaticExpressionChecker.java	(revision 44752)
@@ -20,7 +20,6 @@
 import org.apache.commons.lang3.mutable.Mutable;
 import org.apache.commons.lang3.mutable.MutableObject;
 import org.gvsig.expressionevaluator.Code;
-import org.gvsig.expressionevaluator.Code.Caller;
 import org.gvsig.expressionevaluator.Code.Identifier;
 import org.gvsig.expressionevaluator.Expression;
 import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
@@ -40,6 +39,7 @@
 import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
 import org.gvsig.tools.visitor.VisitCanceledException;
 import org.gvsig.tools.visitor.Visitor;
+import org.gvsig.expressionevaluator.Code.Callable;
 
 /**
  *
@@ -212,8 +212,8 @@
                     public void visit(Object obj) throws VisitCanceledException, BaseException {
                         Code code = (Code) obj;
                         switch(code.code()) {
-                            case Code.CALLER:
-                                Function function = ((Caller)code).function();
+                            case Code.CALLABLE:
+                                Function function = ((Callable)code).function();
                                 if( function!=null && !function.isSQLCompatible() ) {
                                     theTip.setValue(I18N.Avoid_the_use_of_functions_not_compatible_with_SQL_in_this_data_source(function.name()));
                                 }
@@ -225,7 +225,7 @@
                                 }
                                 break;
                             case Code.METHOD:
-                                theTip.setValue(I18N.Avoid_the_use_of_functions_not_compatible_with_SQL_in_this_data_source(((Caller)code).name()));
+                                theTip.setValue(I18N.Avoid_the_use_of_functions_not_compatible_with_SQL_in_this_data_source(((Callable)code).name()));
                                 break;
                         }
                     }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.geometry/org.gvsig.expressionevaluator.geometry.lib/org.gvsig.expressionevaluator.geometry.lib.impl/src/test/java/org/gvsig/expresionevaluator/impl/TestCodeFormatter.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.geometry/org.gvsig.expressionevaluator.geometry.lib/org.gvsig.expressionevaluator.geometry.lib.impl/src/test/java/org/gvsig/expresionevaluator/impl/TestCodeFormatter.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.geometry/org.gvsig.expressionevaluator.geometry.lib/org.gvsig.expressionevaluator.geometry.lib.impl/src/test/java/org/gvsig/expresionevaluator/impl/TestCodeFormatter.java	(revision 44752)
@@ -5,7 +5,6 @@
 import org.apache.commons.lang3.StringUtils;
 import org.cresques.cts.IProjection;
 import org.gvsig.expressionevaluator.Code;
-import org.gvsig.expressionevaluator.Code.Caller;
 import org.gvsig.expressionevaluator.Code.Constant;
 import org.gvsig.expressionevaluator.Codes;
 import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
@@ -20,6 +19,7 @@
 import org.gvsig.fmap.geom.exception.CreateGeometryException;
 import org.gvsig.fmap.geom.primitive.Point;
 import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
+import org.gvsig.expressionevaluator.Code.Callable;
 
 public class TestCodeFormatter extends TestCase {
 
@@ -68,15 +68,15 @@
             // Need for H2Spatial
             @Override
             public boolean canApply(Code code) {
-                if( code instanceof Caller ) {
-                    return StringUtils.equalsIgnoreCase("ST_intersects",((Caller)code).name());
+                if( code instanceof Callable ) {
+                    return StringUtils.equalsIgnoreCase("ST_intersects",((Callable)code).name());
                 }
                 return false;
             }
 
             @Override
             public String format(Code code) {
-                Codes parameters = ((Caller)code).parameters();
+                Codes parameters = ((Callable)code).parameters();
                 String p1 = parameters.get(0).toString(MyFormatter.this);
                 String p2 = parameters.get(1).toString(MyFormatter.this);
                 String r = MessageFormat.format(
@@ -101,15 +101,15 @@
 
             @Override
             public boolean canApply(Code code) {
-                if( code instanceof Caller ) {
-                    return StringUtils.equalsIgnoreCase("ST_intersects2",((Caller)code).name());
+                if( code instanceof Callable ) {
+                    return StringUtils.equalsIgnoreCase("ST_intersects2",((Callable)code).name());
                 }
                 return false;
             }
 
             @Override
             public String format(Code code) {
-                Codes parameters = ((Caller)code).parameters();
+                Codes parameters = ((Callable)code).parameters();
                 String p1 = parameters.get(0).toString(MyFormatter.this);
                 String p2 = parameters.get(1).toString(MyFormatter.this);
                 String r = MessageFormat.format(
@@ -127,9 +127,9 @@
             // Need for SpatiaLite 
             @Override
             public boolean canApply(Code code) {
-                if( code instanceof Caller ) {
-                    if( StringUtils.equalsIgnoreCase("DECODE",((Caller)code).name()) ) {
-                        Codes parameters = ((Caller)code).parameters();
+                if( code instanceof Callable ) {
+                    if( StringUtils.equalsIgnoreCase("DECODE",((Callable)code).name()) ) {
+                        Codes parameters = ((Callable)code).parameters();
                         Code code_p1 = parameters.get(0);
                         Code code_p2 = parameters.get(1);
                         if( code_p1 instanceof Constant && code_p2 instanceof Constant ) {
@@ -147,7 +147,7 @@
 
             @Override
             public String format(Code code) {
-                Codes parameters = ((Caller)code).parameters();
+                Codes parameters = ((Callable)code).parameters();
                 Object p1 = ((Constant)parameters.get(0)).value();
                 return "x'"+ (String)p1 + "'";
             }
@@ -157,15 +157,15 @@
             // Need for H2Spatial
             @Override
             public boolean canApply(Code code) {
-                if( code instanceof Caller ) {
-                    return StringUtils.equalsIgnoreCase("IFNULL",((Caller)code).name());
+                if( code instanceof Callable ) {
+                    return StringUtils.equalsIgnoreCase("IFNULL",((Callable)code).name());
                 }
                 return false;
             }
 
             @Override
             public String format(Code code) {
-                Codes parameters = ((Caller)code).parameters();
+                Codes parameters = ((Callable)code).parameters();
                 String p1 = parameters.get(0).toString(MyFormatter.this);
                 String p2 = parameters.get(1).toString(MyFormatter.this);
                 String p3 = parameters.get(2).toString(MyFormatter.this);
@@ -183,15 +183,15 @@
             // Need for SpatiaLite
             @Override
             public boolean canApply(Code code) {
-                if( code instanceof Caller ) {
-                    return StringUtils.equalsIgnoreCase("ILIKE",((Caller)code).name());
+                if( code instanceof Callable ) {
+                    return StringUtils.equalsIgnoreCase("ILIKE",((Callable)code).name());
                 }
                 return false;
             }
 
             @Override
             public String format(Code code) {
-                Codes parameters = ((Caller)code).parameters();
+                Codes parameters = ((Callable)code).parameters();
                 String p1 = parameters.get(0).toString(MyFormatter.this);
                 String p2 = parameters.get(1).toString(MyFormatter.this);
                 String r = MessageFormat.format(
@@ -207,15 +207,15 @@
             // Need for H2Spatial
             @Override
             public boolean canApply(Code code) {
-                if( code instanceof Caller ) {
-                    return StringUtils.equalsIgnoreCase("NOT_IS_NULL",((Caller)code).name());
+                if( code instanceof Callable ) {
+                    return StringUtils.equalsIgnoreCase("NOT_IS_NULL",((Callable)code).name());
                 }
                 return false;
             }
 
             @Override
             public String format(Code code) {
-                Codes parameters = ((Caller)code).parameters();
+                Codes parameters = ((Callable)code).parameters();
                 String p1 = parameters.get(0).toString(MyFormatter.this);
                 String r = MessageFormat.format(
                         "( ({0}) IS NOT NULL )", 
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/dataaccess/SelectFunction.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/dataaccess/SelectFunction.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/dataaccess/SelectFunction.java	(revision 44752)
@@ -31,7 +31,6 @@
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.lang3.tuple.Pair;
 import org.gvsig.expressionevaluator.Code;
-import org.gvsig.expressionevaluator.Code.Caller;
 import org.gvsig.expressionevaluator.CodeBuilder;
 import org.gvsig.expressionevaluator.Codes;
 import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_GETATTR;
@@ -56,6 +55,7 @@
 import org.gvsig.fmap.dal.feature.FeatureStore;
 import org.gvsig.fmap.dal.impl.expressionevaluator.DefaultExpressionEvaluator;
 import org.gvsig.tools.exception.BaseException;
+import org.gvsig.expressionevaluator.Code.Callable;
 
 /**
  *
@@ -115,7 +115,7 @@
   private static final int LIMIT = 5;
   
   
-  private Caller getTupleOrNull(Codes args, int argn) {
+  private Callable getTupleOrNull(Codes args, int argn) {
     Code code = args.get(argn);
     if( code.code()==Code.CONSTANT ) {
       if( ((Code.Constant)code).value()!=null ) {
@@ -123,10 +123,10 @@
       }
       return null;
     }
-    if( code.code()!=Code.CALLER ) {
+    if( code.code()!=Code.CALLABLE ) {
       throw new ExpressionRuntimeException("Tupple or null expected in argument "+argn+ " of function '" + FUNCTION_SELECT + "'.");
     }
-    Caller caller = (Caller) code;
+    Callable caller = (Callable) code;
     if( !StringUtils.equalsIgnoreCase(FUNCTION_TUPLE, caller.name()) ) {
       throw new ExpressionRuntimeException("Tupple or null expected in argument "+argn+ " of function '" + FUNCTION_SELECT + "'.");
     }
@@ -140,8 +140,8 @@
     Code columns = getTupleOrNull(args, COLUMNS);
     Code where = args.get(WHERE);
     Number limit = (Number) getObject(interpreter, args, LIMIT);
-    Caller order = getTupleOrNull(args, ORDER);
-    Caller order_mode = getTupleOrNull(args, ORDER_MODE);
+    Callable order = getTupleOrNull(args, ORDER);
+    Callable order_mode = getTupleOrNull(args, ORDER_MODE);
     
     FeatureQueryOrder queryOrder = null;
     if( order!=null || order_mode!=null ) {
@@ -206,8 +206,8 @@
       CodeBuilder codeBuilder = ExpressionUtils.createCodeBuilder();
       where.accept((Object o) -> {
         Code code = (Code) o;
-        if( code!=null && code.code() == Code.CALLER ) {
-          Code.Caller caller = (Code.Caller) code;
+        if( code!=null && code.code() == Code.CALLABLE ) {
+          Code.Callable caller = (Code.Callable) code;
           if( StringUtils.equalsIgnoreCase(caller.name(),FUNCTION_GETATTR) ) {
             Codes args = caller.parameters();
             Code arg0 = args.get(0);
@@ -243,7 +243,7 @@
   }
 
   @Override
-  public Code optimize(Optimizer optimizer, Caller caller) {
+  public Code optimize(Optimizer optimizer, Callable caller) {
     return caller; // Don't optimize SELECT
   }
 
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/expressionevaluator/impl/grammars/DataAccessGrammarFactory.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/expressionevaluator/impl/grammars/DataAccessGrammarFactory.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/expressionevaluator/impl/grammars/DataAccessGrammarFactory.java	(revision 44752)
@@ -26,7 +26,6 @@
 import java.util.UUID;
 import org.apache.commons.lang3.StringUtils;
 import org.gvsig.expressionevaluator.Code;
-import org.gvsig.expressionevaluator.Code.Caller;
 import org.gvsig.expressionevaluator.CodeBuilder;
 import org.gvsig.expressionevaluator.Codes;
 import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
@@ -45,6 +44,7 @@
 import static org.gvsig.fmap.dal.DataManager.FUNCTION_FOREING_VALUE;
 import static org.gvsig.fmap.dal.DataManager.FUNCTION_SELECT;
 import static org.gvsig.fmap.dal.DataManager.FUNCTION_SELECT_COUNT;
+import org.gvsig.expressionevaluator.Code.Callable;
 
 /**
  *
@@ -69,7 +69,7 @@
     public Code build(StatementContext context) {
 
       CodeBuilder codeBuilder = context.getCodeBuilder();
-      Caller code = (Caller) super.build(context);
+      Callable code = (Callable) super.build(context);
       BaseCodes args = (BaseCodes) code.parameters();
       if (args.size() < 2) {
         String exists_id = "EXISTS" + UUID.randomUUID().toString().replaceAll("-", "");
@@ -110,7 +110,7 @@
       if (columns == null) {
         throw new ExpressionSyntaxException();
       }
-      Caller tuple = codeBuilder.tuple();
+      Callable tuple = codeBuilder.tuple();
       args.add(tuple);
       String s = (String) ((Code.Constant) columns).value();
       if (!StringUtils.equalsIgnoreCase(s, "*")) {
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/JDBCHelperBase.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/JDBCHelperBase.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/JDBCHelperBase.java	(revision 44752)
@@ -166,7 +166,7 @@
     return QUOTE_FOR_USE_IN_STRINGS;
   }
 
-  protected boolean supportCaller(Code.Caller caller) {
+  protected boolean supportCaller(Code.Callable caller) {
     if (StringUtils.equalsIgnoreCase(caller.name(), "FOREING_VALUE")) {
       return true;
     }
@@ -229,8 +229,8 @@
         public void visit(Object code_obj) throws VisitCanceledException, BaseException {
           Code code = (Code) code_obj;
           switch (code.code()) {
-            case Code.CALLER:
-              Code.Caller caller = (Code.Caller) code;
+            case Code.CALLABLE:
+              Code.Callable caller = (Code.Callable) code;
               if (!supportCaller(caller)) {
                 isCompatible.setValue(false);
                 throw new VisitCanceledException();
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/SearchConditionPanelSimplified.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/SearchConditionPanelSimplified.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/SearchConditionPanelSimplified.java	(revision 44752)
@@ -309,9 +309,9 @@
   public boolean set(Expression filter) {
     try {
       Code code = filter.getCode();
-      if (code.code() == Code.CALLER) {
+      if (code.code() == Code.CALLABLE) {
         SearchConditionFieldController searchField = this.searchFields.get(0);
-        Code.Caller caller = (Code.Caller) code;
+        Code.Callable caller = (Code.Callable) code;
         if (searchField.isAValidRelationOperator(caller.name())) {
           Code op1 = caller.parameters().get(0);
           Code op2 = caller.parameters().get(1);
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureAttributeTreeModel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureAttributeTreeModel.java	(revision 44751)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureAttributeTreeModel.java	(revision 44752)
@@ -11,7 +11,6 @@
 import javax.swing.tree.TreePath;
 import org.apache.commons.lang3.StringUtils;
 import org.gvsig.expressionevaluator.Code;
-import org.gvsig.expressionevaluator.Code.Caller;
 import org.gvsig.expressionevaluator.Codes;
 import org.gvsig.fmap.dal.DALLocator;
 import org.gvsig.fmap.dal.DataManager;
@@ -31,6 +30,7 @@
 import org.gvsig.tools.util.LabeledValueImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.gvsig.expressionevaluator.Code.Callable;
 
 /**
  *
@@ -167,8 +167,8 @@
               if( emulator instanceof FeatureAttributeEmulatorExpression) {
                 FeatureAttributeEmulatorExpression emulatorExp = (FeatureAttributeEmulatorExpression) emulator;
                 Code code = emulatorExp.getExpression().getCode();
-                if( code.code()==Code.CALLER ) {
-                  Caller caller = (Caller) code;
+                if( code.code()==Code.CALLABLE ) {
+                  Callable caller = (Callable) code;
                   if( StringUtils.equalsIgnoreCase(caller.name(), "SELECT") ) {
                     Codes parameters = caller.parameters();
                     String tableName = (String) ((Code.Identifier)(parameters.get(1))).name();
