Project

General

Profile

Download (42.8 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.classic.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.DefinedTermBase;
46
import eu.etaxonomy.cdm.model.common.ICdmBase;
47
import eu.etaxonomy.cdm.model.common.ISourceable;
48
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
49
import eu.etaxonomy.cdm.model.common.LSID;
50
import eu.etaxonomy.cdm.model.common.Language;
51
import eu.etaxonomy.cdm.model.common.Marker;
52
import eu.etaxonomy.cdm.model.common.MarkerType;
53
import eu.etaxonomy.cdm.model.description.DescriptionBase;
54
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
55
import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
56
import eu.etaxonomy.cdm.model.location.Country;
57
import eu.etaxonomy.cdm.model.media.Media;
58
import eu.etaxonomy.cdm.model.media.Rights;
59
import eu.etaxonomy.cdm.model.molecular.DnaSample;
60
import eu.etaxonomy.cdm.model.molecular.Sequence;
61
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
62
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
63
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
64
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
65
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
66
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
67
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
68
import eu.etaxonomy.cdm.model.taxon.Taxon;
69
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
70
import eu.etaxonomy.cdm.model.view.AuditEvent;
71
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
72
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
73
import eu.etaxonomy.cdm.persistence.dto.MergeResult;
74
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
75
import eu.etaxonomy.cdm.persistence.query.Grouping;
76
import eu.etaxonomy.cdm.persistence.query.MatchMode;
77
import eu.etaxonomy.cdm.persistence.query.OrderHint;
78
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
79
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
80
import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
81

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

    
89
    private final IOccurrenceService defaultService;
90
    private final Collection<SpecimenOrObservationBase<?>> units;
91

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

    
100
    /**
101
     * @param t
102
     * @param pageSize
103
     * @param pageNumber
104
     * @param sort
105
     * @param propertyPaths
106
     * @return
107
     * @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)
108
     */
109
    @Override
110
    public Pager<AuditEventRecord<SpecimenOrObservationBase>> pageAuditEvents(SpecimenOrObservationBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
111
        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
112
    }
113

    
114
    /**
115
     * @param annotatedObj
116
     * @param status
117
     * @param pageSize
118
     * @param pageNumber
119
     * @param orderHints
120
     * @param propertyPaths
121
     * @return
122
     * @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)
123
     */
124
    @Override
125
    public Pager<Annotation> getAnnotations(SpecimenOrObservationBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
126
        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
127
    }
128

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

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

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

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

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

    
178
    /**
179
     * @param annotatableEntity
180
     * @param technical
181
     * @param pageSize
182
     * @param pageNumber
183
     * @param orderHints
184
     * @param propertyPaths
185
     * @return
186
     * @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)
187
     */
188
    @Override
189
    public Pager<Marker> getMarkers(SpecimenOrObservationBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
190
        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
191
    }
192

    
193
    /**
194
     * @param clazz
195
     * @param stepSize
196
     * @param cacheStrategy
197
     * @param monitor
198
     * @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)
199
     */
200
    @Override
201
    public void updateTitleCache(Class<? extends SpecimenOrObservationBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<SpecimenOrObservationBase> cacheStrategy, IProgressMonitor monitor) {
202
        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
203
    }
204

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

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

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

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

    
245
    /**
246
     * @param type
247
     * @param determinedAs
248
     * @param limit
249
     * @param start
250
     * @param orderHints
251
     * @param propertyPaths
252
     * @return
253
     * @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)
254
     */
255
    @Override
256
    public Pager<SpecimenOrObservationBase> list(Class<? extends SpecimenOrObservationBase> type, TaxonBase determinedAs, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
257
        return defaultService.list(type, determinedAs, limit, start, orderHints, propertyPaths);
258
    }
259

    
260
    /**
261
     * @param clazz
262
     * @param from
263
     * @param to
264
     * @param criteria
265
     * @param pageSize
266
     * @param pageValue
267
     * @param sort
268
     * @param propertyPaths
269
     * @return
270
     * @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)
271
     */
272
    @Override
273
    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) {
274
        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
275
    }
276

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
443
    /**
444
     * @param clazz
445
     * @param limit
446
     * @param start
447
     * @param groups
448
     * @param propertyPaths
449
     * @return
450
     * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
451
     */
452
    @Override
453
    public List<Object[]> group(Class<? extends SpecimenOrObservationBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
454
        return defaultService.group(clazz, limit, start, groups, propertyPaths);
455
    }
