Project

General

Profile

Download (40.5 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2013 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10
package eu.etaxonomy.taxeditor.editor.view.dataimport.transientServices;
11

    
12
import java.io.IOException;
13
import java.util.Collection;
14
import java.util.HashSet;
15
import java.util.List;
16
import java.util.Map;
17
import java.util.Set;
18
import java.util.UUID;
19

    
20
import org.apache.lucene.index.CorruptIndexException;
21
import org.apache.lucene.queryParser.ParseException;
22
import org.hibernate.LockOptions;
23
import org.hibernate.Session;
24
import org.hibernate.criterion.Criterion;
25
import org.hibernate.envers.query.criteria.AuditCriterion;
26
import org.hibernate.search.spatial.impl.Rectangle;
27

    
28
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
29
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
30
import eu.etaxonomy.cdm.api.service.DeleteResult;
31
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
32
import eu.etaxonomy.cdm.api.service.UpdateResult;
33
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
34
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
35
import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
36
import eu.etaxonomy.cdm.api.service.dto.FieldUnitDTO;
37
import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
38
import eu.etaxonomy.cdm.api.service.dto.PreservedSpecimenDTO;
39
import eu.etaxonomy.cdm.api.service.pager.Pager;
40
import eu.etaxonomy.cdm.api.service.search.SearchResult;
41
import eu.etaxonomy.cdm.api.service.util.TaxonRelationshipEdge;
42
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
43
import eu.etaxonomy.cdm.model.common.Annotation;
44
import eu.etaxonomy.cdm.model.common.DefinedTerm;
45
import eu.etaxonomy.cdm.model.common.ICdmBase;
46
import eu.etaxonomy.cdm.model.common.ISourceable;
47
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
48
import eu.etaxonomy.cdm.model.common.LSID;
49
import eu.etaxonomy.cdm.model.common.Language;
50
import eu.etaxonomy.cdm.model.common.Marker;
51
import eu.etaxonomy.cdm.model.common.MarkerType;
52
import eu.etaxonomy.cdm.model.description.DescriptionBase;
53
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
54
import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
55
import eu.etaxonomy.cdm.model.location.Country;
56
import eu.etaxonomy.cdm.model.media.Media;
57
import eu.etaxonomy.cdm.model.media.Rights;
58
import eu.etaxonomy.cdm.model.molecular.DnaSample;
59
import eu.etaxonomy.cdm.model.molecular.Sequence;
60
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
61
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
62
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
63
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
64
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
65
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
66
import eu.etaxonomy.cdm.model.taxon.Taxon;
67
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
68
import eu.etaxonomy.cdm.model.view.AuditEvent;
69
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
70
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
71
import eu.etaxonomy.cdm.persistence.dto.MergeResult;
72
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
73
import eu.etaxonomy.cdm.persistence.query.Grouping;
74
import eu.etaxonomy.cdm.persistence.query.MatchMode;
75
import eu.etaxonomy.cdm.persistence.query.OrderHint;
76
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
77
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
78
import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
79

    
80
/**
81
 * @author pplitzner
82
 * @date 26.09.2013
83
 *
84
 */
85
public class TransientOccurenceService implements IOccurrenceService {
86

    
87
    private final IOccurrenceService defaultService;
88
    private final Collection<SpecimenOrObservationBase<?>> units;
89

    
90
    /**
91
     * @param defaultService
92
     */
93
    public TransientOccurenceService(IOccurrenceService defaultService) {
94
        this.defaultService = defaultService;
95
        this.units = new HashSet<SpecimenOrObservationBase<?>>();
96
    }
97

    
98
    /**
99
     * @param t
100
     * @param pageSize
101
     * @param pageNumber
102
     * @param sort
103
     * @param propertyPaths
104
     * @return
105
     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(eu.etaxonomy.cdm.model.common.VersionableEntity, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
106
     */
107
    @Override
108
    public Pager<AuditEventRecord<SpecimenOrObservationBase>> pageAuditEvents(SpecimenOrObservationBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
109
        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
110
    }
111

    
112
    /**
113
     * @param annotatedObj
114
     * @param status
115
     * @param pageSize
116
     * @param pageNumber
117
     * @param orderHints
118
     * @param propertyPaths
119
     * @return
120
     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getAnnotations(eu.etaxonomy.cdm.model.common.AnnotatableEntity, eu.etaxonomy.cdm.model.common.MarkerType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
121
     */
122
    @Override
123
    public Pager<Annotation> getAnnotations(SpecimenOrObservationBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
124
        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
125
    }
126

    
127
    /**
128
     *
129
     * @see eu.etaxonomy.cdm.api.service.IService#clear()
130
     */
131
    @Override
132
    public void clear() {
133
        defaultService.clear();
134
    }
135

    
136
    /**
137
     * @param t
138
     * @param lockMode
139
     * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
140
     */
141
    @Override
142
    public void lock(SpecimenOrObservationBase t, LockOptions lockOptions) {
143
        defaultService.lock(t, lockOptions);
144
    }
145

    
146
    /**
147
     * @param t
148
     * @param lockMode
149
     * @param propertyPaths
150
     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
151
     */
152
    @Override
153
    public void refresh(SpecimenOrObservationBase t, LockOptions lockOptions, List<String> propertyPaths) {
154
        defaultService.refresh(t, lockOptions, propertyPaths);
155
    }
156

    
157
    /**
158
     *
159
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
160
     */
161
    @Override
162
    public void updateTitleCache() {
163
        defaultService.updateTitleCache();
164
    }
165

    
166
    /**
167
     * @param t
168
     * @return
169
     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
170
     */
171
    @Override
172
    public AuditEventRecord<SpecimenOrObservationBase> getNextAuditEvent(SpecimenOrObservationBase t) {
173
        return defaultService.getNextAuditEvent(t);
174
    }
175

    
176
    /**
177
     * @param annotatableEntity
178
     * @param technical
179
     * @param pageSize
180
     * @param pageNumber
181
     * @param orderHints
182
     * @param propertyPaths
183
     * @return
184
     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getMarkers(eu.etaxonomy.cdm.model.common.AnnotatableEntity, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
185
     */
186
    @Override
187
    public Pager<Marker> getMarkers(SpecimenOrObservationBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
188
        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
189
    }
190

    
191
    /**
192
     * @param clazz
193
     * @param stepSize
194
     * @param cacheStrategy
195
     * @param monitor
196
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache(java.lang.Class, java.lang.Integer, eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy, eu.etaxonomy.cdm.common.monitor.IProgressMonitor)
197
     */
198
    @Override
199
    public void updateTitleCache(Class<? extends SpecimenOrObservationBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<SpecimenOrObservationBase> cacheStrategy, IProgressMonitor monitor) {
200
        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
201
    }
202

    
203
    /**
204
     * @param t
205
     * @return
206
     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
207
     */
208
    @Override
209
    public AuditEventRecord<SpecimenOrObservationBase> getPreviousAuditEvent(SpecimenOrObservationBase t) {
210
        return defaultService.getPreviousAuditEvent(t);
211
    }
212

    
213
    /**
214
     * @param iso639
215
     * @return
216
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCountryByIso(java.lang.String)
217
     */
218
    @Override
219
    public Country getCountryByIso(String iso639) {
220
        return defaultService.getCountryByIso(iso639);
221
    }
222

    
223
    /**
224
     * @param clazz
225
     * @return
226
     * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
227
     */
228
    @Override
229
    public int count(Class<? extends SpecimenOrObservationBase> clazz) {
230
        return defaultService.count(clazz);
231
    }
232

    
233
    /**
234
     * @param name
235
     * @return
236
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCountryByName(java.lang.String)
237
     */
238
    @Override
239
    public List<Country> getCountryByName(String name) {
240
        return defaultService.getCountryByName(name);
241
    }
242

    
243
    /**
244
     * @param type
245
     * @param determinedAs
246
     * @param limit
247
     * @param start
248
     * @param orderHints
249
     * @param propertyPaths
250
     * @return
251
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#list(java.lang.Class, eu.etaxonomy.cdm.model.taxon.TaxonBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
252
     */
253
    @Override
254
    public Pager<SpecimenOrObservationBase> list(Class<? extends SpecimenOrObservationBase> type, TaxonBase determinedAs, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
255
        return defaultService.list(type, determinedAs, limit, start, orderHints, propertyPaths);
256
    }
257

    
258
    /**
259
     * @param clazz
260
     * @param from
261
     * @param to
262
     * @param criteria
263
     * @param pageSize
264
     * @param pageValue
265
     * @param sort
266
     * @param propertyPaths
267
     * @return
268
     * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(java.lang.Class, eu.etaxonomy.cdm.model.view.AuditEvent, eu.etaxonomy.cdm.model.view.AuditEvent, java.util.List, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
269
     */
270
    @Override
271
    public Pager<AuditEventRecord<SpecimenOrObservationBase>> pageAuditEvents(Class<? extends SpecimenOrObservationBase> clazz, AuditEvent from, AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List<String> propertyPaths) {
272
        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
273
    }
274

    
275
    /**
276
     * @param lsid
277
     * @return
278
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
279
     */
280
    @Override
281
    public SpecimenOrObservationBase find(LSID lsid) {
282
        return defaultService.find(lsid);
283
    }
284

    
285
    /**
286
     * @param persistentObject
287
     * @return
288
     * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
289
     */
290
    @Override
291
    public DeleteResult delete(SpecimenOrObservationBase persistentObject) {
292
        return defaultService.delete(persistentObject);
293
    }
294

    
295
    /**
296
     * @param clazz
297
     * @param technical
298
     * @param pageSize
299
     * @param pageNumber
300
     * @param propertyPaths
301
     * @return
302
     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
303
     */
304
    @Override
305
    public List<Object[]> groupMarkers(Class<? extends SpecimenOrObservationBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
306
        return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
307
    }
308

    
309
    /**
310
     * @param uuid
311
     * @return
312
     * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
313
     */
314
    @Override
315
    public boolean exists(UUID uuid) {
316
        return defaultService.exists(uuid);
317
    }
318

    
319
    /**
320
     * @param x
321
     * @param y
322
     * @return
323
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
324
     */
325
    @Override
326
    public SpecimenOrObservationBase replace(SpecimenOrObservationBase x, SpecimenOrObservationBase y) {
327
        return defaultService.replace(x, y);
328
    }
329

    
330
    /**
331
     * @param uuidSet
332
     * @return
333
     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
334
     */
335
    @Override
336
    public List<SpecimenOrObservationBase> find(Set<UUID> uuidSet) {
337
        return defaultService.find(uuidSet);
338
    }
339

    
340
    /**
341
     * @param t
342
     * @param pageSize
343
     * @param pageNumber
344
     * @param propertyPaths
345
     * @return
346
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
347
     */
348
    @Override
349
    public Pager<IdentifiableSource> getSources(SpecimenOrObservationBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
350
        return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
351
    }
352

    
353
    /**
354
     * @param uuid
355
     * @return
356
     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
357
     */
358
    @Override
359
    public SpecimenOrObservationBase find(UUID uuid) {
360
        return defaultService.find(uuid);
361
    }
362

    
363
    /**
364
     * @param id
365
     * @return
366
     * @see eu.etaxonomy.cdm.api.service.IService#find(int)
367
     */
368
    @Override
369
    public SpecimenOrObservationBase find(int id) {
370
        return defaultService.find(id);
371
    }
372

    
373
    /**
374
     * @param t
375
     * @param pageSize
376
     * @param pageNumber
377
     * @param propertyPaths
378
     * @return
379
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
380
     */
381
    @Override
382
    public Pager<Rights> getRights(SpecimenOrObservationBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
383
        return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
384
    }
385

    
386
    /**
387
     * @param clazz
388
     * @param technical
389
     * @return
390
     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
391
     */
392
    @Override
393
    public int countMarkers(Class<? extends SpecimenOrObservationBase> clazz, Boolean technical) {
394
        return defaultService.countMarkers(clazz, technical);
395
    }
396

    
397
    /**
398
     * @param occurence
399
     * @param pageSize
400
     * @param pageNumber
401
     * @param propertyPaths
402
     * @return
403
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getMedia(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List)
404
     */
405
    @Override
406
    public Pager<Media> getMedia(SpecimenOrObservationBase occurence, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
407
        return defaultService.getMedia(occurence, pageSize, pageNumber, propertyPaths);
408
    }
409

    
410
    /**
411
     * @param idSet
412
     * @return
413
     * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
414
     */
415
    @Override
416
    public List<SpecimenOrObservationBase> findById(Set<Integer> idSet) {
417
        return defaultService.findById(idSet);
418
    }
419

    
420
    /**
421
     * @param clazz
422
     * @param idInSource
423
     * @param idNamespace
424
     * @return
425
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
426
     */
427
    @Override
428
    public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
429
        return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
430
    }
431

    
432
    /**
433
     * @return
434
     * @see eu.etaxonomy.cdm.api.service.IService#getSession()
435
     */
436
    @Override
437
    public Session getSession() {
438
        return defaultService.getSession();
439
    }
440

    
441
    /**
442
     * @return
443
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
444
     */
445
    @Override
446
    public List<UuidAndTitleCache<SpecimenOrObservationBase>> getUuidAndTitleCache() {
447
        return defaultService.getUuidAndTitleCache();
448
    }
449

    
450
    /**
451
     * @param clazz
452
     * @param limit
453
     * @param start
454
     * @param groups
455
     * @param propertyPaths
456
     * @return
457
     * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
458
     */
459
    @Override
460
    public List<Object[]> group(Class<? extends SpecimenOrObservationBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
461
        return defaultService.group(clazz, limit, start, groups, propertyPaths);
462
    }
463

    
464
    /**
465
     * @param occurence
466
     * @param taxonBase
467
     * @param pageSize
468
     * @param pageNumber
469
     * @param propertyPaths
470
     * @return
471
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getDeterminations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.taxon.TaxonBase, java.lang.Integer, java.lang.Integer, java.util.List)
472
     */
473
    @Override
474
    public Pager<DeterminationEvent> getDeterminations(SpecimenOrObservationBase occurence, TaxonBase taxonBase, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
475
        return defaultService.getDeterminations(occurence, taxonBase, pageSize, pageNumber, propertyPaths);
476
    }
477

    
478
    /**
479
     * @param clazz
480
     * @param queryString
481
     * @param matchmode
482
     * @param criteria
483
     * @param pageSize
484
     * @param pageNumber
485
     * @param orderHints
486
     * @param propertyPaths
487
     * @return
488
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
489
     */
490
    @Override
491
    public Pager<SpecimenOrObservationBase> findByTitle(Class<? extends SpecimenOrObservationBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
492
        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
493
    }
494

    
495
    /**
496
     * @param occurence
497
     * @param pageSize
498
     * @param pageNumber
499
     * @param propertyPaths
500
     * @return
501
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getDerivationEvents(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List)
502
     */
503
    @Override
504
    public Pager<DerivationEvent> getDerivationEvents(SpecimenOrObservationBase occurence, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
505
        return defaultService.getDerivationEvents(occurence, pageSize, pageNumber, propertyPaths);
506
    }
507

    
508
    /**
509
     * @param type
510
     * @param limit
511
     * @param start
512
     * @param orderHints
513
     * @param propertyPaths
514
     * @return
515
     * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
516
     */
517
    @Override
518
    public <S extends SpecimenOrObservationBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
519
        return defaultService.list(type, limit, start, orderHints, propertyPaths);
520
    }
