Project

General

Profile

Download (35.6 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.LockMode;
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.IOccurrenceService;
31
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
32
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
33
import eu.etaxonomy.cdm.api.service.pager.Pager;
34
import eu.etaxonomy.cdm.api.service.search.SearchResult;
35
import eu.etaxonomy.cdm.api.service.util.TaxonRelationshipEdge;
36
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
37
import eu.etaxonomy.cdm.model.common.Annotation;
38
import eu.etaxonomy.cdm.model.common.ISourceable;
39
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
40
import eu.etaxonomy.cdm.model.common.LSID;
41
import eu.etaxonomy.cdm.model.common.Language;
42
import eu.etaxonomy.cdm.model.common.Marker;
43
import eu.etaxonomy.cdm.model.common.MarkerType;
44
import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
45
import eu.etaxonomy.cdm.model.description.DescriptionBase;
46
import eu.etaxonomy.cdm.model.location.Country;
47
import eu.etaxonomy.cdm.model.media.Media;
48
import eu.etaxonomy.cdm.model.media.Rights;
49
import eu.etaxonomy.cdm.model.molecular.DnaSample;
50
import eu.etaxonomy.cdm.model.molecular.Sequence;
51
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
52
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
53
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
54
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
55
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
56
import eu.etaxonomy.cdm.model.taxon.Taxon;
57
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
58
import eu.etaxonomy.cdm.model.view.AuditEvent;
59
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
60
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
61
import eu.etaxonomy.cdm.persistence.query.Grouping;
62
import eu.etaxonomy.cdm.persistence.query.MatchMode;
63
import eu.etaxonomy.cdm.persistence.query.OrderHint;
64
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
65
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
66
import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
67

    
68
/**
69
 * @author pplitzner
70
 * @date 26.09.2013
71
 *
72
 */
73
public class TransientOccurenceService implements IOccurrenceService {
74

    
75
    private final IOccurrenceService defaultService;
76
    private final Collection<SpecimenOrObservationBase<?>> units;
77

    
78
    /**
79
     * @param defaultService
80
     */
81
    public TransientOccurenceService(IOccurrenceService defaultService) {
82
        this.defaultService = defaultService;
83
        this.units = new HashSet<SpecimenOrObservationBase<?>>();
84
    }
85

    
86
    /**
87
     * @param t
88
     * @param pageSize
89
     * @param pageNumber
90
     * @param sort
91
     * @param propertyPaths
92
     * @return
93
     * @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)
94
     */
95
    @Override
96
    public Pager<AuditEventRecord<SpecimenOrObservationBase>> pageAuditEvents(SpecimenOrObservationBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
97
        return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
98
    }
99

    
100
    /**
101
     * @param annotatedObj
102
     * @param status
103
     * @param pageSize
104
     * @param pageNumber
105
     * @param orderHints
106
     * @param propertyPaths
107
     * @return
108
     * @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)
109
     */
110
    @Override
111
    public Pager<Annotation> getAnnotations(SpecimenOrObservationBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
112
        return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
113
    }
114

    
115
    /**
116
     *
117
     * @see eu.etaxonomy.cdm.api.service.IService#clear()
118
     */
119
    @Override
120
    public void clear() {
121
        defaultService.clear();
122
    }
123

    
124
    /**
125
     * @param t
126
     * @param lockMode
127
     * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
128
     */
129
    @Override
130
    public void lock(SpecimenOrObservationBase t, LockMode lockMode) {
131
        defaultService.lock(t, lockMode);
132
    }
133

    
134
    /**
135
     * @param t
136
     * @param lockMode
137
     * @param propertyPaths
138
     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
139
     */
140
    @Override
141
    public void refresh(SpecimenOrObservationBase t, LockMode lockMode, List<String> propertyPaths) {
142
        defaultService.refresh(t, lockMode, propertyPaths);
143
    }
144

    
145
    /**
146
     *
147
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
148
     */
149
    @Override
150
    public void updateTitleCache() {
151
        defaultService.updateTitleCache();
152
    }
153

    
154
    /**
155
     * @param t
156
     * @return
157
     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
158
     */
159
    @Override
160
    public AuditEventRecord<SpecimenOrObservationBase> getNextAuditEvent(SpecimenOrObservationBase t) {
161
        return defaultService.getNextAuditEvent(t);
162
    }
163

    
164
    /**
165
     * @param annotatableEntity
166
     * @param technical
167
     * @param pageSize
168
     * @param pageNumber
169
     * @param orderHints
170
     * @param propertyPaths
171
     * @return
172
     * @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)
173
     */
174
    @Override
175
    public Pager<Marker> getMarkers(SpecimenOrObservationBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
176
        return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
177
    }
178

    
179
    /**
180
     * @param clazz
181
     * @param stepSize
182
     * @param cacheStrategy
183
     * @param monitor
184
     * @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)
185
     */
186
    @Override
187
    public void updateTitleCache(Class<? extends SpecimenOrObservationBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<SpecimenOrObservationBase> cacheStrategy, IProgressMonitor monitor) {
188
        defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
189
    }
190

    
191
    /**
192
     * @param t
193
     * @return
194
     * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
195
     */
196
    @Override
197
    public AuditEventRecord<SpecimenOrObservationBase> getPreviousAuditEvent(SpecimenOrObservationBase t) {
198
        return defaultService.getPreviousAuditEvent(t);
199
    }
200

    
201
    /**
202
     * @param iso639
203
     * @return
204
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCountryByIso(java.lang.String)
205
     */
206
    @Override
207
    public Country getCountryByIso(String iso639) {
208
        return defaultService.getCountryByIso(iso639);
209
    }
210

    
211
    /**
212
     * @param clazz
213
     * @return
214
     * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
215
     */
216
    @Override
217
    public int count(Class<? extends SpecimenOrObservationBase> clazz) {
218
        return defaultService.count(clazz);
219
    }
220

    
221
    /**
222
     * @param name
223
     * @return
224
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCountryByName(java.lang.String)
225
     */
226
    @Override
227
    public List<Country> getCountryByName(String name) {
228
        return defaultService.getCountryByName(name);
229
    }
230

    
231
    /**
232
     * @param type
233
     * @param determinedAs
234
     * @param limit
235
     * @param start
236
     * @param orderHints
237
     * @param propertyPaths
238
     * @return
239
     * @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)
240
     */
241
    @Override
242
    public Pager<SpecimenOrObservationBase> list(Class<? extends SpecimenOrObservationBase> type, TaxonBase determinedAs, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
243
        return defaultService.list(type, determinedAs, limit, start, orderHints, propertyPaths);
244
    }
245

    
246
    /**
247
     * @param clazz
248
     * @param from
249
     * @param to
250
     * @param criteria
251
     * @param pageSize
252
     * @param pageValue
253
     * @param sort
254
     * @param propertyPaths
255
     * @return
256
     * @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)
257
     */
258
    @Override
259
    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) {
260
        return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
261
    }
262

    
263
    /**
264
     * @param lsid
265
     * @return
266
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
267
     */
268
    @Override
269
    public SpecimenOrObservationBase find(LSID lsid) {
270
        return defaultService.find(lsid);
271
    }
272

    
273
    /**
274
     * @param persistentObject
275
     * @return
276
     * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
277
     */
278
    @Override
279
    public String delete(SpecimenOrObservationBase persistentObject) {
280
        return defaultService.delete(persistentObject);
281
    }
282

    
283
    /**
284
     * @param clazz
285
     * @param technical
286
     * @param pageSize
287
     * @param pageNumber
288
     * @param propertyPaths
289
     * @return
290
     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
291
     */
292
    @Override
293
    public List<Object[]> groupMarkers(Class<? extends SpecimenOrObservationBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
294
        return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
295
    }
296

    
297
    /**
298
     * @param uuid
299
     * @return
300
     * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
301
     */
302
    @Override
303
    public boolean exists(UUID uuid) {
304
        return defaultService.exists(uuid);
305
    }
306

    
307
    /**
308
     * @param x
309
     * @param y
310
     * @return
311
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
312
     */
313
    @Override
314
    public SpecimenOrObservationBase replace(SpecimenOrObservationBase x, SpecimenOrObservationBase y) {
315
        return defaultService.replace(x, y);
316
    }
317

    
318
    /**
319
     * @param uuidSet
320
     * @return
321
     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
322
     */
323
    @Override
324
    public List<SpecimenOrObservationBase> find(Set<UUID> uuidSet) {
325
        return defaultService.find(uuidSet);
326
    }
327

    
328
    /**
329
     * @param t
330
     * @param pageSize
331
     * @param pageNumber
332
     * @param propertyPaths
333
     * @return
334
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
335
     */
336
    @Override
337
    public Pager<IdentifiableSource> getSources(SpecimenOrObservationBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
338
        return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
339
    }
340

    
341
    /**
342
     * @param uuid
343
     * @return
344
     * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
345
     */
346
    @Override
347
    public SpecimenOrObservationBase find(UUID uuid) {
348
        return defaultService.find(uuid);
349
    }
350

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

    
361
    /**
362
     * @param t
363
     * @param pageSize
364
     * @param pageNumber
365
     * @param propertyPaths
366
     * @return
367
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
368
     */
369
    @Override
370
    public Pager<Rights> getRights(SpecimenOrObservationBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
371
        return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
372
    }
373

    
374
    /**
375
     * @param clazz
376
     * @param technical
377
     * @return
378
     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
379
     */
380
    @Override
381
    public int countMarkers(Class<? extends SpecimenOrObservationBase> clazz, Boolean technical) {
382
        return defaultService.countMarkers(clazz, technical);
383
    }
384

    
385
    /**
386
     * @param occurence
387
     * @param pageSize
388
     * @param pageNumber
389
     * @param propertyPaths
390
     * @return
391
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getMedia(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List)
392
     */
393
    @Override
394
    public Pager<Media> getMedia(SpecimenOrObservationBase occurence, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
395
        return defaultService.getMedia(occurence, pageSize, pageNumber, propertyPaths);
396
    }
397

    
398
    /**
399
     * @param idSet
400
     * @return
401
     * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
402
     */
403
    @Override
404
    public List<SpecimenOrObservationBase> findById(Set<Integer> idSet) {
405
        return defaultService.findById(idSet);
406
    }
407

    
408
    /**
409
     * @param clazz
410
     * @param idInSource
411
     * @param idNamespace
412
     * @return
413
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
414
     */
415
    @Override
416
    public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
417
        return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
418
    }
