1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
package jalview.io.vamsas; |
22 |
|
|
23 |
|
import java.util.Enumeration; |
24 |
|
import java.util.Hashtable; |
25 |
|
import java.util.IdentityHashMap; |
26 |
|
import java.util.Vector; |
27 |
|
|
28 |
|
import jalview.bin.Console; |
29 |
|
import jalview.io.VamsasAppDatastore; |
30 |
|
import jalview.log.JLoggerLog4j; |
31 |
|
import jalview.util.MessageManager; |
32 |
|
import uk.ac.vamsas.client.IClientDocument; |
33 |
|
import uk.ac.vamsas.client.Vobject; |
34 |
|
import uk.ac.vamsas.client.VorbaId; |
35 |
|
import uk.ac.vamsas.objects.core.Entry; |
36 |
|
import uk.ac.vamsas.objects.core.Provenance; |
37 |
|
import uk.ac.vamsas.objects.core.Seg; |
38 |
|
|
39 |
|
|
40 |
|
|
41 |
|
|
42 |
|
@author |
43 |
|
|
44 |
|
|
|
|
| 0% |
Uncovered Elements: 218 (218) |
Complexity: 69 |
Complexity Density: 0.53 |
|
45 |
|
public abstract class DatastoreItem |
46 |
|
{ |
47 |
|
|
48 |
|
|
49 |
|
|
50 |
|
Entry provEntry = null; |
51 |
|
|
52 |
|
IClientDocument cdoc; |
53 |
|
|
54 |
|
Hashtable vobj2jv; |
55 |
|
|
56 |
|
IdentityHashMap jv2vobj; |
57 |
|
|
58 |
|
boolean tojalview = false; |
59 |
|
|
60 |
|
|
61 |
|
|
62 |
|
|
63 |
|
protected static JLoggerLog4j log = JLoggerLog4j |
64 |
|
.getLogger(DatastoreItem.class); |
65 |
|
|
66 |
|
|
67 |
|
|
68 |
|
|
69 |
|
@return |
70 |
|
|
|
|
| 0% |
Uncovered Elements: 9 (9) |
Complexity: 3 |
Complexity Density: 0.6 |
|
71 |
0 |
protected Vobject getjv2vObj(Object jvobj)... |
72 |
|
{ |
73 |
0 |
if (jv2vobj.containsKey(jvobj)) |
74 |
|
{ |
75 |
0 |
return cdoc.getObject((VorbaId) jv2vobj.get(jvobj)); |
76 |
|
} |
77 |
0 |
if (Console.isDebugEnabled()) |
78 |
|
{ |
79 |
0 |
Console.debug( |
80 |
|
"Returning null VorbaID binding for jalview object " + jvobj); |
81 |
|
} |
82 |
0 |
return null; |
83 |
|
} |
84 |
|
|
85 |
|
|
86 |
|
|
87 |
|
@param |
88 |
|
@return |
89 |
|
|
|
|
| 0% |
Uncovered Elements: 16 (16) |
Complexity: 4 |
Complexity Density: 0.4 |
|
90 |
0 |
protected Object getvObj2jv(uk.ac.vamsas.client.Vobject vobj)... |
91 |
|
{ |
92 |
0 |
if (vobj2jv == null) |
93 |
0 |
return null; |
94 |
0 |
VorbaId id = vobj.getVorbaId(); |
95 |
0 |
if (id == null) |
96 |
|
{ |
97 |
0 |
id = cdoc.registerObject(vobj); |
98 |
0 |
Console.debug( |
99 |
|
"Registering new object and returning null for getvObj2jv"); |
100 |
0 |
return null; |
101 |
|
} |
102 |
0 |
if (vobj2jv.containsKey(vobj.getVorbaId())) |
103 |
|
{ |
104 |
0 |
return vobj2jv.get(vobj.getVorbaId()); |
105 |
|
} |
106 |
0 |
return null; |
107 |
|
} |
108 |
|
|
109 |
|
|
110 |
|
|
111 |
|
|
112 |
|
|
113 |
|
@param |
114 |
|
@param |
115 |
|
|
|
|
| 0% |
Uncovered Elements: 26 (26) |
Complexity: 12 |
Complexity Density: 0.86 |
|
116 |
0 |
protected void bindjvvobj(Object jvobj, uk.ac.vamsas.client.Vobject vobj)... |
117 |
|
{ |
118 |
0 |
VorbaId id = vobj.getVorbaId(); |
119 |
0 |
if (id == null) |
120 |
|
{ |
121 |
0 |
id = cdoc.registerObject(vobj); |
122 |
0 |
if (id == null || vobj.getVorbaId() == null |
123 |
|
|| cdoc.getObject(id) != vobj) |
124 |
|
{ |
125 |
0 |
Console.error("Failed to get id for " |
126 |
0 |
+ (vobj.isRegisterable() ? "registerable" |
127 |
|
: "unregisterable") |
128 |
|
+ " object " + vobj); |
129 |
|
} |
130 |
|
} |
131 |
0 |
if (vobj2jv.containsKey(vobj.getVorbaId()) |
132 |
|
&& !(vobj2jv.get(vobj.getVorbaId())).equals(jvobj)) |
133 |
|
{ |
134 |
0 |
Console.debug( |
135 |
|
"Warning? Overwriting existing vamsas id binding for " |
136 |
|
+ vobj.getVorbaId(), |
137 |
|
new Exception(MessageManager.getString( |
138 |
|
"exception.overwriting_vamsas_id_binding"))); |
139 |
|
} |
140 |
0 |
else if (jv2vobj.containsKey(jvobj) |
141 |
|
&& !((VorbaId) jv2vobj.get(jvobj)).equals(vobj.getVorbaId())) |
142 |
|
{ |
143 |
0 |
Console.debug( |
144 |
|
"Warning? Overwriting existing jalview object binding for " |
145 |
|
+ jvobj, |
146 |
|
new Exception(MessageManager.getString( |
147 |
|
"exception.overwriting_jalview_id_binding"))); |
148 |
|
} |
149 |
|
|
150 |
|
|
151 |
|
|
152 |
|
|
153 |
|
|
154 |
|
|
155 |
|
|
156 |
0 |
Console.debug("Binding " + vobj.getVorbaId() + " to " + jvobj); |
157 |
0 |
vobj2jv.put(vobj.getVorbaId(), jvobj); |
158 |
|
|
159 |
0 |
jv2vobj.put(jvobj, vobj.getVorbaId()); |
160 |
0 |
if (jvobj == this.jvobj || vobj == this.vobj) |
161 |
|
{ |
162 |
0 |
updateRegistryEntry(jvobj, vobj); |
163 |
|
} |
164 |
|
} |
165 |
|
|
166 |
|
|
167 |
|
|
168 |
|
|
169 |
|
|
|
|
| 0% |
Uncovered Elements: 7 (7) |
Complexity: 3 |
Complexity Density: 0.6 |
|
170 |
0 |
private void updateRegistryEntry(Object jvobj, Vobject vobj)... |
171 |
|
{ |
172 |
0 |
if (this.jvobj != null && this.vobj != null) |
173 |
|
{ |
174 |
0 |
Console.debug("updating dsobj registry. (" + this.getClass().getName() |
175 |
|
+ ")"); |
176 |
|
} |
177 |
0 |
this.jvobj = jvobj; |
178 |
0 |
this.vobj = vobj; |
179 |
0 |
dsReg.registerDsObj(this); |
180 |
|
} |
181 |
|
|
182 |
|
|
183 |
|
|
184 |
|
|
185 |
|
|
186 |
|
|
187 |
|
@param |
188 |
|
@param |
189 |
|
|
190 |
|
|
191 |
|
|
|
|
| 0% |
Uncovered Elements: 11 (11) |
Complexity: 3 |
Complexity Density: 0.43 |
|
192 |
0 |
protected void replaceJvObjMapping(Object oldjvobject, Object newjvobject)... |
193 |
|
{ |
194 |
0 |
Object vobject = jv2vobj.remove(oldjvobject); |
195 |
0 |
if (vobject == null) |
196 |
|
{ |
197 |
0 |
throw new Error(MessageManager.formatMessage( |
198 |
|
"error.implementation_error_old_jalview_object_not_bound", |
199 |
|
new String[] |
200 |
|
{ oldjvobject.toString() })); |
201 |
|
} |
202 |
0 |
if (newjvobject != null) |
203 |
|
{ |
204 |
0 |
jv2vobj.put(newjvobject, vobject); |
205 |
0 |
vobj2jv.put(vobject, newjvobject); |
206 |
0 |
updateRegistryEntry(newjvobject, vobj); |
207 |
|
} |
208 |
|
} |
209 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
210 |
0 |
public DatastoreItem()... |
211 |
|
{ |
212 |
0 |
super(); |
213 |
|
} |
214 |
|
|
|
|
| 0% |
Uncovered Elements: 2 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
|
215 |
0 |
public DatastoreItem(VamsasAppDatastore datastore)... |
216 |
|
{ |
217 |
0 |
this(); |
218 |
0 |
initDatastoreItem(datastore); |
219 |
|
|
220 |
|
} |
221 |
|
|
222 |
|
|
223 |
|
|
224 |
|
|
225 |
|
|
226 |
|
@param |
227 |
|
@param |
228 |
|
@param |
229 |
|
|
|
|
| 0% |
Uncovered Elements: 9 (9) |
Complexity: 3 |
Complexity Density: 0.43 |
|
230 |
0 |
public DatastoreItem(VamsasAppDatastore datastore2, Vobject vobj2,... |
231 |
|
Class boundType) |
232 |
|
{ |
233 |
0 |
this(datastore2); |
234 |
0 |
vobj = vobj2; |
235 |
0 |
jvobj = getvObj2jv(vobj2); |
236 |
0 |
tojalview = true; |
237 |
0 |
if (jvobj != null && !(boundType.isAssignableFrom(jvobj.getClass()))) |
238 |
|
{ |
239 |
0 |
throw new Error(MessageManager.formatMessage( |
240 |
|
"error.implementation_error_vamsas_doc_class_should_bind_to_type", |
241 |
|
new String[] |
242 |
|
{ vobj.getClass().toString(), boundType.toString(), |
243 |
|
jvobj.getClass().toString() })); |
244 |
|
} |
245 |
0 |
dsReg.registerDsObj(this); |
246 |
|
} |
247 |
|
|
248 |
|
|
249 |
|
|
250 |
|
|
251 |
|
|
252 |
|
@param |
253 |
|
|
254 |
|
@param |
255 |
|
|
256 |
|
@param |
257 |
|
|
258 |
|
|
259 |
|
|
|
|
| 0% |
Uncovered Elements: 9 (9) |
Complexity: 3 |
Complexity Density: 0.43 |
|
260 |
0 |
public DatastoreItem(VamsasAppDatastore datastore2, Object jvobj2,... |
261 |
|
Class boundToType) |
262 |
|
{ |
263 |
0 |
this(datastore2); |
264 |
0 |
jvobj = jvobj2; |
265 |
0 |
tojalview = false; |
266 |
0 |
vobj = getjv2vObj(jvobj); |
267 |
0 |
if (vobj != null && !(boundToType.isAssignableFrom(vobj.getClass()))) |
268 |
|
{ |
269 |
0 |
throw new Error(MessageManager.formatMessage( |
270 |
|
"error.implementation_error_vamsas_doc_class_should_bind_to_type", |
271 |
|
new String[] |
272 |
|
{ jvobj2.getClass().toString(), boundToType.toString(), |
273 |
|
vobj.getClass().toString() })); |
274 |
|
} |
275 |
0 |
dsReg.registerDsObj(this); |
276 |
|
} |
277 |
|
|
278 |
|
|
279 |
|
|
280 |
|
|
281 |
|
|
282 |
|
public abstract void addToDocument(); |
283 |
|
|
284 |
|
|
285 |
|
|
286 |
|
|
287 |
|
|
288 |
|
|
289 |
|
|
290 |
|
public abstract void conflict(); |
291 |
|
|
292 |
|
|
293 |
|
|
294 |
|
|
295 |
|
|
296 |
|
public abstract void updateToDoc(); |
297 |
|
|
298 |
|
|
299 |
|
|
300 |
|
|
301 |
|
|
302 |
|
public abstract void updateFromDoc(); |
303 |
|
|
304 |
|
|
305 |
|
|
306 |
|
|
307 |
|
|
308 |
|
public abstract void addFromDocument(); |
309 |
|
|
310 |
|
boolean addtodoc = false, conflicted = false, updated = false, |
311 |
|
addfromdoc = false, success = false; |
312 |
|
|
313 |
|
private boolean updatedtodoc; |
314 |
|
|
315 |
|
private boolean updatedfromdoc; |
316 |
|
|
317 |
|
|
318 |
|
|
319 |
|
|
320 |
|
|
|
|
| 0% |
Uncovered Elements: 17 (17) |
Complexity: 3 |
Complexity Density: 0.23 |
|
321 |
0 |
protected void doSync()... |
322 |
|
{ |
323 |
0 |
dsReg.registerDsObj(this); |
324 |
0 |
if (vobj == null) |
325 |
|
{ |
326 |
0 |
log.debug("adding new vobject to document."); |
327 |
0 |
addtodoc = true; |
328 |
0 |
addToDocument(); |
329 |
|
} |
330 |
|
else |
331 |
|
{ |
332 |
0 |
if (vobj.isUpdated()) |
333 |
|
{ |
334 |
0 |
log.debug("Handling update conflict for existing bound vobject."); |
335 |
0 |
conflicted = true; |
336 |
0 |
conflict(); |
337 |
|
} |
338 |
|
else |
339 |
|
{ |
340 |
0 |
log.debug("updating existing vobject in document."); |
341 |
0 |
updatedtodoc = true; |
342 |
0 |
updateToDoc(); |
343 |
|
} |
344 |
|
} |
345 |
|
|
346 |
0 |
success = true; |
347 |
|
} |
348 |
|
|
349 |
|
|
350 |
|
|
351 |
|
|
352 |
|
|
|
|
| 0% |
Uncovered Elements: 13 (13) |
Complexity: 3 |
Complexity Density: 0.33 |
|
353 |
0 |
protected void doJvUpdate()... |
354 |
|
{ |
355 |
0 |
dsReg.registerDsObj(this); |
356 |
0 |
if (jvobj == null) |
357 |
|
{ |
358 |
0 |
log.debug("adding new vobject to Jalview from Document"); |
359 |
0 |
addfromdoc = true; |
360 |
0 |
addFromDocument(); |
361 |
|
} |
362 |
|
else |
363 |
|
{ |
364 |
0 |
if (vobj.isUpdated()) |
365 |
|
{ |
366 |
0 |
log.debug("updating Jalview from existing bound vObject"); |
367 |
0 |
updatedfromdoc = true; |
368 |
0 |
updateFromDoc(); |
369 |
|
} |
370 |
|
} |
371 |
|
} |
372 |
|
|
373 |
|
VamsasAppDatastore datastore = null; |
374 |
|
|
375 |
|
|
376 |
|
|
377 |
|
|
378 |
|
protected Vobject vobj = null; |
379 |
|
|
380 |
|
|
381 |
|
|
382 |
|
|
383 |
|
protected Object jvobj = null; |
384 |
|
|
385 |
|
protected DatastoreRegistry dsReg; |
386 |
|
|
|
|
| 0% |
Uncovered Elements: 3 (3) |
Complexity: 1 |
Complexity Density: 0.33 |
|
387 |
0 |
public void initDatastoreItem(VamsasAppDatastore ds)... |
388 |
|
{ |
389 |
0 |
datastore = ds; |
390 |
0 |
dsReg = ds.getDatastoreRegisty(); |
391 |
0 |
initDatastoreItem(ds.getProvEntry(), ds.getClientDocument(), |
392 |
|
ds.getVamsasObjectBinding(), ds.getJvObjectBinding()); |
393 |
|
} |
394 |
|
|
|
|
| 0% |
Uncovered Elements: 4 (4) |
Complexity: 1 |
Complexity Density: 0.25 |
|
395 |
0 |
private void initDatastoreItem(Entry provEntry, IClientDocument cdoc,... |
396 |
|
Hashtable vobj2jv, IdentityHashMap jv2vobj) |
397 |
|
{ |
398 |
0 |
this.provEntry = provEntry; |
399 |
0 |
this.cdoc = cdoc; |
400 |
0 |
this.vobj2jv = vobj2jv; |
401 |
0 |
this.jv2vobj = jv2vobj; |
402 |
|
} |
403 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
404 |
0 |
protected boolean isModifiable(String modifiable)... |
405 |
|
{ |
406 |
0 |
return modifiable == null; |
407 |
|
} |
408 |
|
|
|
|
| 0% |
Uncovered Elements: 7 (7) |
Complexity: 2 |
Complexity Density: 0.4 |
|
409 |
0 |
protected Vector getjv2vObjs(Vector alsq)... |
410 |
|
{ |
411 |
0 |
Vector vObjs = new Vector(); |
412 |
0 |
Enumeration elm = alsq.elements(); |
413 |
0 |
while (elm.hasMoreElements()) |
414 |
|
{ |
415 |
0 |
vObjs.addElement(getjv2vObj(elm.nextElement())); |
416 |
|
} |
417 |
0 |
return vObjs; |
418 |
|
} |
419 |
|
|
420 |
|
|
421 |
|
|
422 |
|
|
423 |
|
|
424 |
|
|
425 |
|
@param |
426 |
|
@param |
427 |
|
|
428 |
|
@return |
429 |
|
|
430 |
|
|
|
|
| 0% |
Uncovered Elements: 19 (19) |
Complexity: 7 |
Complexity Density: 0.78 |
|
431 |
0 |
public int[] getSegRange(Seg visSeg, boolean ensureDirection)... |
432 |
|
{ |
433 |
0 |
boolean incl = visSeg.getInclusive(); |
434 |
|
|
435 |
0 |
int pol = (visSeg.getStart() <= visSeg.getEnd()) ? 1 : -1; |
436 |
|
|
437 |
0 |
int start = visSeg.getStart() + (incl ? 0 : pol); |
438 |
0 |
int end = visSeg.getEnd() + (incl ? 0 : -pol); |
439 |
0 |
if (ensureDirection && pol == -1) |
440 |
|
{ |
441 |
|
|
442 |
0 |
int t = end; |
443 |
0 |
end = start; |
444 |
0 |
start = t; |
445 |
|
} |
446 |
0 |
return new int[] { start, end, pol < 0 ? 1 : 0 }; |
447 |
|
} |
448 |
|
|
449 |
|
|
450 |
|
|
451 |
|
|
|
|
| 0% |
Uncovered Elements: 6 (6) |
Complexity: 2 |
Complexity Density: 0.5 |
|
452 |
0 |
protected jalview.datamodel.Provenance getJalviewProvenance(... |
453 |
|
Provenance prov) |
454 |
|
{ |
455 |
|
|
456 |
0 |
jalview.datamodel.Provenance jprov = new jalview.datamodel.Provenance(); |
457 |
0 |
for (int i = 0; i < prov.getEntryCount(); i++) |
458 |
|
{ |
459 |
0 |
jprov.addEntry(prov.getEntry(i).getUser(), |
460 |
|
prov.getEntry(i).getAction(), prov.getEntry(i).getDate(), |
461 |
|
prov.getEntry(i).getId()); |
462 |
|
} |
463 |
|
|
464 |
0 |
return jprov; |
465 |
|
} |
466 |
|
|
467 |
|
|
468 |
|
|
469 |
|
@return |
470 |
|
|
471 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
472 |
0 |
Provenance dummyProvenance()... |
473 |
|
{ |
474 |
0 |
return dummyProvenance(null); |
475 |
|
} |
476 |
|
|
|
|
| 0% |
Uncovered Elements: 10 (10) |
Complexity: 2 |
Complexity Density: 0.25 |
|
477 |
0 |
protected Entry dummyPEntry(String action)... |
478 |
|
{ |
479 |
0 |
Entry entry = new Entry(); |
480 |
0 |
entry.setApp(this.provEntry.getApp()); |
481 |
0 |
if (action != null) |
482 |
|
{ |
483 |
0 |
entry.setAction(action); |
484 |
|
} |
485 |
|
else |
486 |
|
{ |
487 |
0 |
entry.setAction("created."); |
488 |
|
} |
489 |
0 |
entry.setDate(new java.util.Date()); |
490 |
0 |
entry.setUser(this.provEntry.getUser()); |
491 |
0 |
return entry; |
492 |
|
} |
493 |
|
|
|
|
| 0% |
Uncovered Elements: 3 (3) |
Complexity: 1 |
Complexity Density: 0.33 |
|
494 |
0 |
protected Provenance dummyProvenance(String action)... |
495 |
|
{ |
496 |
0 |
Provenance prov = new Provenance(); |
497 |
0 |
prov.addEntry(dummyPEntry(action)); |
498 |
0 |
return prov; |
499 |
|
} |
500 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
501 |
0 |
protected void addProvenance(Provenance p, String action)... |
502 |
|
{ |
503 |
0 |
p.addEntry(dummyPEntry(action)); |
504 |
|
} |
505 |
|
|
506 |
|
|
507 |
|
@return |
508 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
509 |
0 |
public boolean isTojalview()... |
510 |
|
{ |
511 |
0 |
return tojalview; |
512 |
|
} |
513 |
|
|
514 |
|
|
515 |
|
@return |
516 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
517 |
0 |
public boolean isAddtodoc()... |
518 |
|
{ |
519 |
0 |
return addtodoc; |
520 |
|
} |
521 |
|
|
522 |
|
|
523 |
|
@return |
524 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
525 |
0 |
public boolean isConflicted()... |
526 |
|
{ |
527 |
0 |
return conflicted; |
528 |
|
} |
529 |
|
|
530 |
|
|
531 |
|
@return |
532 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
533 |
0 |
public boolean isUpdatedFromDoc()... |
534 |
|
{ |
535 |
0 |
return updatedfromdoc; |
536 |
|
} |
537 |
|
|
538 |
|
|
539 |
|
@return |
540 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
541 |
0 |
public boolean isUpdatedToDoc()... |
542 |
|
{ |
543 |
0 |
return updatedtodoc; |
544 |
|
} |
545 |
|
|
546 |
|
|
547 |
|
@return |
548 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
549 |
0 |
public boolean isAddfromdoc()... |
550 |
|
{ |
551 |
0 |
return addfromdoc; |
552 |
|
} |
553 |
|
|
554 |
|
|
555 |
|
@return |
556 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
557 |
0 |
public boolean isSuccess()... |
558 |
|
{ |
559 |
0 |
return success; |
560 |
|
} |
561 |
|
|
562 |
|
|
563 |
|
@return |
564 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
565 |
0 |
public Vobject getVobj()... |
566 |
|
{ |
567 |
0 |
return vobj; |
568 |
|
} |
569 |
|
|
570 |
|
|
571 |
|
@return |
572 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
573 |
0 |
public Object getJvobj()... |
574 |
|
{ |
575 |
0 |
return jvobj; |
576 |
|
} |
577 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
578 |
0 |
public boolean docWasUpdated()... |
579 |
|
{ |
580 |
0 |
return (this.addtodoc || this.updated) && this.success; |
581 |
|
} |
582 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
583 |
0 |
public boolean jvWasUpdated()... |
584 |
|
{ |
585 |
0 |
return (success); |
586 |
|
} |
587 |
|
|
588 |
|
} |