521

    
522
    /**
523
     * @param clazz
524
     * @param query
525
     * @param pageSize
526
     * @param pageNumber
527
     * @param orderHints
528
     * @param propertyPaths
529
     * @return
530
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#search(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
531
     */
532
    @Override
533
    public Pager<SpecimenOrObservationBase> search(Class<? extends SpecimenOrObservationBase> clazz, String query, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
534
        return defaultService.search(clazz, query, pageSize, pageNumber, orderHints, propertyPaths);
535
    }
536

    
537
    /**
538
     * @param configurator
539
     * @return
540
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
541
     */
542
    @Override
543
    public Pager<SpecimenOrObservationBase> findByTitle(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> configurator) {
544
        return defaultService.findByTitle(configurator);
545
    }
546

    
547
    /**
548
     * @param clazz
549
     * @param queryString
550
     * @param matchmode
551
     * @param criteria
552
     * @return
553
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
554
     */
555
    @Override
556
    public Integer countByTitle(Class<? extends SpecimenOrObservationBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
557
        return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
558
    }
559

    
560
    /**
561
     * @param uuid
562
     * @return
563
     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
564
     */
565
    @Override
566
    public SpecimenOrObservationBase load(UUID uuid) {
567
        return defaultService.load(uuid);
568
    }
569

    
570
    /**
571
     * @param uuid
572
     * @param propertyPaths
573
     * @return
574
     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
575
     */
