Revision 44151
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/programming/GetitemFunction.java | ||
---|---|---|
6 | 6 |
import org.gvsig.expressionevaluator.ExpressionRuntimeException; |
7 | 7 |
import org.gvsig.expressionevaluator.Function; |
8 | 8 |
import org.gvsig.expressionevaluator.Interpreter; |
9 |
import org.gvsig.expressionevaluator.MutableSymbolTable; |
|
10 |
import org.gvsig.expressionevaluator.SymbolTable; |
|
11 | 9 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
12 | 10 |
|
13 | 11 |
public class GetitemFunction extends AbstractFunction { |
... | ... | |
40 | 38 |
} |
41 | 39 |
|
42 | 40 |
if( obj instanceof List ) { |
41 |
List l = ((List)obj); |
|
43 | 42 |
int index = getInt(args,1); |
44 |
value = ((List)obj).get(index); |
|
43 |
if( index<0 ) { |
|
44 |
index = l.size() + index; |
|
45 |
} |
|
46 |
value = l.get(index); |
|
45 | 47 |
|
46 | 48 |
} else if( obj instanceof CharSequence ) { |
49 |
CharSequence s = (CharSequence)obj; |
|
47 | 50 |
int index = getInt(args,1); |
48 |
value = ((CharSequence)obj).subSequence(index, 0); |
|
51 |
if( index<0 ) { |
|
52 |
index = s.length() + index; |
|
53 |
} |
|
54 |
value = s.subSequence(index, index+1); |
|
49 | 55 |
|
50 | 56 |
} else if( obj instanceof Map ) { |
57 |
Map m = (Map)obj; |
|
51 | 58 |
Object index = getObject(args,1); |
52 |
value = ((Map)obj).get(index);
|
|
59 |
value = m.get(index);
|
|
53 | 60 |
|
54 | 61 |
} else { |
55 | 62 |
throw new ExpressionRuntimeException("The "+NAME+" function require a String, List or Map and a received a '"+obj.getClass().getSimpleName()+"'."); |
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/programming/ListFunction.java | ||
---|---|---|
21 | 21 |
"List", |
22 | 22 |
false |
23 | 23 |
); |
24 |
this.addAlias("array"); |
|
24 | 25 |
} |
25 | 26 |
|
26 | 27 |
@Override |
Also available in: Unified diff