Project

General

Profile

Download (43.2 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.config.DeleteConfiguratorBase;
33
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
34
import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
35
import eu.etaxonomy.cdm.api.service.dto.FieldUnitDTO;
36
import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
37
import eu.etaxonomy.cdm.api.service.dto.PreservedSpecimenDTO;
38
import eu.etaxonomy.cdm.api.service.pager.Pager;
39
import eu.etaxonomy.cdm.api.service.search.SearchResult;
40
import eu.etaxonomy.cdm.api.service.util.TaxonRelationshipEdge;
41
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
42
import eu.etaxonomy.cdm.model.common.Annotation;
43
import eu.etaxonomy.cdm.model.common.CdmBase;
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.UuidAndTitleCache;
72
import eu.etaxonomy.cdm.persistence.query.Grouping;
73
import eu.etaxonomy.cdm.persistence.query.MatchMode;
74
import eu.etaxonomy.cdm.persistence.query.OrderHint;
75
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
76
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
77
import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
78

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
463
    /**
464
     * @param occurence
465
     * @param taxonBase
466
     * @param pageSize
467
     * @param pageNumber
468
     * @param propertyPaths
469
     * @return
470
     * @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)
471
     */
472
    @Override
473
    public Pager<DeterminationEvent> getDeterminations(SpecimenOrObservationBase occurence, TaxonBase taxonBase, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
474
        return defaultService.getDeterminations(occurence, taxonBase, pageSize, pageNumber, propertyPaths);
475
    }
476

    
477
    /**
478
     * @param clazz
479
     * @param queryString
480
     * @param matchmode
481
     * @param criteria
482
     * @param pageSize
483
     * @param pageNumber
484
     * @param orderHints
485
     * @param propertyPaths
486
     * @return
487
     * @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)
488
     */
489
    @Override
490
    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) {
491
        return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
492
    }
493

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

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

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

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

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

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

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

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

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

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

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

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

    
630
    /**
631
     * @param clazz
632
     * @param queryString
633
     * @param matchmode
634
     * @param criteria
635
     * @param pageSize
636
     * @param pageNumber
637
     * @param orderHints
638
     * @param propertyPaths
639
     * @return
640
     * @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)
641
     */
642
    @Override
643
    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) {
644
        return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
645
    }
646

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

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

    
672
    /**
673
     * @param type
674
     * @param includeRelationships
675
     * @param associatedTaxon
676
     * @param maxDepth
677
     * @param pageSize
678
     * @param pageNumber
679
     * @param orderHints
680
     * @param propertyPaths
681
     * @return
682
     * @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)
683
     */
684
    @Override
685
    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) {
686
        return defaultService.listByAssociatedTaxon(type, includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
687
    }
688

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

    
699
    /**
700
     * @param clazz
701
     * @param queryString
702
     * @param matchmode
703
     * @param criteria
704
     * @param pageSize
705
     * @param pageNumber
706
     * @param orderHints
707
     * @param propertyPaths
708
     * @return
709
     * @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)
710
     */
711
    @Override
712
    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) {
713
        return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
714
    }
715

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

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

    
741
    /**
742
     * @param type
743
     * @param includeRelationships
744
     * @param associatedTaxon
745
     * @param maxDepth
746
     * @param pageSize
747
     * @param pageNumber
748
     * @param orderHints
749
     * @param propertyPaths
750
     * @return
751
     * @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)
752
     */
753
    @Override
