exp.py
1 |
# encoding: utf-8
|
---|---|
2 |
|
3 |
import gvsig |
4 |
from org.gvsig.expressionevaluator.spi import AbstractFunction |
5 |
from org.gvsig.expressionevaluator import ExpressionEvaluatorLocator |
6 |
from org.apache.commons.lang3 import Range |
7 |
from java.lang import Integer |
8 |
class PixelXFunc(AbstractFunction): |
9 |
def __init__(self, pixelx): |
10 |
self.pixelx = pixelx
|
11 |
AbstractFunction.__init__( |
12 |
self,
|
13 |
"Kernel Algorithm",
|
14 |
"pixelx",
|
15 |
Range.is(Integer(0)),
|
16 |
"Return the pixel coordinate x",
|
17 |
"pixelx()",
|
18 |
None,
|
19 |
"Double"
|
20 |
) |
21 |
|
22 |
def call(self, interpreter, args): |
23 |
return self.pixelx |
24 |
|
25 |
from org.gvsig.expressionevaluator.spi import AbstractSymbolTable |
26 |
from org.gvsig.fmap.dal import DataManager |
27 |
class KernelSymbolTable(AbstractSymbolTable): |
28 |
def __init__(self, x): |
29 |
AbstractSymbolTable.__init__(self, DataManager.DAL_SYMBOL_TABLE)
|
30 |
self.pixelx = x
|
31 |
self.addFunction(PixelXFunc(self.pixelx)) |
32 |
def setX(self, x): |
33 |
self.pixelx= x
|
34 |
|
35 |
def main(*args): |
36 |
manager = ExpressionEvaluatorLocator.getManager() |
37 |
exp = manager.createExpression() |
38 |
exp.setPhrase("pixelx()")
|
39 |
|
40 |
symbol = KernelSymbolTable(15)
|
41 |
ev = exp.execute(symbol) |
42 |
print ev #muestra 15 |
43 |
symbol.setX(5)
|
44 |
ev = exp.execute(symbol) |
45 |
print ev #muestra 15 |
46 |
|