419

    
420
    /**
421
     * @return
422
     * @see eu.etaxonomy.cdm.api.service.IService#getSession()
423
     */
424
    @Override
425
    public Session getSession() {
426
        return defaultService.getSession();
427
    }
428

    
429
    /**
430
     * @return
431
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
432
     */
433
    @Override
434
    public List<UuidAndTitleCache<SpecimenOrObservationBase>> getUuidAndTitleCache() {
435
        return defaultService.getUuidAndTitleCache();
436
    }
437

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

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

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

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

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

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

    
525
    /**
526
     * @param configurator
527
     * @return
528
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
529
     */
530
    @Override
531
    public Pager<SpecimenOrObservationBase> findByTitle(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> configurator) {
532
        return defaultService.findByTitle(configurator);
533
    }
534

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

    
548
    /**
549
     * @param uuid
550
     * @return
551
     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
552
     */
553
    @Override
554
    public SpecimenOrObservationBase load(UUID uuid) {
555
        return defaultService.load(uuid);
556
    }
557

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

    
569
    /**
570
     * @param configurator
571
     * @return
572
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
573
     */
574
    @Override
575
    public Integer countByTitle(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> configurator) {
576
        return defaultService.countByTitle(configurator);
577
    }
578

    
579
    /**
580
     * @return
581
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getFieldUnitUuidAndTitleCache()
582
     */