576
    @Override
577
    public SpecimenOrObservationBase load(UUID uuid, List<String> propertyPaths) {
578
        return defaultService.load(uuid, propertyPaths);
579
    }
580

    
581
    /**
582
     * @param configurator
583
     * @return
584
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
585
     */
586
    @Override
587
    public Integer countByTitle(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> configurator) {
588
        return defaultService.countByTitle(configurator);
589
    }
590

    
591
    /**
592
     * @return
593
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getFieldUnitUuidAndTitleCache()
594
     */
595
    @Override
596
    public List<UuidAndTitleCache<FieldUnit>> getFieldUnitUuidAndTitleCache() {
597
        return defaultService.getFieldUnitUuidAndTitleCache();
598
    }
599

    
600
    /**
601
     * @return
602
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getDerivedUnitUuidAndTitleCache()
603
     */
604
    @Override
605
    public List<UuidAndTitleCache<DerivedUnit>> getDerivedUnitUuidAndTitleCache() {
606
        return defaultService.getDerivedUnitUuidAndTitleCache();
607
    }
608

    
609
    /**
610
     * @param transientObject
611
     * @return
612
     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
613
     */
614
    @Override
615
    public SpecimenOrObservationBase merge(SpecimenOrObservationBase transientObject) {
616
        return defaultService.merge(transientObject);
617
    }
