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
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