gvsig-scripting / org.gvsig.scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.app / org.gvsig.scripting.app.mainplugin / src / main / resources-plugin / scripting / lib / gvsig_2_3_0 / feature.py @ 462
History | View | Annotate | Download (1.97 KB)
1 |
|
---|---|
2 |
|
3 |
from org.gvsig.fmap.dal.feature.impl import DefaultFeature as JFeature |
4 |
from java.lang import RuntimeException |
5 |
|
6 |
def _geometry(self): |
7 |
return self.getDefaultGeometry() |
8 |
|
9 |
def _getValues(self): |
10 |
items = dict()
|
11 |
for name,value in self.iteritems(): |
12 |
items[name] = value |
13 |
return items
|
14 |
|
15 |
def _edit(self): |
16 |
raise Exception("Deprecated method, use import gvSIG_2_0_0 for compatibilitty with gvSIG 2.0.0 or use getEditable method") |
17 |
|
18 |
def _getitem(self,attributeName): |
19 |
return self.get(attributeName) |
20 |
|
21 |
def _getattr(self,attributeName): |
22 |
# FIX console error when try to introspect feature object
|
23 |
if name in ('__methods__'): |
24 |
return dict() |
25 |
elif name in ('__members__'): |
26 |
return self.getValues().keys() |
27 |
elif name == '__dict__': |
28 |
return self.getValues() |
29 |
|
30 |
try:
|
31 |
v = getattr(self, attributeName, None) |
32 |
if v == None: |
33 |
v = self.get(attributeName)
|
34 |
return v
|
35 |
except Throwable, ex:
|
36 |
raise RuntimeException("Can't access to attribute %s of feature (%s)" % (attributeName, str(ex))) |
37 |
|
38 |
def _call(self): |
39 |
return self |
40 |
|
41 |
def _len(self): |
42 |
return self.getType().size() |
43 |
|
44 |
def _iteritems(self): |
45 |
descriptor = self.getType()
|
46 |
for attr in descriptor.getAttributeDescriptors(): |
47 |
name = attr.getName() |
48 |
value = self.get(attr.getName())
|
49 |
yield name,value
|
50 |
|
51 |
def _itervalues(self): |
52 |
descriptor = self.getType()
|
53 |
for attr in descriptor.getAttributeDescriptors(): |
54 |
name = attr.getName() |
55 |
value = self.get(attr.getName())
|
56 |
yield value
|
57 |
|
58 |
def _iterkeys(self): |
59 |
descriptor = self.getType()
|
60 |
for attr in descriptor.getAttributeDescriptors(): |
61 |
name = attr.getName() |
62 |
yield name
|
63 |
|
64 |
|
65 |
#
|
66 |
# Inject new methods in the class JFeature
|
67 |
#
|
68 |
JFeature.getValues = _getValues |
69 |
JFeature.geometry = _geometry |
70 |
JFeature.edit = _edit |
71 |
JFeature.__getitem__ = _getitem |
72 |
JFeature.__getattr__ = _getattr |
73 |
JFeature.__call__ = _call |
74 |
JFeature.__len__ = _len |
75 |
JFeature.__iter__ = _itervalues |
76 |
JFeature.itervalues = _itervalues |
77 |
JFeature.iteritems = _iteritems |
78 |
JFeature.iterkeys = _iterkeys |
79 |
|
80 |
|