Project

General

Profile

Download (58 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.EnumSet;
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

    
27
import eu.etaxonomy.cdm.api.service.ITaxonService;
28
import eu.etaxonomy.cdm.api.service.TaxaAndNamesSearchMode;
29
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
30
import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;
31
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
32
import eu.etaxonomy.cdm.api.service.config.MatchingTaxonConfigurator;
33
import eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator;
34
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
35
import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException;
36
import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;
37
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
38
import eu.etaxonomy.cdm.api.service.pager.Pager;
39
import eu.etaxonomy.cdm.api.service.search.LuceneMultiSearchException;
40
import eu.etaxonomy.cdm.api.service.search.SearchResult;
41
import eu.etaxonomy.cdm.api.service.util.TaxonRelationshipEdge;
42
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
43
import eu.etaxonomy.cdm.model.common.Annotation;
44
import eu.etaxonomy.cdm.model.common.ISourceable;
45
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
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.OrderedTermVocabulary;
52
import eu.etaxonomy.cdm.model.common.RelationshipBase;
53
import eu.etaxonomy.cdm.model.common.RelationshipBase.Direction;
54
import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
55
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
56
import eu.etaxonomy.cdm.model.description.Feature;
57
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
58
import eu.etaxonomy.cdm.model.location.NamedArea;
59
import eu.etaxonomy.cdm.model.media.Media;
60
import eu.etaxonomy.cdm.model.media.MediaRepresentation;
61
import eu.etaxonomy.cdm.model.media.Rights;
62
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
63
import eu.etaxonomy.cdm.model.name.Rank;
64
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
65
import eu.etaxonomy.cdm.model.reference.Reference;
66
import eu.etaxonomy.cdm.model.taxon.Classification;
67
import eu.etaxonomy.cdm.model.taxon.Synonym;
68
import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
69
import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
70
import eu.etaxonomy.cdm.model.taxon.Taxon;
71
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
72
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
73
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
74
import eu.etaxonomy.cdm.model.view.AuditEvent;
75
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
76
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
77
import eu.etaxonomy.cdm.persistence.fetch.CdmFetch;
78
import eu.etaxonomy.cdm.persistence.query.Grouping;
79
import eu.etaxonomy.cdm.persistence.query.MatchMode;
80
import eu.etaxonomy.cdm.persistence.query.OrderHint;
81
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
82
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
83
import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
84

    
85
/**
86
 * @author pplitzner
87
 * @date 27.09.2013
88
 *
89
 */
90
public class TransientTaxonService implements ITaxonService {
91

    
92
    private final ITaxonService defaultTaxonService;
93

    
94
    /**
95
     * @param defaultTaxonService
96
     */
97
    public TransientTaxonService(ITaxonService defaultTaxonService) {
98
        this.defaultTaxonService = defaultTaxonService;
99
    }
100

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

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

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

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

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

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

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

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

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

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

    
216
    /**
217
     * @param clazz
218
     * @return
219
     * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
220
     */
221
    @Override
222
    public int count(Class<? extends TaxonBase> clazz) {
223
        return defaultTaxonService.count(clazz);
224
    }
225

    
226
    /**
227
     * @param clazz
228
     * @param from
229
     * @param to
230
     * @param criteria
231
     * @param pageSize
232
     * @param pageValue
233
     * @param sort
234
     * @param propertyPaths
235
     * @return
236
     * @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)
237
     */
238
    @Override
239
    public Pager<AuditEventRecord<TaxonBase>> pageAuditEvents(Class<? extends TaxonBase> clazz, AuditEvent from, AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List<String> propertyPaths) {
240
        return defaultTaxonService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
241
    }
242

    
243
    /**
244
     * @param lsid
245
     * @return
246
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
247
     */
248
    @Override
249
    public TaxonBase find(LSID lsid) {
250
        return defaultTaxonService.find(lsid);
251
    }
252

    
253
    /**
254
     * @param persistentObject
255
     * @return
256
     * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
257
     */
258
    @Override
259
    public String delete(TaxonBase persistentObject) {
260
        return defaultTaxonService.delete(persistentObject);
261
    }
262

    
263
    /**
264
     * @param clazz
265
     * @param technical
266
     * @param pageSize
267
     * @param pageNumber
268
     * @param propertyPaths
269
     * @return
270
     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
271
     */
272
    @Override
273
    public List<Object[]> groupMarkers(Class<? extends TaxonBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
274
        return defaultTaxonService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
275
    }
276

    
277
    /**
278
     * @param uuid
279
     * @return
280
     * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
281
     */
282
    @Override
283
    public boolean exists(UUID uuid) {
284
        return defaultTaxonService.exists(uuid);
285
    }
286

    
287
    /**
288
     * @param limit
289
     * @param start
290
     * @return
291
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getAllSynonyms(int, int)
292
     */
293
    @Override
294
    public List<Synonym> getAllSynonyms(int limit, int start) {
295
        return defaultTaxonService.getAllSynonyms(limit, start);
296
    }
297

    
298
    /**
299
     * @param x
300
     * @param y
301
     * @return
302
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
303
     */
304
    @Override
305
    public TaxonBase replace(TaxonBase x, TaxonBase y) {
306
        return defaultTaxonService.replace(x, y);
307
    }
308

    
309
    /**
310
     * @param limit
311
     * @param start
312
     * @return
313
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getAllTaxa(int, int)
314
     */
315
    @Override
316
    public List<Taxon> getAllTaxa(int limit, int start) {
317
        return defaultTaxonService.getAllTaxa(limit, start);
318
    }
319

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

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

    
343
    /**
344
     * @param sec
345
     * @param cdmFetch
346
     * @param onlyWithChildren
347
     * @return
348
     * @deprecated
349
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getRootTaxa(eu.etaxonomy.cdm.model.reference.Reference, eu.etaxonomy.cdm.persistence.fetch.CdmFetch, boolean)
350
     */
351
    @Deprecated
352
    @Override
353
    public List<Taxon> getRootTaxa(Reference sec, CdmFetch cdmFetch, boolean onlyWithChildren) {
354
        return defaultTaxonService.getRootTaxa(sec, cdmFetch, onlyWithChildren);
355
    }
356

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

    
367
    /**
368
     * @param rank
369
     * @param sec
370
     * @param onlyWithChildren
371
     * @param withMisapplications
372
     * @param propertyPaths
373
     * @return
374
     * @deprecated
375
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getRootTaxa(eu.etaxonomy.cdm.model.name.Rank, eu.etaxonomy.cdm.model.reference.Reference, boolean, boolean, java.util.List)
376
     */
377
    @Deprecated
378
    @Override
379
    public List<Taxon> getRootTaxa(Rank rank, Reference sec, boolean onlyWithChildren, boolean withMisapplications, List<String> propertyPaths) {
380
        return defaultTaxonService.getRootTaxa(rank, sec, onlyWithChildren, withMisapplications, propertyPaths);
381
    }
382

    
383
    /**
384
     * @param id
385
     * @return
386
     * @see eu.etaxonomy.cdm.api.service.IService#find(int)
387
     */
388
    @Override
389
    public TaxonBase find(int id) {
390
        return defaultTaxonService.find(id);
391
    }
392

    
393
    /**
394
     * @param t
395
     * @param pageSize
396
     * @param pageNumber
397
     * @param propertyPaths
398
     * @return
399
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
400
     */
401
    @Override
402
    public Pager<Rights> getRights(TaxonBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
403
        return defaultTaxonService.getRights(t, pageSize, pageNumber, propertyPaths);
404
    }
405

    
406
    /**
407
     * @param clazz
408
     * @param technical
409
     * @return
410
     * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
411
     */
412
    @Override
413
    public int countMarkers(Class<? extends TaxonBase> clazz, Boolean technical) {
414
        return defaultTaxonService.countMarkers(clazz, technical);
415
    }
416

    
417
    /**
418
     * @param idSet
419
     * @return
420
     * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
421
     */
422
    @Override
423
    public List<TaxonBase> findById(Set<Integer> idSet) {
424
        return defaultTaxonService.findById(idSet);
425
    }
426

    
427
    /**
428
     * @param clazz
429
     * @param idInSource
430
     * @param idNamespace
431
     * @return
432
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
433
     */
434
    @Override
435
    public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
436
        return defaultTaxonService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
437
    }
438

    
439
    /**
440
     * @return
441
     * @see eu.etaxonomy.cdm.api.service.IService#getSession()
442
     */
443
    @Override
444
    public Session getSession() {
445
        return defaultTaxonService.getSession();
446
    }
447

    
448
    /**
449
     * @return
450
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
451
     */
452
    @Override
453
    public List<UuidAndTitleCache<TaxonBase>> getUuidAndTitleCache() {
454
        return defaultTaxonService.getUuidAndTitleCache();
455
    }
456

    
457
    /**
458
     * @param clazz
459
     * @param limit
460
     * @param start
461
     * @param groups
462
     * @param propertyPaths
463
     * @return
464
     * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
465
     */
466
    @Override
467
    public List<Object[]> group(Class<? extends TaxonBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
468
        return defaultTaxonService.group(clazz, limit, start, groups, propertyPaths);
469
    }
470

    
471
    /**
472
     * @param limit
473
     * @param start
474
     * @return
475
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getAllRelationships(int, int)
476
     */
477
    @Override
478
    public List<RelationshipBase> getAllRelationships(int limit, int start) {
479
        return defaultTaxonService.getAllRelationships(limit, start);
480
    }
481

    
482
    /**
483
     * @param clazz
484
     * @param queryString
485
     * @param matchmode
486
     * @param criteria
487
     * @param pageSize
488
     * @param pageNumber
489
     * @param orderHints
490
     * @param propertyPaths
491
     * @return
492
     * @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)
493
     */
494
    @Override
495
    public Pager<TaxonBase> findByTitle(Class<? extends TaxonBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
496
        return defaultTaxonService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
497
    }
498

    
499
    /**
500
     * @return
501
     * @deprecated
502
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getTaxonRelationshipTypeVocabulary()
503
     */
504
    @Deprecated
505
    @Override
506
    public OrderedTermVocabulary<TaxonRelationshipType> getTaxonRelationshipTypeVocabulary() {
507
        return defaultTaxonService.getTaxonRelationshipTypeVocabulary();
508
    }
509

    
510
    /**
511
     * @param name
512
     * @param sec
513
     * @return
514
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#searchTaxaByName(java.lang.String, eu.etaxonomy.cdm.model.reference.Reference)
515
     */
516
    @Override
517
    public List<TaxonBase> searchTaxaByName(String name, Reference sec) {
518
        return defaultTaxonService.searchTaxaByName(name, sec);
519
    }
520

    
521
    /**
522
     * @param synonym
523
     * @param acceptedTaxon
524
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#swapSynonymAndAcceptedTaxon(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.Taxon)
525
     */
526
    @Override
527
    public void swapSynonymAndAcceptedTaxon(Synonym synonym, Taxon acceptedTaxon) {
528
        defaultTaxonService.swapSynonymAndAcceptedTaxon(synonym, acceptedTaxon);
529
    }
530

    
531
    /**
532
     * @param type
533
     * @param limit
534
     * @param start
535
     * @param orderHints
536
     * @param propertyPaths
537
     * @return
538
     * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
539
     */
540
    @Override
541
    public List<TaxonBase> list(Class<? extends TaxonBase> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
542
        return defaultTaxonService.list(type, limit, start, orderHints, propertyPaths);
543
    }
544

    
545
    /**
546
     * @param configurator
547
     * @return
548
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
549
     */
550
    @Override
551
    public Pager<TaxonBase> findByTitle(IIdentifiableEntityServiceConfigurator<TaxonBase> configurator) {
552
        return defaultTaxonService.findByTitle(configurator);
553
    }
554

    
555
    /**
556
     * @param synonym
557
     * @param acceptedTaxon
558
     * @param deleteSynonym
559
     * @param copyCitationInfo
560
     * @param citation
561
     * @param microCitation
562
     * @return
563
     * @throws HomotypicalGroupChangeException
564
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeSynonymToAcceptedTaxon(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.Taxon, boolean, boolean, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String)
565
     */
566
    @Override
567
    public Taxon changeSynonymToAcceptedTaxon(Synonym synonym, Taxon acceptedTaxon, boolean deleteSynonym, boolean copyCitationInfo, Reference citation, String microCitation) throws HomotypicalGroupChangeException {
568
        return defaultTaxonService.changeSynonymToAcceptedTaxon(synonym, acceptedTaxon, deleteSynonym, copyCitationInfo, citation, microCitation);
569
    }
570

    
571
    /**
572
     * @param clazz
573
     * @param queryString
574
     * @param matchmode
575
     * @param criteria
576
     * @return
577
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
578
     */
579
    @Override
580
    public Integer countByTitle(Class<? extends TaxonBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
581
        return defaultTaxonService.countByTitle(clazz, queryString, matchmode, criteria);
582
    }
583

    
584
    /**
585
     * @param uuid
586
     * @return
587
     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
588
     */
589
    @Override
590
    public TaxonBase load(UUID uuid) {
591
        return defaultTaxonService.load(uuid);
592
    }
593

    
594
    /**
595
     * @param uuid
596
     * @param propertyPaths
597
     * @return
598
     * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
599
     */
600
    @Override
601
    public TaxonBase load(UUID uuid, List<String> propertyPaths) {
602
        return defaultTaxonService.load(uuid, propertyPaths);
603
    }
604

    
605
    /**
606
     * @param configurator
607
     * @return
608
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
609
     */
610
    @Override
611
    public Integer countByTitle(IIdentifiableEntityServiceConfigurator<TaxonBase> configurator) {
612
        return defaultTaxonService.countByTitle(configurator);
613
    }
614

    
615
    /**
616
     * @param transientObject
617
     * @return
618
     * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
619
     */
620
    @Override
621
    public TaxonBase merge(TaxonBase transientObject) {
622
        return defaultTaxonService.merge(transientObject);
623
    }
624

    
625
    /**
626
     * @param clazz
627
     * @param queryString
628
     * @param matchmode
629
     * @param criteria
630
     * @param pageSize
631
     * @param pageNumber
632
     * @param orderHints
633
     * @param propertyPaths
634
     * @return
635
     * @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)
636
     */
637
    @Override
638
    public List<TaxonBase> listByTitle(Class<? extends TaxonBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
639
        return defaultTaxonService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
640
    }
641

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

    
656
    /**
657
     * @param persistentObject
658
     * @return
659
     * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
660
     */
661
    @Override
662
    public UUID refresh(TaxonBase persistentObject) {
663
        return defaultTaxonService.refresh(persistentObject);
664
    }
665

    
666
    /**
667
     * @param synonym
668
     * @param toTaxon
669
     * @param taxonRelationshipType
670
     * @param reference
671
     * @param microReference
672
     * @return
673
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeSynonymToRelatedTaxon(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String)
674
     */
675
    @Override
676
    public Taxon changeSynonymToRelatedTaxon(Synonym synonym, Taxon toTaxon, TaxonRelationshipType taxonRelationshipType, Reference reference, String microReference) {
677
        return defaultTaxonService.changeSynonymToRelatedTaxon(synonym, toTaxon, taxonRelationshipType, reference, microReference);
678
    }
679

    
680
    /**
681
     * @param clazz
682
     * @param queryString
683
     * @param matchmode
684
     * @param criteria
685
     * @param pageSize
686
     * @param pageNumber
687
     * @param orderHints
688
     * @param propertyPaths
689
     * @return
690
     * @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)
691
     */
692
    @Override
693
    public List<TaxonBase> listByReferenceTitle(Class<? extends TaxonBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
694
        return defaultTaxonService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
695
    }
696

    
697
    /**
698
     * @param tableName
699
     * @param limit
700
     * @param start
701
     * @return
702
     * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
703
     */
704
    @Override
705
    public List<TaxonBase> rows(String tableName, int limit, int start) {
706
        return defaultTaxonService.rows(tableName, limit, start);
707
    }
708

    
709
    /**
710
     * @param newInstances
711
     * @return
712
     * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
713
     */
714
    @Override
715
    public Map<UUID, TaxonBase> save(Collection<TaxonBase> newInstances) {
716
        return null;
717
    }
718

    
719
    /**
720
     * @param syn
721
     * @param taxon
722
     * @return
723
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonymRelationships(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.Taxon)
724
     */
725
    @Override
726
    public long deleteSynonymRelationships(Synonym syn, Taxon taxon) {
727
        return defaultTaxonService.deleteSynonymRelationships(syn, taxon);
728
    }
729

    
730
    /**
731
     * @param newInstance
732
     * @return
733
     * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
734
     */
735
    @Override
736
    public UUID save(TaxonBase newInstance) {
737
        return null;
738
    }
739

    
740
    /**
741
     * @param transientObject
742
     * @return
743
     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
744
     */
745
    @Override
746
    public UUID saveOrUpdate(TaxonBase transientObject) {
747
        return null;
748
    }
749

    
750
    /**
751
     * @param synonym
752
     * @param newHomotypicalGroup
753
     * @param targetTaxon
754
     * @param removeFromOtherTaxa
755
     * @param setBasionymRelationIfApplicable
756
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeHomotypicalGroupOfSynonym(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.name.HomotypicalGroup, eu.etaxonomy.cdm.model.taxon.Taxon, boolean, boolean)
757
     */
758
    @Override
759
    public void changeHomotypicalGroupOfSynonym(Synonym synonym, HomotypicalGroup newHomotypicalGroup, Taxon targetTaxon, boolean removeFromOtherTaxa, boolean setBasionymRelationIfApplicable) {
760
        defaultTaxonService.changeHomotypicalGroupOfSynonym(synonym, newHomotypicalGroup, targetTaxon, removeFromOtherTaxa, setBasionymRelationIfApplicable);
761
    }
762

    
763
    /**
764
     * @param transientObjects
765
     * @return
766
     * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
767
     */
768
    @Override
769
    public Map<UUID, TaxonBase> saveOrUpdate(Collection<TaxonBase> transientObjects) {
770
        return null;
771
    }
772

    
773
    /**
774
     * @param transientObject
775
     * @return
776
     * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
777
     */
778
    @Override
779
    public UUID update(TaxonBase transientObject) {
780
        return defaultTaxonService.update(transientObject);
781
    }
782

    
783
    /**
784
     * @param example
785
     * @param includeProperties
786
     * @param limit
787
     * @param start
788
     * @param orderHints
789
     * @param propertyPaths
790
     * @return
791
     * @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)
792
     */
793
    @Override
794
    public List<TaxonBase> list(TaxonBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
795
        return defaultTaxonService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
796
    }
797

    
798
    /**
799
     * @param oldSynonymRelation
800
     * @param newTaxon
801
     * @param moveHomotypicGroup
802
     * @param newSynonymRelationshipType
803
     * @param newReference
804
     * @param newReferenceDetail
805
     * @param keepReference
806
     * @return
807
     * @throws HomotypicalGroupChangeException
808
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#moveSynonymToAnotherTaxon(eu.etaxonomy.cdm.model.taxon.SynonymRelationship, eu.etaxonomy.cdm.model.taxon.Taxon, boolean, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String, boolean)
809
     */
810
    @Override
811
    public SynonymRelationship moveSynonymToAnotherTaxon(SynonymRelationship oldSynonymRelation, Taxon newTaxon, boolean moveHomotypicGroup, SynonymRelationshipType newSynonymRelationshipType, Reference newReference, String newReferenceDetail, boolean keepReference) throws HomotypicalGroupChangeException {
812
        return defaultTaxonService.moveSynonymToAnotherTaxon(oldSynonymRelation, newTaxon, moveHomotypicGroup, newSynonymRelationshipType, newReference, newReferenceDetail, keepReference);
813
    }
814

    
815
    /**
816
     * @param clazz
817
     * @param matchStrategy
818
     * @param mergeStrategy
819
     * @return
820
     * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
821
     */
822
    @Override
823
    public int deduplicate(Class<? extends TaxonBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
824
        return defaultTaxonService.deduplicate(clazz, matchStrategy, mergeStrategy);
825
    }
826

    
827
    /**
828
     * @param clazz
829
     * @param queryString
830
     * @param pageSize
831
     * @param pageNumber
832
     * @param orderHints
833
     * @param matchMode
834
     * @return
835
     * @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)
836
     */
837
    @Override
838
    public Pager<TaxonBase> findTitleCache(Class<? extends TaxonBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
839
        return defaultTaxonService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
840
    }
841

    
842
    /**
843
     * @param taxon
844
     * @param type
845
     * @param pageSize
846
     * @param pageNumber
847
     * @param orderHints
848
     * @param propertyPaths
849
     * @return
850
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listToTaxonRelationships(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
851
     */
852
    @Override
853
    public List<TaxonRelationship> listToTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
854
        return defaultTaxonService.listToTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
855
    }