456

    
457
    /**
458
     * @param occurence
459
     * @param taxonBase
460
     * @param pageSize
461
     * @param pageNumber
462
     * @param propertyPaths
463
     * @return
464
     * @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)
465
     */
466
    @Override
467
    public Pager<DeterminationEvent> getDeterminations(SpecimenOrObservationBase occurence, TaxonBase taxonBase, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
468
        return defaultService.getDeterminations(occurence, taxonBase, pageSize, pageNumber, propertyPaths);
469
    }
470

    
471
    /**
472
     * @param clazz
473
     * @param queryString
474
     * @param matchmode
475
     * @param criteria
476
     * @param pageSize
477
     * @param pageNumber
478
     * @param orderHints
479
     * @param propertyPaths
480
     * @return
481
     * @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)
482
     */
483
    @Override
484
    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) {
485
        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
486
    }
487

    
488
    /**
489
     * @param occurence
490
     * @param pageSize
491
     * @param pageNumber
492
     * @param propertyPaths
493
     * @return
494
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getDerivationEvents(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List)
495
     */
496
    @Override
497
    public Pager<DerivationEvent> getDerivationEvents(SpecimenOrObservationBase occurence, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
498
        return defaultService.getDerivationEvents(occurence, pageSize, pageNumber, propertyPaths);
499
    }
500

    
501
    /**
502
     * @param type
503
     * @param limit
504
     * @param start
505
     * @param orderHints
506
     * @param propertyPaths
507
     * @return
508
     * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
509
     */
510
    @Override
511
    public <S extends SpecimenOrObservationBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
512
        return defaultService.list(type, limit, start, orderHints, propertyPaths);
513
    }
514

    
515
    /**
516
     * @param clazz
517
     * @param query
518
     * @param pageSize
519
     * @param pageNumber
520
     * @param orderHints
521
     * @param propertyPaths
522
     * @return
523
     * @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)
524
     */
525
    @Override
526
    public Pager<SpecimenOrObservationBase> search(Class<? extends SpecimenOrObservationBase> clazz, String query, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
527
        return defaultService.search(clazz, query, pageSize, pageNumber, orderHints, propertyPaths);
528
    }
529

    
530
    /**
531
     * @param configurator
532
     * @return
533
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
534
     */
535
    @Override
536
    public Pager<SpecimenOrObservationBase> findByTitle(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> configurator) {
537
        return defaultService.findByTitle(configurator);
538
    }
539

    
540
    /**
541
     * @param clazz
542
     * @param queryString
543
     * @param matchmode
544
     * @param criteria
545
     * @return
546
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
547
     */
548
    @Override
549
    public Integer countByTitle(Class<? extends SpecimenOrObservationBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
550
        return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
551
    }
552

    
553
    /**
554
     * @param uuid
555
     * @return
556
     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
557
     */
558
    @Override
559
    public SpecimenOrObservationBase load(UUID uuid) {
560
        return defaultService.load(uuid);
561
    }
562

    
563
    /**
564
     * @param uuid
565
     * @param propertyPaths
566
     * @return
567
     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
568
     */
569
    @Override
570
    public SpecimenOrObservationBase load(UUID uuid, List<String> propertyPaths) {
571
        return defaultService.load(uuid, propertyPaths);
572
    }
573

    
574
    /**
575
     * @param configurator
576
     * @return
577
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
578
     */
579
    @Override
580
    public Integer countByTitle(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> configurator) {
581
        return defaultService.countByTitle(configurator);
582
    }
583

    
584
    /**
585
     * @return
586
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getFieldUnitUuidAndTitleCache()
587
     */
588
    @Override
589
    public List<UuidAndTitleCache<FieldUnit>> getFieldUnitUuidAndTitleCache() {
590
        return defaultService.getFieldUnitUuidAndTitleCache();
591
    }
592

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

    
602
    /**
603
     * @param transientObject
604
     * @return
605
     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
606
     */
607
    @Override
608
    public SpecimenOrObservationBase merge(SpecimenOrObservationBase transientObject) {
609
        return defaultService.merge(transientObject);
610
    }
611

    
612
    /**
613
     * @param derivedUnit
614
     * @param propertyPaths
615
     * @return
616
     * @throws DerivedUnitFacadeNotSupportedException
617
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getDerivedUnitFacade(eu.etaxonomy.cdm.model.occurrence.DerivedUnit, java.util.List)
618
     */
619
    @Override