754
    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) {
755
        return defaultService.pageByAssociatedTaxon(type, includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
756
    }
757

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

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

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

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

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

    
824
    /**
825
     * @param example
826
     * @param includeProperties
827
     * @param limit
828
     * @param start
829
     * @param orderHints
830
     * @param propertyPaths
831
     * @return
832
     * @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)
833
     */
834
    @Override
835
    public List<SpecimenOrObservationBase> list(SpecimenOrObservationBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
836
        return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
837
    }
838

    
839
    /**
840
     * @param clazz
841
     * @param matchStrategy
842
     * @param mergeStrategy
843
     * @return
844
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
845
     */
846
    @Override
847
    public int deduplicate(Class<? extends SpecimenOrObservationBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
848
        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
849
    }
850

    
851
    /**
852
     * @param clazz
853
     * @param queryString
854
     * @param pageSize
855
     * @param pageNumber
856
     * @param orderHints
857
     * @param matchMode
858
     * @return
859
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findTitleCache(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, eu.etaxonomy.cdm.persistence.query.MatchMode)
860
     */
861
    @Override
862
    public Pager<SpecimenOrObservationBase> findTitleCache(Class<? extends SpecimenOrObservationBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
863
        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
864
    }
865

    
866
    /**
867
     * @return
868
     */
869
    public Collection<SpecimenOrObservationBase<?>> getUnits() {
870
        return units;
871
    }
872

    
873
    /* (non-Javadoc)
874
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getFieldUnits(java.util.UUID)
875
     */
876
    @Override
877
    public Collection<FieldUnit> getFieldUnits(UUID derivedUnitUuid) {
878
        return defaultService.getFieldUnits(derivedUnitUuid);
879
    }
880

    
881
    /* (non-Javadoc)
882
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#pageByAssociatedTaxon(java.lang.Class, java.util.Set, java.lang.String, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
883
     */
884
    @Override
885
    public <T extends SpecimenOrObservationBase> Pager<T> pageByAssociatedTaxon(Class<T> type,
886
            Set<TaxonRelationshipEdge> includeRelationships, String taxonUUID, Integer maxDepth, Integer pageSize,
887
            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
888
        return defaultService.pageByAssociatedTaxon(type, includeRelationships, taxonUUID,
889
                maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
890
    }
891

    
892
    /* (non-Javadoc)
893
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#moveDerivate(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.occurrence.DerivedUnit)
894
     */
895
    @Override
896
    public boolean moveDerivate(SpecimenOrObservationBase<?> from, SpecimenOrObservationBase<?> to, DerivedUnit derivate) {
897
        return defaultService.moveDerivate(from, to, derivate);
898
    }
899

    
900
    /* (non-Javadoc)
901
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#moveSequence(eu.etaxonomy.cdm.model.molecular.DnaSample, eu.etaxonomy.cdm.model.molecular.DnaSample, eu.etaxonomy.cdm.model.molecular.Sequence)
902
     */
903
    @Override
904
    public boolean moveSequence(DnaSample from, DnaSample to, Sequence sequence) {
905
        return defaultService.moveSequence(from, to, sequence);
906
    }
907

    
908
	@Override
909
	public DeleteResult isDeletable(SpecimenOrObservationBase object,
910
			DeleteConfiguratorBase config) {
911
		return defaultService.isDeletable(object, config);
912
	}
913

    
914
    /* (non-Javadoc)
915
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#countDeterminations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.taxon.TaxonBase)
916
     */
917
    @Override
918
    public int countDeterminations(SpecimenOrObservationBase occurence, TaxonBase taxonbase) {
919
        return defaultService.countDeterminations(occurence, taxonbase);
920
    }
921

    
922
	@Override
923
	public SpecimenOrObservationBase findWithoutFlush(UUID uuid) {
924
		return defaultService.findWithoutFlush(uuid);
925
	}
926

    
927
	@Override
928
	public Collection<SpecimenOrObservationBase> listFieldUnitsByAssociatedTaxon(Taxon associatedTaxon,
929
	        List<OrderHint> orderHints, List<String> propertyPaths) {
930
	    return defaultService.listFieldUnitsByAssociatedTaxon(associatedTaxon, orderHints, propertyPaths);
931
	}
932

    
933
	@Override
934
	public Pager<SpecimenOrObservationBase> pageFieldUnitsByAssociatedTaxon(
935
	        Set<TaxonRelationshipEdge> includeRelationships, Taxon associatedTaxon, Integer maxDepth, Integer pageSize,
936
	        Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
937
	    return defaultService.pageFieldUnitsByAssociatedTaxon(includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
938
	}
939

    
940

    
941
	/* (non-Javadoc)
942
	 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#assembleFieldUnitDTO(eu.etaxonomy.cdm.model.occurrence.FieldUnit, java.util.UUID)
943
	 */
944
	@Override
945
	public FieldUnitDTO assembleFieldUnitDTO(FieldUnit fieldUnit, UUID associatedTaxonUuid) {
946
	    return defaultService.assembleFieldUnitDTO(fieldUnit, associatedTaxonUuid);
947
	}
948

    
949
	/* (non-Javadoc)
950
	 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#assemblePreservedSpecimenDTO(eu.etaxonomy.cdm.model.occurrence.DerivedUnit)
951
	 */
952
	@Override
953
	public PreservedSpecimenDTO assemblePreservedSpecimenDTO(DerivedUnit derivedUnit) {
954
	    return defaultService.assemblePreservedSpecimenDTO(derivedUnit);
955
	}
956

    
957
    @Override
958
    public Collection<ICdmBase> getNonCascadedAssociatedElements(SpecimenOrObservationBase<?> specimen) {
959
        return defaultService.getNonCascadedAssociatedElements(specimen);
960
    }
961

    
962
    /* (non-Javadoc)
963
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#deleteDerivateHierarchy(eu.etaxonomy.cdm.model.common.ICdmBase)
964
     */
965
    @Override
966
    public DeleteResult deleteDerivateHierarchy(CdmBase from, SpecimenDeleteConfigurator config) {
967
        return defaultService.deleteDerivateHierarchy(from, config);
968
    }
969

    
970
    /* (non-Javadoc)
971
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#delete(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator)
972
     */
973
    @Override
974
    public DeleteResult delete(SpecimenOrObservationBase<?> specimen, SpecimenDeleteConfigurator config) {
975
        return defaultService.delete(specimen, config);
976
    }
977

    
978
    /* (non-Javadoc)
979
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listIndividualsAssociations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
980
     */
981
    @Override
982
    public Collection<IndividualsAssociation> listIndividualsAssociations(SpecimenOrObservationBase<?> specimen,
983
            Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
984
        return defaultService.listIndividualsAssociations(specimen, limit, start, orderHints, propertyPaths);
985
    }
986

    
987
    /* (non-Javadoc)
988
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listTypeDesignations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
989
     */
990
    @Override
991
    public Collection<SpecimenTypeDesignation> listTypeDesignations(SpecimenOrObservationBase<?> specimen,
992
            Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
993
        return defaultService.listTypeDesignations(specimen, limit, start, orderHints, propertyPaths);
994
    }
995

    
996
    /* (non-Javadoc)
997
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listDescriptionsWithDescriptionSpecimen(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
998
     */
999
    @Override
1000
    public Collection<DescriptionBase<?>> listDescriptionsWithDescriptionSpecimen(
1001
            SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints,
1002
            List<String> propertyPaths) {
1003
        return defaultService.listDescriptionsWithDescriptionSpecimen(specimen, limit, start, orderHints, propertyPaths);
1004
    }
1005

    
1006
	@Override
1007
	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){
1008
		return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
1009
	}
1010

    
1011
	/* (non-Javadoc)
1012
	 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCharacterDataForSpecimen(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase)
1013
	 */
1014
	@Override
1015
	public Collection<DescriptionElementBase> getCharacterDataForSpecimen(SpecimenOrObservationBase<?> arg0) {
1016
	    return defaultService.getCharacterDataForSpecimen(arg0);
1017
	}
1018

    
1019
	/* (non-Javadoc)
1020
	 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCharacterDataForSpecimen(java.util.UUID)
1021
	 */
1022
	@Override
1023
	public Collection<DescriptionElementBase> getCharacterDataForSpecimen(UUID arg0) {
1024
	    return getCharacterDataForSpecimen(arg0);
1025
	}
1026

    
1027
	/* (non-Javadoc)
1028
	 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getMostSignificantIdentifier(eu.etaxonomy.cdm.model.occurrence.DerivedUnit)
1029
	 */
1030
	@Override
1031
	public String getMostSignificantIdentifier(DerivedUnit derivedUnit) {
1032
	    return defaultService.getMostSignificantIdentifier(derivedUnit);
1033
	}
1034

    
1035
	/* (non-Javadoc)
1036
	 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#countOccurrences(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
1037
	 */
1038
	@Override
1039
	public int countOccurrences(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> config) {
1040
	    return defaultService.countOccurrences(config);
1041
	}
1042

    
1043
	/**
1044
	 * {@inheritDoc}
1045
	 */
1046
	@Override
1047
	public List<DerivedUnit> getAllChildDerivatives(SpecimenOrObservationBase<?> specimen) {
1048
	    return defaultService.getAllChildDerivatives(specimen);
1049
	}
1050

    
1051
	/**
1052
	 * {@inheritDoc}
1053
	 */
1054
	@Override
1055
	public List<SpecimenOrObservationBase<?>> getAllHierarchyDerivatives(SpecimenOrObservationBase<?> specimen) {
1056
	    return defaultService.getAllHierarchyDerivatives(specimen);
1057
	}
1058

    
1059

    
1060
    /* (non-Javadoc)
1061
     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID)
1062
     */
1063
    @Override
1064
    public DeleteResult delete(UUID uuid) {
1065
        return defaultService.delete(uuid);
1066
    }
1067

    
1068
    /* (non-Javadoc)
1069
     * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.Collection)
1070
     */
1071
    @Override
1072
    public DeleteResult delete(Collection<UUID> arg0) {
1073
        return defaultService.delete(arg0);
1074
    }
1075

    
1076
    /* (non-Javadoc)
1077
     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
1078
     */
1079
    @Override
1080
    public List<SpecimenOrObservationBase> merge(List<SpecimenOrObservationBase> arg0) {
1081
        return defaultService.merge(arg0);
1082
    }
1083

    
1084
}
(7-7/10)