856

    
857
    /**
858
     * @param taxon
859
     * @param type
860
     * @param pageSize
861
     * @param pageNumber
862
     * @param orderHints
863
     * @param propertyPaths
864
     * @return
865
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#pageToTaxonRelationships(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
866
     */
867
    @Override
868
    public Pager<TaxonRelationship> pageToTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
869
        return defaultTaxonService.pageToTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
870
    }
871

    
872
    /**
873
     * @param taxon
874
     * @param type
875
     * @param pageSize
876
     * @param pageNumber
877
     * @param orderHints
878
     * @param propertyPaths
879
     * @return
880
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listFromTaxonRelationships(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
881
     */
882
    @Override
883
    public List<TaxonRelationship> listFromTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
884
        return defaultTaxonService.listFromTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
885
    }
886

    
887
    /**
888
     * @param taxon
889
     * @param type
890
     * @param pageSize
891
     * @param pageNumber
892
     * @param orderHints
893
     * @param propertyPaths
894
     * @return
895
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#pageFromTaxonRelationships(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
896
     */
897
    @Override
898
    public Pager<TaxonRelationship> pageFromTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
899
        return defaultTaxonService.pageFromTaxonRelationships(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
900
    }
901

    
902
    /**
903
     * @param taxon
904
     * @param includeRelationships
905
     * @param maxDepth
906
     * @param limit
907
     * @param start
908
     * @param propertyPaths
909
     * @return
910
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listRelatedTaxa(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.Set, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List)
911
     */