583
    @Override
584
    public List<UuidAndTitleCache<FieldUnit>> getFieldUnitUuidAndTitleCache() {
585
        return defaultService.getFieldUnitUuidAndTitleCache();
586
    }
587

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

    
597
    /**
598
     * @param transientObject
599
     * @return
600
     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
601
     */
602
    @Override
603
    public SpecimenOrObservationBase merge(SpecimenOrObservationBase transientObject) {
604
        return defaultService.merge(transientObject);
605
    }
606

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

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

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

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

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

    
678
    /**
679
     * @param persistentObject
680
     * @return
681
     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
682
     */
683
    @Override
684
    public UUID refresh(SpecimenOrObservationBase persistentObject) {
685
        return defaultService.refresh(persistentObject);
686
    }
687

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

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

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

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

    
747
    /**
748
     * @param newInstance
749
     * @return
750
     * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
751
     */
752
    @Override
753
    public UUID save(SpecimenOrObservationBase newInstance) {
754
        units.add(newInstance);
755
        return null;
756
    }
757

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

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

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

    
803
    /**
804
     * @param transientObject
805
     * @return
806
     * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
807
     */
808
    @Override
809
    public UUID update(SpecimenOrObservationBase transientObject) {
810
        return defaultService.update(transientObject);
811
    }
