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