912
    @Override
913
    public Set<Taxon> listRelatedTaxa(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, Integer maxDepth, Integer limit, Integer start, List<String> propertyPaths) {
914
        return defaultTaxonService.listRelatedTaxa(taxon, includeRelationships, maxDepth, limit, start, propertyPaths);
915
    }
916

    
917
    /**
918
     * @param taxonBase
919
     * @param limit
920
     * @param start
921
     * @param propertyPaths
922
     * @return
923
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listClassifications(eu.etaxonomy.cdm.model.taxon.TaxonBase, java.lang.Integer, java.lang.Integer, java.util.List)
924
     */
925
    @Override
926
    public List<Classification> listClassifications(TaxonBase taxonBase, Integer limit, Integer start, List<String> propertyPaths) {
927
        return defaultTaxonService.listClassifications(taxonBase, limit, start, propertyPaths);
928
    }
929

    
930
    /**
931
     * @param synonym
932
     * @param type
933
     * @param pageSize
934
     * @param pageNumber
935
     * @param orderHints
936
     * @param propertyPaths
937
     * @return
938
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getSynonyms(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
939
     */
940
    @Override
941
    public Pager<SynonymRelationship> getSynonyms(Synonym synonym, SynonymRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
942
        return defaultTaxonService.getSynonyms(synonym, type, pageSize, pageNumber, orderHints, propertyPaths);
943
    }