812

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

    
828
    /**
829
     * @param clazz
830
     * @param matchStrategy
831
     * @param mergeStrategy
832
     * @return
833
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
834
     */
835
    @Override
836
    public int deduplicate(Class<? extends SpecimenOrObservationBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
837
        return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
838
    }
839

    
840
    /**
841
     * @param clazz
842
     * @param queryString
843
     * @param pageSize
844
     * @param pageNumber
845
     * @param orderHints
846
     * @param matchMode
847
     * @return
848
     * @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)
849
     */
850
    @Override
851
    public Pager<SpecimenOrObservationBase> findTitleCache(Class<? extends SpecimenOrObservationBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
852
        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
853
    }
854

    
855
    /**
856
     * @return
857
     */
858
    public Collection<SpecimenOrObservationBase<?>> getUnits() {
859
        return units;
860
    }
861

    
862
    /* (non-Javadoc)
863
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getFieldUnits(java.util.UUID)
864
     */
865
    @Override
866
    public Collection<FieldUnit> getFieldUnits(UUID derivedUnitUuid) {
867
        return defaultService.getFieldUnits(derivedUnitUuid);
868
    }
869

    
870
    /* (non-Javadoc)
871
     * @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)
872
     */
873
    @Override
874
    public <T extends SpecimenOrObservationBase> Pager<T> pageByAssociatedTaxon(Class<T> type,
875
            Set<TaxonRelationshipEdge> includeRelationships, String taxonUUID, Integer maxDepth, Integer pageSize,
876
            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
877
        return defaultService.pageByAssociatedTaxon(type, includeRelationships, taxonUUID,
878
                maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
879
    }
880

    
881
    /* (non-Javadoc)
882
     * @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)
883
     */
884
    @Override
885
    public boolean moveDerivate(SpecimenOrObservationBase<?> from, SpecimenOrObservationBase<?> to, DerivedUnit derivate) {
886
        return defaultService.moveDerivate(from, to, derivate);
887
    }
888

    
889
    /* (non-Javadoc)
890
     * @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)
891
     */
892
    @Override
893
    public boolean moveSequence(DnaSample from, DnaSample to, Sequence sequence) {
894
        return defaultService.moveSequence(from, to, sequence);
895
    }
896

    
897
	@Override
898
	public List<String> isDeletable(SpecimenOrObservationBase object,
899
			DeleteConfiguratorBase config) {
900
		return defaultService.isDeletable(object, config);
901
	}
902

    
903
    /* (non-Javadoc)
904
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#countDeterminations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.taxon.TaxonBase)
905
     */
906
    @Override
907
    public int countDeterminations(SpecimenOrObservationBase occurence, TaxonBase taxonbase) {
908
        return defaultService.countDeterminations(occurence, taxonbase);
909
    }
910

    
911
}
(6-6/9)