620
    public DerivedUnitFacade getDerivedUnitFacade(DerivedUnit derivedUnit, List<String> propertyPaths) throws DerivedUnitFacadeNotSupportedException {
621
        return defaultService.getDerivedUnitFacade(derivedUnit, propertyPaths);
622
    }
623

    
624
    /**
625
     * @param clazz
626
     * @param queryString
627
     * @param matchmode
628
     * @param criteria
629
     * @param pageSize
630
     * @param pageNumber
631
     * @param orderHints
632
     * @param propertyPaths
633
     * @return
634
     * @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)
635
     */
636
    @Override
637
    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) {
638
        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
639
    }
640

    
641
    /**
642
     * @param description
643
     * @param propertyPaths
644
     * @return
645
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listDerivedUnitFacades(eu.etaxonomy.cdm.model.description.DescriptionBase, java.util.List)
646
     */
647
    @Override
648
    public List<DerivedUnitFacade> listDerivedUnitFacades(DescriptionBase description, List<String> propertyPaths) {
649
        return defaultService.listDerivedUnitFacades(description, propertyPaths);
650
    }
651

    
652
    /**
653
     * @param type
654
     * @param pageSize
655
     * @param pageNumber
656
     * @param orderHints
657
     * @param propertyPaths
658
     * @return
659
     * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
660
     */
661
    @Override
662
    public <S extends SpecimenOrObservationBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
663
        return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
664
    }
665

    
666
    /**
667
     * @param type
668
     * @param includeRelationships
669
     * @param associatedTaxon
670
     * @param maxDepth
671
     * @param pageSize
672
     * @param pageNumber
673
     * @param orderHints
674
     * @param propertyPaths
675
     * @return
676
     * @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)
677
     */
678
    @Override
679
    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) {
680
        return defaultService.listByAssociatedTaxon(type, includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
681
    }
682

    
683
    /**
684
     * @param persistentObject
685
     * @return
686
     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
687
     */
688
    @Override
689
    public UUID refresh(SpecimenOrObservationBase persistentObject) {
690
        return defaultService.refresh(persistentObject);
691
    }
692

    
693
    /**
694
     * @param clazz
695
     * @param queryString
696
     * @param matchmode
697
     * @param criteria
698
     * @param pageSize
699
     * @param pageNumber
700
     * @param orderHints
701
     * @param propertyPaths
702
     * @return
703
     * @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)
704
     */
705
    @Override
706
    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) {
707
        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
708
    }
709

    
710
    /**
711
     * @param tableName
712
     * @param limit
713
     * @param start
714
     * @return
715
     * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
716
     */
717
    @Override
718
    public List<SpecimenOrObservationBase> rows(String tableName, int limit, int start) {
719
        return defaultService.rows(tableName, limit, start);
720
    }
721

    
722
    /**
723
     * @param newInstances
724
     * @return
725
     * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
726
     */
727
    @Override
728
    public Map<UUID, SpecimenOrObservationBase> save(Collection<SpecimenOrObservationBase> newInstances) {
729
        for(SpecimenOrObservationBase unit:newInstances){
730
            save(unit);
731
        }
732
        return null;
733
    }
734

    
735
    /**
736
     * @param type
737
     * @param includeRelationships
738
     * @param associatedTaxon
739
     * @param maxDepth
740
     * @param pageSize
741
     * @param pageNumber
742
     * @param orderHints
743
     * @param propertyPaths
744
     * @return
745
     * @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)
746
     */
747
    @Override
