Statistics
| Revision:

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