944

    
945
    /**
946
     * @param taxon
947
     * @param type
948
     * @param pageSize
949
     * @param pageNumber
950
     * @param orderHints
951
     * @param propertyPaths
952
     * @return
953
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getSynonyms(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
954
     */
955
    @Override
956
    public Pager<SynonymRelationship> getSynonyms(Taxon taxon, SynonymRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
957
        return defaultTaxonService.getSynonyms(taxon, type, pageSize, pageNumber, orderHints, propertyPaths);
958
    }
959

    
960
    /**
961
     * @param taxon
962
     * @param propertyPaths
963
     * @return
964
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getHomotypicSynonymsByHomotypicGroup(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.List)
965
     */
966
    @Override
967
    public List<Synonym> getHomotypicSynonymsByHomotypicGroup(Taxon taxon, List<String> propertyPaths) {
968
        return defaultTaxonService.getHomotypicSynonymsByHomotypicGroup(taxon, propertyPaths);
969
    }
970

    
971
    /**
972
     * @param taxon
973
     * @param propertyPaths
974
     * @return
975
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getHeterotypicSynonymyGroups(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.List)
976
     */
977
    @Override
978
    public List<List<Synonym>> getHeterotypicSynonymyGroups(Taxon taxon, List<String> propertyPaths) {
979
        return defaultTaxonService.getHeterotypicSynonymyGroups(taxon, propertyPaths);
980
    }
