Project

General

Profile

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

    
12
import java.io.IOException;
13
import java.util.ArrayList;
14
import java.util.Collection;
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.IIdentifiableEntityServiceConfigurator;
32
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
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.occurrence.DerivationEvent;
50
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
51
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
52
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
53
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
54
import eu.etaxonomy.cdm.model.taxon.Taxon;
55
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
56
import eu.etaxonomy.cdm.model.view.AuditEvent;
57
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
58
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
59
import eu.etaxonomy.cdm.persistence.query.Grouping;
60
import eu.etaxonomy.cdm.persistence.query.MatchMode;
61
import eu.etaxonomy.cdm.persistence.query.OrderHint;
62
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
63
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
64
import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
65

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

    
73
    private IOccurrenceService defaultService;
74
    private List<SpecimenOrObservationBase> units;
75

    
76
    /**
77
     * @param defaultService
78
     */
79
    public TransientOccurenceService(IOccurrenceService defaultService) {
80
        this.defaultService = defaultService;
81
        this.units = new ArrayList<SpecimenOrObservationBase>();
82
    }
83

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
826
    /**
827
     * @param clazz
828
     * @param matchStrategy
829
     * @param mergeStrategy
830
     * @return
831
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
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
    /**
839
     * @param clazz
840
     * @param queryString
841
     * @param pageSize
842
     * @param pageNumber
843
     * @param orderHints
844
     * @param matchMode
845
     * @return
846
     * @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)
847
     */
848
    @Override
849
    public Pager<SpecimenOrObservationBase> findTitleCache(Class<? extends SpecimenOrObservationBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
850
        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
851
    }
852

    
853
    /**
854
     * @return
855
     */
856
    public List<SpecimenOrObservationBase> getUnits() {
857
        return units;
858
    }
859

    
860
    /* (non-Javadoc)
861
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getFieldUnits(eu.etaxonomy.cdm.model.occurrence.DerivedUnit)
862
     */
863
    @Override
864
    public Collection<FieldUnit> getFieldUnits(DerivedUnit derivedUnit) {
865
        return defaultService.getFieldUnits(derivedUnit);
866
    }
867

    
868
}
(7-7/10)