618

    
619
    /**
620
     * @param derivedUnit
621
     * @param propertyPaths
622
     * @return
623
     * @throws DerivedUnitFacadeNotSupportedException
624
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getDerivedUnitFacade(eu.etaxonomy.cdm.model.occurrence.DerivedUnit, java.util.List)
625
     */
626
    @Override
627
    public DerivedUnitFacade getDerivedUnitFacade(DerivedUnit derivedUnit, List<String> propertyPaths) throws DerivedUnitFacadeNotSupportedException {
628
        return defaultService.getDerivedUnitFacade(derivedUnit, propertyPaths);
629
    }
630

    
631
    /**
632
     * @param clazz
633
     * @param queryString
634
     * @param matchmode
635
     * @param criteria
636
     * @param pageSize
637
     * @param pageNumber
638
     * @param orderHints
639
     * @param propertyPaths
640
     * @return
641
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
642
     */
643
    @Override
644
    public List<SpecimenOrObservationBase> listByTitle(Class<? extends SpecimenOrObservationBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
645
        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
646
    }
647

    
648
    /**
649
     * @param description
650
     * @param propertyPaths
651
     * @return
652
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listDerivedUnitFacades(eu.etaxonomy.cdm.model.description.DescriptionBase, java.util.List)
653
     */