981

    
982
    /**
983
     * @param clazz
984
     * @param queryString
985
     * @param pageSize
986
     * @param pageNumber
987
     * @param orderHints
988
     * @param propertyPaths
989
     * @return
990
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#search(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
991
     */
992
    @Override
993
    public Pager<TaxonBase> search(Class<? extends TaxonBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
994
        return defaultTaxonService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
995
    }
996

    
997
    /**
998
     * @param clazz
999
     * @param uninomial
1000
     * @param infragenericEpithet
1001
     * @param specificEpithet
1002
     * @param infraspecificEpithet
1003
     * @param rank
1004
     * @param pageSize
1005
     * @param pageNumber
1006
     * @return
1007
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaByName(java.lang.Class, java.lang.String, java.lang.String, java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.name.Rank, java.lang.Integer, java.lang.Integer)
1008
     */
1009
    @Override
1010
    public Pager<TaxonBase> findTaxaByName(Class<? extends TaxonBase> clazz, String uninomial, String infragenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank, Integer pageSize, Integer pageNumber) {
1011
        return defaultTaxonService.findTaxaByName(clazz, uninomial, infragenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber);
1012
    }
1013

    
1014
    /**
1015
     * @param clazz
1016
     * @param uninomial
1017
     * @param infragenericEpithet
1018
     * @param specificEpithet
1019
     * @param infraspecificEpithet
1020
     * @param rank
1021
     * @param pageSize
1022
     * @param pageNumber
1023
     * @return
1024
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listTaxaByName(java.lang.Class, java.lang.String, java.lang.String, java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.name.Rank, java.lang.Integer, java.lang.Integer)
1025
     */
1026
    @Override
1027
    public List<TaxonBase> listTaxaByName(Class<? extends TaxonBase> clazz, String uninomial, String infragenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank, Integer pageSize, Integer pageNumber) {
1028
        return defaultTaxonService.listTaxaByName(clazz, uninomial, infragenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber);
1029
    }
1030

    
1031
    /**
1032
     * @param configurator
1033
     * @return
1034
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaAndNames(eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator)
1035
     */
1036
    @Override
1037
    public Pager<IdentifiableEntity> findTaxaAndNames(IFindTaxaAndNamesConfigurator configurator) {
1038
        return defaultTaxonService.findTaxaAndNames(configurator);
1039
    }
