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 / featurestore.py @ 462
History | View | Annotate | Download (2.45 KB)
1 |
|
---|---|
2 |
from java.lang import RuntimeException |
3 |
from org.gvsig.fmap.dal.feature.impl import DefaultFeatureStore as JFeatureStore |
4 |
from org.gvsig.fmap.dal.feature import FeatureQueryOrder |
5 |
from java.lang import RuntimeException |
6 |
|
7 |
def __getSchema(self): |
8 |
return self.getDefaultFeatureType() |
9 |
|
10 |
def __features(self, expresion = None, sortby="", asc=True): |
11 |
if expresion == None and sortby =="": |
12 |
return self.getFeatureSet() |
13 |
|
14 |
try:
|
15 |
application = ApplicationLocator.getManager() |
16 |
datamanager = application.getDataManager() |
17 |
query = self.createFeatureQuery()
|
18 |
if sortby != "": |
19 |
order = FeatureQueryOrder() |
20 |
order.add(sortby, asc) |
21 |
query.setOrder(order) |
22 |
if expresion != None: |
23 |
query.setFilter(datamanager.createExpresion(expresion)) |
24 |
fset = self.getFeatureSet(query)
|
25 |
except Exception, e: |
26 |
return None |
27 |
return fset
|
28 |
|
29 |
def __iter(self): |
30 |
return self.getFeatureSet().__iter__() |
31 |
|
32 |
def __len(self): |
33 |
return self.getFeatureSet().getSize() |
34 |
|
35 |
def __append(self, *args, **kwargs): |
36 |
try:
|
37 |
if not self.isEditing(): |
38 |
self.super_edit()
|
39 |
|
40 |
if len(args) ==1: |
41 |
values.insert(args[0])
|
42 |
return
|
43 |
|
44 |
f = self.createNewFeature()
|
45 |
|
46 |
if f == None: |
47 |
raise RuntimeException("Failed to create a new Feature") |
48 |
|
49 |
for k,v in kwargs.iteritems(): |
50 |
f.set(k,v) |
51 |
self.insert(f)
|
52 |
|
53 |
except Exception, ex: |
54 |
raise RuntimeException("Can't append values %s to layer %s (%s)" % ( |
55 |
repr(kwargs),
|
56 |
self.getName(),
|
57 |
str(ex)
|
58 |
) |
59 |
) |
60 |
|
61 |
def __update(self, feature): |
62 |
if not self.isEditing(): |
63 |
self.super_edit(self) |
64 |
self.super_update(self,feature) |
65 |
|
66 |
def __edit(self): |
67 |
if not self.isEditing(): |
68 |
self.super_edit()
|
69 |
|
70 |
def __commit(self): |
71 |
try:
|
72 |
self.finishEditing()
|
73 |
except Exception, ex: |
74 |
self.abort()
|
75 |
raise RuntimeException("Can't finish layer edition, cancelling changes. %s" % repr(ex)) |
76 |
|
77 |
def __abort(self): |
78 |
self.cancelEditing()
|
79 |
|
80 |
def __call(self): |
81 |
return self |
82 |
|
83 |
|
84 |
#
|
85 |
# Save methods edit and update that are rewriten in python
|
86 |
#
|
87 |
JFeatureStore.super_edit = JFeatureStore.edit |
88 |
JFeatureStore.super_update = JFeatureStore.update |
89 |
#
|
90 |
# Inject new methods in the class JFeatureStore
|
91 |
#
|
92 |
JFeatureStore.getSchema = __getSchema |
93 |
JFeatureStore.features = __features |
94 |
JFeatureStore.append = __append |
95 |
JFeatureStore.update = __update |
96 |
JFeatureStore.edit = __edit |
97 |
JFeatureStore.commit = __commit |
98 |
JFeatureStore.abort = __abort |
99 |
JFeatureStore.__call__ = __call |
100 |
JFeatureStore.__iter__ = __iter |
101 |
JFeatureStore.__len__ = __len |
102 |
|
103 |
|
104 |
|