748
    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) {
749
        return defaultService.pageByAssociatedTaxon(type, includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
750
    }
751

    
752
    /**
753
     * @param newInstance
754
     * @return
755
     * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
756
     */
757
    @Override
758
    public SpecimenOrObservationBase save(SpecimenOrObservationBase newInstance) {
759
        units.add(newInstance);
760
        return null;
761
    }
762

    
763
    /**
764
     * @param transientObject
765
     * @return
766
     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
767
     */
768
    @Override
769
    public UUID saveOrUpdate(SpecimenOrObservationBase transientObject) {
770
        units.add(transientObject);
771
        return null;
772
    }
773

    
774
    /**
775
     * @param transientObjects
776
     * @return
777
     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
778
     */
779
    @Override
780
    public Map<UUID, SpecimenOrObservationBase> saveOrUpdate(Collection<SpecimenOrObservationBase> transientObjects) {
781
        for(SpecimenOrObservationBase unit:transientObjects){
782
            saveOrUpdate(unit);
783
        }
784
        return null;
785
    }
786

    
787
    /**
788
     * @param clazz
789
     * @param queryString
790
     * @param boundingBox
791
     * @param languages
792
     * @param highlightFragments
793
     * @param pageSize
794
     * @param pageNumber
795
     * @param orderHints
796
     * @param propertyPaths
797
     * @return
798
     * @throws CorruptIndexException
799
     * @throws IOException
800
     * @throws ParseException
801
     * @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)
802
     */
803
    @Override
804
    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 {
805
        return defaultService.findByFullText(clazz, queryString, boundingBox, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
806
    }
807

    
808
    /**
809
     * @param transientObject
810
     * @return
811
     * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
812
     */
813
    @Override
814
    public UUID update(SpecimenOrObservationBase transientObject) {
815
        return defaultService.update(transientObject);
816
    }
817

    
818
    /**
819
     * @param example
820
     * @param includeProperties
821
     * @param limit
822
     * @param start
823
     * @param orderHints
824
     * @param propertyPaths
825
     * @return
826
     * @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)
827
     */
828
    @Override
829
    public List<SpecimenOrObservationBase> list(SpecimenOrObservationBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
830
        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
831
    }
832

    
833
    @Override
834
    public int deduplicate(Class<? extends SpecimenOrObservationBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
835
        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
836
    }
837

    
838
    @Override
839
    public Pager<SpecimenOrObservationBase> findTitleCache(Class<? extends SpecimenOrObservationBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
840
        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
841
    }
842

    
843
    public Collection<SpecimenOrObservationBase<?>> getUnits() {
844
        return units;
845
    }
846

    
847
    @Override
848
    public Collection<FieldUnit> getFieldUnits(UUID derivedUnitUuid) {
849
        return defaultService.getFieldUnits(derivedUnitUuid);
850
    }
851

    
852
    @Override
853
    public <T extends SpecimenOrObservationBase> Pager<T> pageByAssociatedTaxon(Class<T> type,
854
            Set<TaxonRelationshipEdge> includeRelationships, String taxonUUID, Integer maxDepth, Integer pageSize,
855
            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
856
        return defaultService.pageByAssociatedTaxon(type, includeRelationships, taxonUUID,
857
                maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
858
    }
859

    
860

    
861
    @Override
862
    public UpdateResult moveSequence(DnaSample from, DnaSample to, Sequence sequence) {
863
        return defaultService.moveSequence(from, to, sequence);
864
    }
865

    
866
	@Override
867
	public DeleteResult isDeletable(SpecimenOrObservationBase object,
868
			DeleteConfiguratorBase config) {
869
		return defaultService.isDeletable(object, config);
870
	}
871

    
872
    @Override
873
    public int countDeterminations(SpecimenOrObservationBase occurence, TaxonBase taxonbase) {
874
        return defaultService.countDeterminations(occurence, taxonbase);
875
    }
876

    
877
	@Override
878
	public SpecimenOrObservationBase findWithoutFlush(UUID uuid) {
879
		return defaultService.findWithoutFlush(uuid);
880
	}
881

    
882
	@Override
883
	public Collection<SpecimenOrObservationBase> listFieldUnitsByAssociatedTaxon(Taxon associatedTaxon,
884
	        List<OrderHint> orderHints, List<String> propertyPaths) {
885
	    return defaultService.listFieldUnitsByAssociatedTaxon(associatedTaxon, orderHints, propertyPaths);
886
	}
887

    
888
	@Override
889
	public Pager<SpecimenOrObservationBase> pageFieldUnitsByAssociatedTaxon(
890
	        Set<TaxonRelationshipEdge> includeRelationships, Taxon associatedTaxon, Integer maxDepth, Integer pageSize,
891
	        Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
892
	    return defaultService.pageFieldUnitsByAssociatedTaxon(includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
893
	}
894

    
895

    
896
	@Override
897
	public FieldUnitDTO assembleFieldUnitDTO(FieldUnit fieldUnit, UUID associatedTaxonUuid) {
898
	    return defaultService.assembleFieldUnitDTO(fieldUnit, associatedTaxonUuid);
899
	}
900

    
901
	@Override
902
	public PreservedSpecimenDTO assemblePreservedSpecimenDTO(DerivedUnit derivedUnit) {
903
	    return defaultService.assemblePreservedSpecimenDTO(derivedUnit);
904
	}
905

    
906
    @Override
907
    public Collection<ICdmBase> getNonCascadedAssociatedElements(SpecimenOrObservationBase<?> specimen) {
908
        return defaultService.getNonCascadedAssociatedElements(specimen);
909
    }
910

    
911
    @Override
912
    public DeleteResult delete(SpecimenOrObservationBase<?> specimen, SpecimenDeleteConfigurator config) {
913
        return defaultService.delete(specimen, config);
914
    }
915

    
916
    @Override
917
    public Collection<IndividualsAssociation> listIndividualsAssociations(SpecimenOrObservationBase<?> specimen,
918
            Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
919
        return defaultService.listIndividualsAssociations(specimen, limit, start, orderHints, propertyPaths);
920
    }
921

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

    
929
	@Override
930
	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){
931
		return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
932
	}
933

    
934
	@Override
935
	public Collection<DescriptionElementBase> getCharacterDataForSpecimen(SpecimenOrObservationBase<?> arg0) {
936
	    return defaultService.getCharacterDataForSpecimen(arg0);
937
	}
938

    
939
	@Override
940
	public Collection<DescriptionElementBase> getCharacterDataForSpecimen(UUID arg0) {
941
	    return getCharacterDataForSpecimen(arg0);
942
	}
943

    
944
	@Override
945
	public String getMostSignificantIdentifier(DerivedUnit derivedUnit) {
946
	    return defaultService.getMostSignificantIdentifier(derivedUnit);
947
	}
948

    
949
	@Override
950
	public int countOccurrences(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> config) {
951
	    return defaultService.countOccurrences(config);
952
	}
953

    
954
	/**
955
	 * {@inheritDoc}
956
	 */
957
	@Override
958
	public List<DerivedUnit> getAllChildDerivatives(SpecimenOrObservationBase<?> specimen) {
959
	    return defaultService.getAllChildDerivatives(specimen);
960
	}
961

    
962
	/**
963
	 * {@inheritDoc}
964
	 */
965
	@Override
966
	public List<SpecimenOrObservationBase<?>> getAllHierarchyDerivatives(SpecimenOrObservationBase<?> specimen) {
967
	    return defaultService.getAllHierarchyDerivatives(specimen);
968
	}
969

    
970

    
971
    @Override
972
    public DeleteResult delete(UUID uuid) {
973
        return defaultService.delete(uuid);
974
    }
975

    
976
    @Override
977
    public DeleteResult delete(Collection<UUID> arg0) {
978
        return defaultService.delete(arg0);
979
    }
980

    
981

    
982
    @Override
983
    public List<SpecimenOrObservationBase> merge(List<SpecimenOrObservationBase> arg0) {
984
        return defaultService.merge(arg0);
985
    }
986

    
987
    @Override
988
    public UpdateResult moveDerivate(UUID arg0, UUID arg1, UUID arg2) {
989
        return defaultService.moveDerivate(arg0, arg1, arg2);
990
    }
991

    
992
    @Override
993
    public boolean moveDerivate(SpecimenOrObservationBase<?> from, SpecimenOrObservationBase<?> to, DerivedUnit derivate) {
994
        return defaultService.moveDerivate(from, to, derivate);
995
    }
996

    
997
    @Override
998
    public UpdateResult moveSequence(UUID arg0, UUID arg1, UUID arg2) {
999
        return defaultService.moveSequence(arg0, arg1, arg2);
1000
    }
1001

    
1002
    @Override
1003
    public Pager<Media> getMediainHierarchy(SpecimenOrObservationBase arg0, Integer arg1, Integer arg2,
1004
            List<String> arg3) {
1005
        return defaultService.getMediainHierarchy(arg0, arg1, arg2, arg3);
1006
    }
1007

    
1008
    @Override
1009
    public List<MergeResult<SpecimenOrObservationBase>> merge(List<SpecimenOrObservationBase> arg0, boolean arg1) {
1010
        return defaultService.merge(arg0, arg1);
1011
    }
1012

    
1013
    @Override
1014
    public MergeResult<SpecimenOrObservationBase> merge(SpecimenOrObservationBase arg0, boolean arg1) {
1015
        return defaultService.merge(arg0, arg1);
1016
    }
1017

    
1018
    /**
1019
     * {@inheritDoc}
1020
     */
1021
    @Override
1022
    public Collection<TaxonBase<?>> listAssociatedTaxa(SpecimenOrObservationBase<?> arg0, Integer arg1, Integer arg2,
1023
            List<OrderHint> arg3, List<String> arg4) {
1024
        return defaultService.listAssociatedTaxa(arg0, arg1, arg2, arg3, arg4);
1025
    }
1026

    
1027
    @Override
1028
    public SpecimenOrObservationBase loadWithUpdate(UUID arg0) {
1029
        return defaultService.loadWithUpdate(arg0);
1030
    }
1031

    
1032
    /**
1033
     * {@inheritDoc}
1034
     */
1035
    @Override
1036
    public DeleteResult delete(UUID arg0, SpecimenDeleteConfigurator arg1) {
1037
        return defaultService.delete(arg0, arg1);
1038
    }
1039

    
1040
    /**
1041
     * {@inheritDoc}
1042
     */
1043
    @Override
1044
    public Pager<SpecimenOrObservationBase> list(Class<? extends SpecimenOrObservationBase> arg0, TaxonNameBase arg1,
1045
            Integer arg2, Integer arg3, List<OrderHint> arg4, List<String> arg5) {
1046
        return defaultService.list(arg0, arg1, arg2, arg3, arg4, arg5);
1047
    }
1048

    
1049
    /**
1050
     * {@inheritDoc}
1051
     */
1052
    @Override
1053
    public Collection<DeterminationEvent> listDeterminationEvents(SpecimenOrObservationBase<?> arg0, Integer arg1,
1054
            Integer arg2, List<OrderHint> arg3, List<String> arg4) {
1055
        return defaultService.listDeterminationEvents(arg0, arg1, arg2, arg3, arg4);
1056
    }
1057

    
1058
    @Override
1059
    public Collection<TaxonBase<?>> listDeterminedTaxa(SpecimenOrObservationBase<?> arg0, Integer arg1, Integer arg2,
1060
            List<OrderHint> arg3, List<String> arg4) {
1061
        return defaultService.listDeterminedTaxa(arg0, arg1, arg2, arg3, arg4);
1062
    }
1063

    
1064
    @Override
1065
    public Collection<TaxonBase<?>> listIndividualsAssociationTaxa(SpecimenOrObservationBase<?> arg0, Integer arg1,
1066
            Integer arg2, List<OrderHint> arg3, List<String> arg4) {
1067
        return defaultService.listIndividualsAssociationTaxa(arg0, arg1, arg2, arg3, arg4);
1068
    }
1069

    
1070
     /**
1071
     * {@inheritDoc}
1072
     */
1073
    @Override
1074
    public List<SpecimenOrObservationBase> load(List<UUID> arg0, List<String> arg1) {
1075
        return defaultService.load(arg0, arg1);
1076
    }
1077

    
1078
    @Override
1079
    public Collection<TaxonBase<?>> listTypeDesignationTaxa(DerivedUnit arg0, Integer arg1, Integer arg2,
1080
            List<OrderHint> arg3, List<String> arg4) {
1081
        return defaultService.listTypeDesignationTaxa(arg0, arg1, arg2, arg3, arg4);
1082
    }
1083

    
1084
    @Override
1085
    public Map<DerivedUnit, Collection<SpecimenTypeDesignation>> listTypeDesignations(Collection<DerivedUnit> arg0,
1086
            Integer arg1, Integer arg2, List<OrderHint> arg3, List<String> arg4) {
1087
        return defaultService.listTypeDesignations(arg0, arg1, arg2, arg3, arg4);
1088
    }
1089

    
1090
    @Override
1091
    public Collection<SpecimenTypeDesignation> listTypeDesignations(DerivedUnit arg0, Integer arg1, Integer arg2,
1092
            List<OrderHint> arg3, List<String> arg4) {
1093
        return defaultService.listTypeDesignations(arg0, arg1, arg2, arg3, arg4);
1094
    }
1095

    
1096
    @Override
1097
    public List<DerivedUnit> getAllChildDerivatives(UUID arg0) {
1098
        return defaultService.getAllChildDerivatives(arg0);
1099
    }
1100

    
1101
    @Override
1102
	public List<UuidAndTitleCache<SpecimenOrObservationBase>> getUuidAndTitleCache(
1103
			Integer limit, String pattern) {
1104
		return defaultService.getUuidAndTitleCache(limit, pattern);
1105
	}
1106

    
1107
	@Override
1108
	public List<SpecimenOrObservationBase> listByIds(Set<Integer> arg0,
1109
			Integer arg1, Integer arg2, List<OrderHint> arg3, List<String> arg4) {
1110
		
1111
		return defaultService.listByIds(arg0, arg1, arg2, arg3, arg4);
1112
	}
1113

    
1114
}
(7-7/10)