1040

    
1041
    /**
1042
     * @param queryString
1043
     * @param classification
1044
     * @param languages
1045
     * @param highlightFragments
1046
     * @param pageSize
1047
     * @param pageNumber
1048
     * @param orderHints
1049
     * @param propertyPaths
1050
     * @return
1051
     * @throws CorruptIndexException
1052
     * @throws IOException
1053
     * @throws ParseException
1054
     * @throws LuceneMultiSearchException
1055
     * @deprecated
1056
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findByEverythingFullText(java.lang.String, eu.etaxonomy.cdm.model.taxon.Classification, java.util.List, boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
1057
     */
1058
    @Deprecated
1059
    @Override
1060
    public Pager<SearchResult<TaxonBase>> findByEverythingFullText(String queryString, Classification classification, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException, LuceneMultiSearchException {
1061
        return defaultTaxonService.findByEverythingFullText(queryString, classification, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
1062
    }
1063

    
1064
    /**
1065
     * @param clazz
1066
     * @param queryString
1067
     * @param classification
1068
     * @param languages
1069
     * @param highlightFragments
1070
     * @param pageSize
1071
     * @param pageNumber
1072
     * @param orderHints
1073
     * @param propertyPaths
1074
     * @return
1075
     * @throws CorruptIndexException
1076
     * @throws IOException
1077
     * @throws ParseException
1078
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findByFullText(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.model.taxon.Classification, java.util.List, boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
1079
     */
1080
    @Override
1081
    public Pager<SearchResult<TaxonBase>> findByFullText(Class<? extends TaxonBase> clazz, String queryString, Classification classification, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException {
1082
        return defaultTaxonService.findByFullText(clazz, queryString, classification, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
1083
    }
1084

    
1085
    /**
1086
     * @param areaFilter
1087
     * @param statusFilter
1088
     * @param classification
1089
     * @param pageSize
1090
     * @param pageNumber
1091
     * @param orderHints
1092
     * @param propertyPaths
1093
     * @return
1094
     * @throws IOException
1095
     * @throws ParseException
1096
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findByDistribution(java.util.List, java.util.List, eu.etaxonomy.cdm.model.taxon.Classification, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
1097
     */
1098
    @Override
1099
    public Pager<SearchResult<TaxonBase>> findByDistribution(List<NamedArea> areaFilter, List<PresenceAbsenceTermBase<?>> statusFilter, Classification classification, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws IOException, ParseException {
1100
        return defaultTaxonService.findByDistribution(areaFilter, statusFilter, classification, pageSize, pageNumber, orderHints, propertyPaths);
1101
    }
1102

    
1103
    /**
1104
     * @param searchModes
1105
     * @param queryString
1106
     * @param classification
1107
     * @param namedAreas
1108
     * @param distributionStatus
1109
     * @param languages
1110
     * @param highlightFragments
1111
     * @param pageSize
1112
     * @param pageNumber
1113
     * @param orderHints
1114
     * @param propertyPaths
1115
     * @return
1116
     * @throws CorruptIndexException
1117
     * @throws IOException
1118
     * @throws ParseException
1119
     * @throws LuceneMultiSearchException
1120
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaAndNamesByFullText(java.util.EnumSet, java.lang.String, eu.etaxonomy.cdm.model.taxon.Classification, java.util.Set, java.util.Set, java.util.List, boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
1121
     */
1122
    @Override
1123
    public Pager<SearchResult<TaxonBase>> findTaxaAndNamesByFullText(EnumSet<TaxaAndNamesSearchMode> searchModes, String queryString, Classification classification, Set<NamedArea> namedAreas, Set<PresenceAbsenceTermBase<?>> distributionStatus, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException, LuceneMultiSearchException {
1124
        return defaultTaxonService.findTaxaAndNamesByFullText(searchModes, queryString, classification, namedAreas, distributionStatus, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
1125
    }
1126

    
1127
    /**
1128
     * @param clazz
1129
     * @param queryString
1130
     * @param classification
1131
     * @param features
1132
     * @param languages
1133
     * @param highlightFragments
1134
     * @param pageSize
1135
     * @param pageNumber
1136
     * @param orderHints
1137
     * @param propertyPaths
1138
     * @return
1139
     * @throws CorruptIndexException
1140
     * @throws IOException
1141
     * @throws ParseException
1142
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findByDescriptionElementFullText(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.model.taxon.Classification, java.util.List, java.util.List, boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
1143
     */
1144
    @Override
1145
    public Pager<SearchResult<TaxonBase>> findByDescriptionElementFullText(Class<? extends DescriptionElementBase> clazz, String queryString, Classification classification, List<Feature> features, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException {
1146
        return defaultTaxonService.findByDescriptionElementFullText(clazz, queryString, classification, features, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
1147
    }
1148

    
1149
    /**
1150
     * @param taxon
1151
     * @param size
1152
     * @param height
1153
     * @param widthOrDuration
1154
     * @param mimeTypes
1155
     * @return
1156
     * @deprecated
1157
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getAllMedia(eu.etaxonomy.cdm.model.taxon.Taxon, int, int, int, java.lang.String[])
1158
     */
1159
    @Deprecated
1160
    @Override
1161
    public List<MediaRepresentation> getAllMedia(Taxon taxon, int size, int height, int widthOrDuration, String[] mimeTypes) {
1162
        return defaultTaxonService.getAllMedia(taxon, size, height, widthOrDuration, mimeTypes);
1163
    }
1164

    
1165
    /**
1166
     * @param taxon
1167
     * @param includeRelationships
1168
     * @param limitToGalleries
1169
     * @param propertyPath
1170
     * @return
1171
     * @deprecated
1172
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listTaxonDescriptionMedia(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.Set, boolean, java.util.List)
1173
     */
1174
    @Deprecated
1175
    @Override
1176
    public List<Media> listTaxonDescriptionMedia(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, boolean limitToGalleries, List<String> propertyPath) {
1177
        return defaultTaxonService.listTaxonDescriptionMedia(taxon, includeRelationships, limitToGalleries, propertyPath);
1178
    }
1179

    
1180
    /**
1181
     * @param taxon
1182
     * @param includeRelationships
1183
     * @param limitToGalleries
1184
     * @param includeTaxonDescriptions
1185
     * @param includeOccurrences
1186
     * @param includeTaxonNameDescriptions
1187
     * @param propertyPath
1188
     * @return
1189
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listMedia(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.Set, java.lang.Boolean, java.lang.Boolean, java.lang.Boolean, java.lang.Boolean, java.util.List)
1190
     */
1191
    @Override
1192
    public List<Media> listMedia(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, Boolean limitToGalleries, Boolean includeTaxonDescriptions, Boolean includeOccurrences, Boolean includeTaxonNameDescriptions, List<String> propertyPath) {
1193
        return defaultTaxonService.listMedia(taxon, includeRelationships, limitToGalleries, includeTaxonDescriptions, includeOccurrences, includeTaxonNameDescriptions, propertyPath);
1194
    }
1195

    
1196
    /**
1197
     * @param listOfIDs
1198
     * @return
1199
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaByID(java.util.Set)
1200
     */
1201
    @Override
1202
    public List<TaxonBase> findTaxaByID(Set<Integer> listOfIDs) {
1203
        return defaultTaxonService.findTaxaByID(listOfIDs);
1204
    }
1205

    
1206
    /**
1207
     * @param uuid
1208
     * @param propertyPaths
1209
     * @return
1210
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxonByUuid(java.util.UUID, java.util.List)
1211
     */
1212
    @Override
1213
    public TaxonBase findTaxonByUuid(UUID uuid, List<String> propertyPaths) {
1214
        return defaultTaxonService.findTaxonByUuid(uuid, propertyPaths);
1215
    }
1216

    
1217
    /**
1218
     * @return
1219
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#countAllRelationships()
1220
     */
1221
    @Override
1222
    public int countAllRelationships() {
1223
        return defaultTaxonService.countAllRelationships();
1224
    }
1225

    
1226
    /**
1227
     * @param propertyPath
1228
     * @return
1229
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findIdenticalTaxonNames(java.util.List)
1230
     */
1231
    @Override
1232
    public List<TaxonNameBase> findIdenticalTaxonNames(List<String> propertyPath) {
1233
        return defaultTaxonService.findIdenticalTaxonNames(propertyPath);
1234
    }
1235

    
1236
    /**
1237
     * @param propertyPath
1238
     * @return
1239
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findIdenticalTaxonNameIds(java.util.List)
1240
     */
1241
    @Override
1242
    public List<TaxonNameBase> findIdenticalTaxonNameIds(List<String> propertyPath) {
1243
        return defaultTaxonService.findIdenticalTaxonNameIds(propertyPath);
1244
    }
1245

    
1246
    /**
1247
     * @param name
1248
     * @return
1249
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getPhylumName(eu.etaxonomy.cdm.model.name.TaxonNameBase)
1250
     */
1251
    @Override
1252
    public String getPhylumName(TaxonNameBase name) {
1253
        return defaultTaxonService.getPhylumName(name);
1254
    }
1255

    
1256
    /**
1257
     * @param syn
1258
     * @return
1259
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonymRelationships(eu.etaxonomy.cdm.model.taxon.Synonym)
1260
     */
1261
    @Override
1262
    public long deleteSynonymRelationships(Synonym syn) {
1263
        return defaultTaxonService.deleteSynonymRelationships(syn);
1264
    }
1265

    
1266
    /**
1267
     * @param taxonBase
1268
     * @param type
1269
     * @param pageSize
1270
     * @param pageNumber
1271
     * @param orderHints
1272
     * @param propertyPaths
1273
     * @param direction
1274
     * @return
1275
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listSynonymRelationships(eu.etaxonomy.cdm.model.taxon.TaxonBase, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List, eu.etaxonomy.cdm.model.common.RelationshipBase.Direction)
1276
     */
1277
    @Override
1278
    public List<SynonymRelationship> listSynonymRelationships(TaxonBase taxonBase, SynonymRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths, Direction direction) {
1279
        return defaultTaxonService.listSynonymRelationships(taxonBase, type, pageSize, pageNumber, orderHints, propertyPaths, direction);
1280
    }
1281

    
1282
    /**
1283
     * @param taxonName
1284
     * @return
1285
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findBestMatchingTaxon(java.lang.String)
1286
     */
1287
    @Override
1288
    public Taxon findBestMatchingTaxon(String taxonName) {
1289
        return defaultTaxonService.findBestMatchingTaxon(taxonName);
1290
    }
1291

    
1292
    /**
1293
     * @param config
1294
     * @return
1295
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findBestMatchingTaxon(eu.etaxonomy.cdm.api.service.config.MatchingTaxonConfigurator)
1296
     */
1297
    @Override
1298
    public Taxon findBestMatchingTaxon(MatchingTaxonConfigurator config) {
1299
        return defaultTaxonService.findBestMatchingTaxon(config);
1300
    }
1301

    
1302
    /**
1303
     * @param taxonName
1304
     * @return
1305
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findBestMatchingSynonym(java.lang.String)
1306
     */
1307
    @Override
1308
    public Synonym findBestMatchingSynonym(String taxonName) {
1309
        return defaultTaxonService.findBestMatchingSynonym(taxonName);
1310
    }
1311

    
1312
    /**
1313
     * @return
1314
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getUuidAndTitleCacheTaxon()
1315
     */
1316
    @Override
1317
    public List<UuidAndTitleCache<TaxonBase>> getUuidAndTitleCacheTaxon() {
1318
        return defaultTaxonService.getUuidAndTitleCacheTaxon();
1319
    }
1320

    
1321
    /**
1322
     * @return
1323
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getUuidAndTitleCacheSynonym()
1324
     */
1325
    @Override
1326
    public List<UuidAndTitleCache<TaxonBase>> getUuidAndTitleCacheSynonym() {
1327
        return defaultTaxonService.getUuidAndTitleCacheSynonym();
1328
    }
1329

    
1330
    /**
1331
     * @param configurator
1332
     * @return
1333
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaAndNamesForEditor(eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator)
1334
     */
1335
    @Override
1336
    public List<UuidAndTitleCache<TaxonBase>> findTaxaAndNamesForEditor(IFindTaxaAndNamesConfigurator configurator) {
1337
        return defaultTaxonService.findTaxaAndNamesForEditor(configurator);
1338
    }
1339

    
1340
    /**
1341
     * @param taxon
1342
     * @param tree
1343
     * @param type
1344
     * @param doWithMisappliedNames
1345
     * @return
1346
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#createInferredSynonyms(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.Classification, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType, boolean)
1347
     */
1348
    @Override
1349
    public List<Synonym> createInferredSynonyms(Taxon taxon, Classification tree, SynonymRelationshipType type, boolean doWithMisappliedNames) {
1350
        return defaultTaxonService.createInferredSynonyms(taxon, tree, type, doWithMisappliedNames);
1351
    }
1352

    
1353
    /**
1354
     * @param taxon
1355
     * @param tree
1356
     * @param doWithMisappliedNames
1357
     * @return
1358
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#createAllInferredSynonyms(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.Classification, boolean)
1359
     */
1360
    @Override
1361
    public List<Synonym> createAllInferredSynonyms(Taxon taxon, Classification tree, boolean doWithMisappliedNames) {
1362
        return defaultTaxonService.createAllInferredSynonyms(taxon, tree, doWithMisappliedNames);
1363
    }
1364

    
1365
    /* (non-Javadoc)
1366
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonym(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator)
1367
     */
1368
    @Override
1369
    public String deleteSynonym(Synonym arg0, SynonymDeletionConfigurator arg1) {
1370
        return defaultTaxonService.deleteSynonym(arg0, arg1);
1371
    }
1372

    
1373
    /* (non-Javadoc)
1374
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonym(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator)
1375
     */
1376
    @Override
1377
    public String deleteSynonym(Synonym arg0, Taxon arg1, SynonymDeletionConfigurator arg2) {
1378
        return defaultTaxonService.deleteSynonym(arg0, arg1, arg2);
1379
    }
1380

    
1381
    /* (non-Javadoc)
1382
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteTaxon(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator, eu.etaxonomy.cdm.model.taxon.Classification)
1383
     */
1384
    @Override
1385
    public String deleteTaxon(Taxon arg0, TaxonDeletionConfigurator arg1, Classification arg2) {
1386
        return defaultTaxonService.deleteTaxon(arg0, arg1, arg2);
1387
    }
1388

    
1389
    /* (non-Javadoc)
1390
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#getSynonymsByHomotypicGroup(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.List)
1391
     */
1392
    @Override
1393
    public List<List<Synonym>> getSynonymsByHomotypicGroup(Taxon taxon, List<String> propertyPaths) {
1394
        return defaultTaxonService.getSynonymsByHomotypicGroup(taxon, propertyPaths);
1395
    }
1396

    
1397
	@Override
1398
	public Synonym changeRelatedTaxonToSynonym(Taxon fromTaxon, Taxon toTaxon,
1399
			TaxonRelationshipType oldRelationshipType,
1400
			SynonymRelationshipType synonymRelationshipType)
1401
			throws DataChangeNoRollbackException {
1402

    
1403
		return defaultTaxonService.changeRelatedTaxonToSynonym(fromTaxon, toTaxon, oldRelationshipType, synonymRelationshipType);
1404
	}
1405

    
1406
    /* (non-Javadoc)
1407
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#pageAcceptedTaxaFor(java.util.UUID, java.util.UUID, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
1408
     */
1409
    @Override
1410
    public Pager<Taxon> pageAcceptedTaxaFor(UUID synonymUuid, UUID classificationUuid, Integer pageSize,
1411
            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
1412
        return defaultTaxonService.pageAcceptedTaxaFor(synonymUuid, classificationUuid, pageSize, pageNumber, orderHints, propertyPaths);
1413
    }
1414

    
1415
    /* (non-Javadoc)
1416
     * @see eu.etaxonomy.cdm.api.service.ITaxonService#listAcceptedTaxaFor(java.util.UUID, java.util.UUID, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
1417
     */
1418
    @Override
1419
    public List<Taxon> listAcceptedTaxaFor(UUID synonymUuid, UUID classificationUuid, Integer pageSize,
1420
            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
1421
        return defaultTaxonService.listAcceptedTaxaFor(synonymUuid, classificationUuid, pageSize, pageNumber, orderHints, propertyPaths);
1422
    }
1423

    
1424
	@Override
1425
	public List<String> isDeletable(TaxonBase object,
1426
			DeleteConfiguratorBase config) {
1427
		// TODO Auto-generated method stub
1428
		return null;
1429
	}
1430

    
1431

    
1432

    
1433

    
1434

    
1435

    
1436
}
(8-8/9)