Project

General

Profile

Download (40.3 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.DerivateHierarchyDTO;
36
import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
37
import eu.etaxonomy.cdm.api.service.pager.Pager;
38
import eu.etaxonomy.cdm.api.service.search.SearchResult;
39
import eu.etaxonomy.cdm.api.service.util.TaxonRelationshipEdge;
40
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
41
import eu.etaxonomy.cdm.model.common.Annotation;
42
import eu.etaxonomy.cdm.model.common.CdmBase;
43
import eu.etaxonomy.cdm.model.common.DefinedTerm;
44
import eu.etaxonomy.cdm.model.common.ICdmBase;
45
import eu.etaxonomy.cdm.model.common.ISourceable;
46
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
47
import eu.etaxonomy.cdm.model.common.LSID;
48
import eu.etaxonomy.cdm.model.common.Language;
49
import eu.etaxonomy.cdm.model.common.Marker;
50
import eu.etaxonomy.cdm.model.common.MarkerType;
51
import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
52
import eu.etaxonomy.cdm.model.description.DescriptionBase;
53
import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
54
import eu.etaxonomy.cdm.model.location.Country;
55
import eu.etaxonomy.cdm.model.media.Media;
56
import eu.etaxonomy.cdm.model.media.Rights;
57
import eu.etaxonomy.cdm.model.molecular.DnaSample;
58
import eu.etaxonomy.cdm.model.molecular.Sequence;
59
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
60
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
61
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
62
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
63
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
64
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
65
import eu.etaxonomy.cdm.model.taxon.Taxon;
66
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
67
import eu.etaxonomy.cdm.model.view.AuditEvent;
68
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
69
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
70
import eu.etaxonomy.cdm.persistence.query.Grouping;
71
import eu.etaxonomy.cdm.persistence.query.MatchMode;
72
import eu.etaxonomy.cdm.persistence.query.OrderHint;
73
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
74
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
75
import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
76

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

    
84
    private final IOccurrenceService defaultService;
85
    private final Collection<SpecimenOrObservationBase<?>> units;
86

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
849
    /**
850
     * @param clazz
851
     * @param queryString
852
     * @param pageSize
853
     * @param pageNumber
854
     * @param orderHints
855
     * @param matchMode
856
     * @return
857
     * @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)
858
     */
859
    @Override
860
    public Pager<SpecimenOrObservationBase> findTitleCache(Class<? extends SpecimenOrObservationBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
861
        return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
862
    }
863

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

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

    
879
    /* (non-Javadoc)
880
     * @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)
881
     */
882
    @Override
883
    public <T extends SpecimenOrObservationBase> Pager<T> pageByAssociatedTaxon(Class<T> type,
884
            Set<TaxonRelationshipEdge> includeRelationships, String taxonUUID, Integer maxDepth, Integer pageSize,
885
            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
886
        return defaultService.pageByAssociatedTaxon(type, includeRelationships, taxonUUID,
887
                maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
888
    }
889

    
890
    /* (non-Javadoc)
891
     * @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)
892
     */
893
    @Override
894
    public boolean moveDerivate(SpecimenOrObservationBase<?> from, SpecimenOrObservationBase<?> to, DerivedUnit derivate) {
895
        return defaultService.moveDerivate(from, to, derivate);
896
    }
897

    
898
    /* (non-Javadoc)
899
     * @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)
900
     */
901
    @Override
902
    public boolean moveSequence(DnaSample from, DnaSample to, Sequence sequence) {
903
        return defaultService.moveSequence(from, to, sequence);
904
    }
905

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

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

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

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

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

    
938

    
939
    @Override
940
    public DerivateHierarchyDTO assembleDerivateHierarchyDTO(FieldUnit fieldUnit, UUID associatedTaxonUuid) {
941
        return defaultService.assembleDerivateHierarchyDTO(fieldUnit, associatedTaxonUuid);
942
    }
943

    
944
    @Override
945
    public Collection<ICdmBase> getNonCascadedAssociatedElements(SpecimenOrObservationBase<?> specimen) {
946
        return defaultService.getNonCascadedAssociatedElements(specimen);
947
    }
948

    
949
    /* (non-Javadoc)
950
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#deleteDerivateHierarchy(eu.etaxonomy.cdm.model.common.ICdmBase)
951
     */
952
    @Override
953
    public DeleteResult deleteDerivateHierarchy(CdmBase from, SpecimenDeleteConfigurator config) {
954
        return defaultService.deleteDerivateHierarchy(from, config);
955
    }
956

    
957
    /* (non-Javadoc)
958
     * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#delete(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator)
959
     */
960
    @Override
961
    public DeleteResult delete(SpecimenOrObservationBase<?> specimen, SpecimenDeleteConfigurator config) {
962
        return defaultService.delete(specimen, config);
963
    }
964

    
965
    /* (non-Javadoc)
966
     * @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)
967
     */
968
    @Override
969
    public Collection<IndividualsAssociation> listIndividualsAssociations(SpecimenOrObservationBase<?> specimen,
970
            Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
971
        return defaultService.listIndividualsAssociations(specimen, limit, start, orderHints, propertyPaths);
972
    }
973

    
974
    /* (non-Javadoc)
975
     * @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)
976
     */
977
    @Override
978
    public Collection<SpecimenTypeDesignation> listTypeDesignations(SpecimenOrObservationBase<?> specimen,
979
            Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
980
        return defaultService.listTypeDesignations(specimen, limit, start, orderHints, propertyPaths);
981
    }
982

    
983
    /* (non-Javadoc)
984
     * @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)
985
     */
986
    @Override
987
    public Collection<DescriptionBase<?>> listDescriptionsWithDescriptionSpecimen(
988
            SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints,
989
            List<String> propertyPaths) {
990
        return defaultService.listDescriptionsWithDescriptionSpecimen(specimen, limit, start, orderHints, propertyPaths);
991
    }
992

    
993
	@Override
994
	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){
995
		return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
996
	}
997

    
998
}
(7-7/10)