Revision 47320 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/typeconversion/CastFunction.java

View differences:

CastFunction.java
1 1
package org.gvsig.expressionevaluator.impl.function.typeconversion;
2 2

  
3 3
import java.util.Iterator;
4
import java.util.function.Function;
4 5
import org.apache.commons.lang3.Range;
6
import org.gvsig.expressionevaluator.Code;
7
import org.gvsig.expressionevaluator.Codes;
8
import org.gvsig.expressionevaluator.ExpressionBuilder;
5 9
import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_CAST;
10
import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_GETATTR;
11
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
12
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
6 13
import org.gvsig.expressionevaluator.ExpressionRuntimeException;
14
import org.gvsig.expressionevaluator.Formatter;
7 15
import org.gvsig.expressionevaluator.Interpreter;
8 16
import org.gvsig.expressionevaluator.spi.AbstractFunction;
9 17
import org.gvsig.tools.ToolsLocator;
......
66 74
        return "The valid type names for the function CAST are:\n"+ builder.toString();
67 75
    }
68 76
    
77
    @Override
78
    public String toString(Codes args, Formatter<Code> formatter) {
79
        StringBuilder builder = new StringBuilder();
80
        Code expression = args.get(0);
81
        Code typeName = args.get(1);
82
        if( typeName instanceof Code.Constant && ((Code.Constant)typeName).value() instanceof CharSequence ) {
83
          builder.append(this.name());
84
          builder.append("(");
85
          builder.append(expression.toString(formatter));
86
          builder.append(" AS ");
87
          builder.append(((Code.Constant)typeName).value().toString());
88
          builder.append(")");
89
          return builder.toString();
90
        }
91
        return super.toString(args, formatter);
92
    }
93

  
94
    
95
    
96
    
97
    
69 98
}

Also available in: Unified diff