654
    @Override
655
    public List<DerivedUnitFacade> listDerivedUnitFacades(DescriptionBase description, List<String> propertyPaths) {
656
        return defaultService.listDerivedUnitFacades(description, propertyPaths);
657
    }
658

    
659
    /**
660
     * @param type
661
     * @param pageSize
662
     * @param pageNumber
663
     * @param orderHints
664
     * @param propertyPaths
665
     * @return
666
     * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
667
     */
668
    @Override
669
    public <S extends SpecimenOrObservationBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
670
        return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
671
    }
672

    
673
    /**
674
     * @param type
675
     * @param includeRelationships
676
     * @param associatedTaxon
677
     * @param maxDepth
678
     * @param pageSize
679
     * @param pageNumber
680
     * @param orderHints
681
     * @param propertyPaths
682
     * @return
683
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listByAssociatedTaxon(java.lang.Class, java.util.Set, eu.etaxonomy.cdm.model.taxon.Taxon, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
684
     */
685
    @Override
686
    public <T extends SpecimenOrObservationBase> List<T> listByAssociatedTaxon(Class<T> type, Set<TaxonRelationshipEdge> includeRelationships, Taxon associatedTaxon, Integer maxDepth, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
687
        return defaultService.listByAssociatedTaxon(type, includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
688
    }
689

    
690
    /**
691
     * @param persistentObject
692
     * @return
693
     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
694
     */
695
    @Override
696
    public UUID refresh(SpecimenOrObservationBase persistentObject) {
697
        return defaultService.refresh(persistentObject);
698
    }
699

    
700
    /**
701
     * @param clazz
702
     * @param queryString
703
     * @param matchmode
704
     * @param criteria
705
     * @param pageSize
706
     * @param pageNumber
707
     * @param orderHints
708
     * @param propertyPaths
709
     * @return
710
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByReferenceTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
711
     */
712
    @Override
713
    public List<SpecimenOrObservationBase> listByReferenceTitle(Class<? extends SpecimenOrObservationBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
714
        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
715
    }
716

    
717
    /**
718
     * @param tableName
719
     * @param limit
720
     * @param start
721
     * @return
722
     * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
723
     */
724
    @Override
725
    public List<SpecimenOrObservationBase> rows(String tableName, int limit, int start) {
726
        return defaultService.rows(tableName, limit, start);
727
    }
728

    
729
    /**
730
     * @param newInstances
731
     * @return
732
     * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
733
     */
734
    @Override
735
    public Map<UUID, SpecimenOrObservationBase> save(Collection<SpecimenOrObservationBase> newInstances) {
736
        for(SpecimenOrObservationBase unit:newInstances){
737
            save(unit);
738
        }
739
        return null;
740
    }
741

    
742
    /**
743
     * @param type
744
     * @param includeRelationships
745
     * @param associatedTaxon
746
     * @param maxDepth
747
     * @param pageSize
748
     * @param pageNumber
749
     * @param orderHints
750
     * @param propertyPaths
751
     * @return
752
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#pageByAssociatedTaxon(java.lang.Class, java.util.Set, eu.etaxonomy.cdm.model.taxon.Taxon, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
753
     */
754
    @Override
755
    public <T extends SpecimenOrObservationBase> Pager<T> pageByAssociatedTaxon(Class<T> type, Set<TaxonRelationshipEdge> includeRelationships, Taxon associatedTaxon, Integer maxDepth, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
756
        return defaultService.pageByAssociatedTaxon(type, includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
757
    }
758

    
759
    /**
760
     * @param newInstance
761
     * @return
762
     * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
763
     */
764
    @Override
765
    public SpecimenOrObservationBase save(SpecimenOrObservationBase newInstance) {
766
        units.add(newInstance);
767
        return null;
768
    }
769

    
770
    /**
771
     * @param transientObject
772
     * @return
773
     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
774
     */
775
    @Override
776
    public UUID saveOrUpdate(SpecimenOrObservationBase transientObject) {
777
        units.add(transientObject);
778
        return null;
779
    }
780

    
781
    /**
782
     * @param transientObjects
783
     * @return
784
     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
785
     */
786
    @Override
787
    public Map<UUID, SpecimenOrObservationBase> saveOrUpdate(Collection<SpecimenOrObservationBase> transientObjects) {
788
        for(SpecimenOrObservationBase unit:transientObjects){
789
            saveOrUpdate(unit);
790
        }
791
        return null;
792
    }
793

    
794
    /**
795
     * @param clazz
796
     * @param queryString
797
     * @param boundingBox
798
     * @param languages
799
     * @param highlightFragments
800
     * @param pageSize
801
     * @param pageNumber
802
     * @param orderHints
803
     * @param propertyPaths
804
     * @return
805
     * @throws CorruptIndexException
806
     * @throws IOException
807
     * @throws ParseException
808
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#findByFullText(java.lang.Class, java.lang.String, org.hibernate.search.spatial.impl.Rectangle, java.util.List, boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
809
     */
810
    @Override
811
    public Pager<SearchResult<SpecimenOrObservationBase>> findByFullText(Class<? extends SpecimenOrObservationBase> clazz, String queryString, Rectangle boundingBox, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException {
812
        return defaultService.findByFullText(clazz, queryString, boundingBox, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
813
    }
814

    
815
    /**
816
     * @param transientObject
817
     * @return
818
     * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
819
     */
820
    @Override
821
    public UUID update(SpecimenOrObservationBase transientObject) {
822
        return defaultService.update(transientObject);
823
    }
824

    
825
    /**
826
     * @param example
827
     * @param includeProperties
828
     * @param limit
829
     * @param start
830
     * @param orderHints
831
     * @param propertyPaths
832
     * @return
833
     * @see eu.etaxonomy.cdm.api.service.IService#list(eu.etaxonomy.cdm.model.common.ICdmBase, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
834
     */
835
    @Override
836
    public List<SpecimenOrObservationBase> list(SpecimenOrObservationBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
837
        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
838
    }
839

    
840
    @Override
841
    public int deduplicate(Class<? extends SpecimenOrObservationBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
842
        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
843
    }
844

    
845
    @Override
846
    public Pager<SpecimenOrObservationBase> findTitleCache(Class<? extends SpecimenOrObservationBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
847
        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
848
    }
849

    
850
    public Collection<SpecimenOrObservationBase<?>> getUnits() {
851
        return units;
852
    }
853

    
854
    @Override
855
    public Collection<FieldUnit> getFieldUnits(UUID derivedUnitUuid) {
856
        return defaultService.getFieldUnits(derivedUnitUuid);
857
    }
858

    
859
    @Override
860
    public <T extends SpecimenOrObservationBase> Pager<T> pageByAssociatedTaxon(Class<T> type,
861
            Set<TaxonRelationshipEdge> includeRelationships, String taxonUUID, Integer maxDepth, Integer pageSize,
862
            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
863
        return defaultService.pageByAssociatedTaxon(type, includeRelationships, taxonUUID,
864
                maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
865
    }
866

    
867

    
868
    @Override
869
    public UpdateResult moveSequence(DnaSample from, DnaSample to, Sequence sequence) {
870
        return defaultService.moveSequence(from, to, sequence);
871
    }
872

    
873
	@Override
874
	public DeleteResult isDeletable(SpecimenOrObservationBase object,
875
			DeleteConfiguratorBase config) {
876
		return defaultService.isDeletable(object, config);
877
	}
878

    
879
    @Override
880
    public int countDeterminations(SpecimenOrObservationBase occurence, TaxonBase taxonbase) {
881
        return defaultService.countDeterminations(occurence, taxonbase);
882
    }
883

    
884
	@Override
885
	public SpecimenOrObservationBase findWithoutFlush(UUID uuid) {
886
		return defaultService.findWithoutFlush(uuid);
887
	}
888

    
889
	@Override
890
	public Collection<SpecimenOrObservationBase> listFieldUnitsByAssociatedTaxon(Taxon associatedTaxon,
891
	        List<OrderHint> orderHints, List<String> propertyPaths) {
892
	    return defaultService.listFieldUnitsByAssociatedTaxon(associatedTaxon, orderHints, propertyPaths);
893
	}
894

    
895
	@Override
896
	public Pager<SpecimenOrObservationBase> pageFieldUnitsByAssociatedTaxon(
897
	        Set<TaxonRelationshipEdge> includeRelationships, Taxon associatedTaxon, Integer maxDepth, Integer pageSize,
898
	        Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
899
	    return defaultService.pageFieldUnitsByAssociatedTaxon(includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
900
	}
901

    
902

    
903
	@Override
904
	public FieldUnitDTO assembleFieldUnitDTO(FieldUnit fieldUnit, UUID associatedTaxonUuid) {
905
	    return defaultService.assembleFieldUnitDTO(fieldUnit, associatedTaxonUuid);
906
	}
907

    
908
	@Override
909
	public PreservedSpecimenDTO assemblePreservedSpecimenDTO(DerivedUnit derivedUnit) {
910
	    return defaultService.assemblePreservedSpecimenDTO(derivedUnit);
911
	}
912

    
913
    @Override
914
    public Collection<ICdmBase> getNonCascadedAssociatedElements(SpecimenOrObservationBase<?> specimen) {
915
        return defaultService.getNonCascadedAssociatedElements(specimen);
916
    }
917

    
918
    @Override
919
    public DeleteResult delete(SpecimenOrObservationBase<?> specimen, SpecimenDeleteConfigurator config) {
920
        return defaultService.delete(specimen, config);
921
    }
922

    
923
    @Override
924
    public Collection<IndividualsAssociation> listIndividualsAssociations(SpecimenOrObservationBase<?> specimen,
925
            Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
926
        return defaultService.listIndividualsAssociations(specimen, limit, start, orderHints, propertyPaths);
927
    }
928

    
929
    @Override
930
    public Collection<SpecimenTypeDesignation> listTypeDesignations(SpecimenOrObservationBase<?> specimen,
931
            Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
932
        return defaultService.listTypeDesignations(specimen, limit, start, orderHints, propertyPaths);
933
    }
934

    
935
    @Override
936
    public Collection<DescriptionBase<?>> listDescriptionsWithDescriptionSpecimen(
937
            SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints,
938
            List<String> propertyPaths) {
939
        return defaultService.listDescriptionsWithDescriptionSpecimen(specimen, limit, start, orderHints, propertyPaths);
940
    }
941

    
942
	@Override
943
	public <S extends SpecimenOrObservationBase>  Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
944
		return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
945
	}
946

    
947
	@Override
948
	public Collection<DescriptionElementBase> getCharacterDataForSpecimen(SpecimenOrObservationBase<?> arg0) {
949
	    return defaultService.getCharacterDataForSpecimen(arg0);
950
	}
951

    
952
	@Override
953
	public Collection<DescriptionElementBase> getCharacterDataForSpecimen(UUID arg0) {
954
	    return getCharacterDataForSpecimen(arg0);
955
	}
956

    
957
	@Override
958
	public String getMostSignificantIdentifier(DerivedUnit derivedUnit) {
959
	    return defaultService.getMostSignificantIdentifier(derivedUnit);
960
	}
961

    
962
	@Override
963
	public int countOccurrences(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> config) {
964
	    return defaultService.countOccurrences(config);
965
	}
966

    
967
	/**
968
	 * {@inheritDoc}
969
	 */
970
	@Override
971
	public List<DerivedUnit> getAllChildDerivatives(SpecimenOrObservationBase<?> specimen) {
972
	    return defaultService.getAllChildDerivatives(specimen);
973
	}
974

    
975
	/**
976
	 * {@inheritDoc}
977
	 */
978
	@Override
979
	public List<SpecimenOrObservationBase<?>> getAllHierarchyDerivatives(SpecimenOrObservationBase<?> specimen) {
980
	    return defaultService.getAllHierarchyDerivatives(specimen);
981
	}
982

    
983

    
984
    @Override
985
    public DeleteResult delete(UUID uuid) {
986
        return defaultService.delete(uuid);
987
    }
988

    
989
    @Override
990
    public DeleteResult delete(Collection<UUID> arg0) {
991
        return defaultService.delete(arg0);
992
    }
993

    
994

    
995
    @Override
996
    public List<SpecimenOrObservationBase> merge(List<SpecimenOrObservationBase> arg0) {
997
        return defaultService.merge(arg0);
998
    }
999

    
1000
    @Override
1001
    public UpdateResult moveDerivate(UUID arg0, UUID arg1, UUID arg2) {
1002
        return defaultService.moveDerivate(arg0, arg1, arg2);
1003
    }
1004

    
1005
    @Override
1006
    public boolean moveDerivate(SpecimenOrObservationBase<?> from, SpecimenOrObservationBase<?> to, DerivedUnit derivate) {
1007
        return defaultService.moveDerivate(from, to, derivate);
1008
    }
1009

    
1010
    @Override
1011
    public UpdateResult moveSequence(UUID arg0, UUID arg1, UUID arg2) {
1012
        return defaultService.moveSequence(arg0, arg1, arg2);
1013
    }
1014

    
1015
    @Override
1016
    public Pager<Media> getMediainHierarchy(SpecimenOrObservationBase arg0, Integer arg1, Integer arg2,
1017
            List<String> arg3) {
1018
        return defaultService.getMediainHierarchy(arg0, arg1, arg2, arg3);
1019
    }
1020

    
1021
    @Override
1022
    public List<MergeResult<SpecimenOrObservationBase>> merge(List<SpecimenOrObservationBase> arg0, boolean arg1) {
1023
        return defaultService.merge(arg0, arg1);
1024
    }
1025

    
1026
    @Override
1027
    public MergeResult<SpecimenOrObservationBase> merge(SpecimenOrObservationBase arg0, boolean arg1) {
1028
        return defaultService.merge(arg0, arg1);
1029
    }
1030

    
1031
    /**
1032
     * {@inheritDoc}
1033
     */
1034
    @Override
1035
    public Collection<TaxonBase<?>> listAssociatedTaxa(SpecimenOrObservationBase<?> arg0, Integer arg1, Integer arg2,
1036
            List<OrderHint> arg3, List<String> arg4) {
1037
        return defaultService.listAssociatedTaxa(arg0, arg1, arg2, arg3, arg4);
1038
    }
1039

    
1040
    @Override
1041
    public SpecimenOrObservationBase loadWithUpdate(UUID arg0) {
1042
        return defaultService.loadWithUpdate(arg0);
1043
    }
1044

    
1045
    /**
1046
     * {@inheritDoc}
1047
     */
1048
    @Override
1049
    public DeleteResult delete(UUID arg0, SpecimenDeleteConfigurator arg1) {
1050
        return defaultService.delete(arg0, arg1);
1051
    }
1052

    
1053
}
(7-7/10)