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 / dynobject.py @ 496
History | View | Annotate | Download (2.45 KB)
1 |
|
---|---|
2 |
from org.gvsig.tools.dynobject.impl import DefaultDynObject |
3 |
|
4 |
def _get(self, name): |
5 |
return self.getDynValue(name) |
6 |
|
7 |
def _set(self, name, value): |
8 |
self.setDynValue(name, value)
|
9 |
|
10 |
def _setValues(self,*args,**kwargs): |
11 |
if len(args)!=0: |
12 |
if len(args)!=2: |
13 |
raise IllegalArgumentException("Incorrent number of arguments ("+len(args)+"), expected 2.") |
14 |
self[args[0]] = args[1] |
15 |
return
|
16 |
for k,v in kwargs.iteritems(): |
17 |
self[k] = v
|
18 |
|
19 |
def _setitem(self,name, value): |
20 |
if self.getDynClass().getDynField(name) == None: |
21 |
raise KeyError(name) |
22 |
self.setDynValue(name, value)
|
23 |
|
24 |
def _setattr(self,name, value): |
25 |
if self.getDynClass().getDynField(name) == None: |
26 |
raise AttributeError(self.__class__.__name__,name) |
27 |
self.setDynValue(name, value)
|
28 |
|
29 |
def _getValues(self): |
30 |
items = dict()
|
31 |
for name,value in self.iteritems(): |
32 |
items[name] = value |
33 |
return items
|
34 |
|
35 |
def _getitem(self,name): |
36 |
try:
|
37 |
return self.getDynValue(name) |
38 |
except Throwable, ex:
|
39 |
raise KeyError(name) |
40 |
|
41 |
def _getattr(self,attributeName): |
42 |
# FIX console error when try to introspect feature object
|
43 |
if name in ('__methods__'): |
44 |
return dict() |
45 |
elif name in ('__members__'): |
46 |
return self.getValues().keys() |
47 |
elif name == '__dict__': |
48 |
return self.getValues() |
49 |
|
50 |
try:
|
51 |
v = getattr(self, name, None) |
52 |
if v == None: |
53 |
v = self.getDynValue(name)
|
54 |
return v
|
55 |
except Throwable, ex:
|
56 |
raise AttributeError(self.__class__.__name__,name) |
57 |
|
58 |
def _len(self): |
59 |
return len(self.getDynClass().getDynFields()) |
60 |
|
61 |
def _iteritems(self): |
62 |
fields = self.getDynClass().getDynFields()
|
63 |
for field in fields: |
64 |
name = field.getName() |
65 |
value = self.get(field.getName())
|
66 |
yield name,value
|
67 |
|
68 |
def _itervalues(self): |
69 |
fields = self.getDynClass().getDynFields()
|
70 |
for field in fields: |
71 |
name = field.getName() |
72 |
value = self.get(field.getName())
|
73 |
yield value
|
74 |
|
75 |
def _iterkeys(self): |
76 |
fields = self.getDynClass().getDynFields()
|
77 |
for field in fields: |
78 |
name = field.getName() |
79 |
yield name
|
80 |
|
81 |
#---------
|
82 |
|
83 |
DefaultDynObject.setValues = _setValues |
84 |
DefaultDynObject.getValues = _getValues |
85 |
DefaultDynObject._get = _get |
86 |
DefaultDynObject._set = _set |
87 |
|
88 |
DefaultDynObject.__getitem__ = _getitem |
89 |
DefaultDynObject.__setitem__ = _setitem |
90 |
DefaultDynObject.__getattr__ = _getattr |
91 |
DefaultDynObject.__setattr__ = _setattr |
92 |
DefaultDynObject.__len__ = _len |
93 |
DefaultDynObject.iteritems = _iteritems |
94 |
DefaultDynObject.itervalues = _itervalues |
95 |
DefaultDynObject.iterkeys = _iterkeys |