02a3281ffc5532c6ec9f30b11f71489107869612
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / dataimport / transientServices / TransientOccurenceService.java
1 // $Id$
2 /**
3 * Copyright (C) 2013 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10 package eu.etaxonomy.taxeditor.editor.view.dataimport.transientServices;
11
12 import java.io.IOException;
13 import java.util.Collection;
14 import java.util.HashSet;
15 import java.util.List;
16 import java.util.Map;
17 import java.util.Set;
18 import java.util.UUID;
19
20 import org.apache.lucene.index.CorruptIndexException;
21 import org.apache.lucene.queryParser.ParseException;
22 import org.hibernate.LockOptions;
23 import org.hibernate.Session;
24 import org.hibernate.criterion.Criterion;
25 import org.hibernate.envers.query.criteria.AuditCriterion;
26 import org.hibernate.search.spatial.impl.Rectangle;
27
28 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
29 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
30 import eu.etaxonomy.cdm.api.service.DeleteResult;
31 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
32 import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
33 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
34 import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
35 import eu.etaxonomy.cdm.api.service.dto.FieldUnitDTO;
36 import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
37 import eu.etaxonomy.cdm.api.service.dto.PreservedSpecimenDTO;
38 import eu.etaxonomy.cdm.api.service.pager.Pager;
39 import eu.etaxonomy.cdm.api.service.search.SearchResult;
40 import eu.etaxonomy.cdm.api.service.util.TaxonRelationshipEdge;
41 import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
42 import eu.etaxonomy.cdm.model.common.Annotation;
43 import eu.etaxonomy.cdm.model.common.CdmBase;
44 import eu.etaxonomy.cdm.model.common.DefinedTerm;
45 import eu.etaxonomy.cdm.model.common.ICdmBase;
46 import eu.etaxonomy.cdm.model.common.ISourceable;
47 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
48 import eu.etaxonomy.cdm.model.common.LSID;
49 import eu.etaxonomy.cdm.model.common.Language;
50 import eu.etaxonomy.cdm.model.common.Marker;
51 import eu.etaxonomy.cdm.model.common.MarkerType;
52 import eu.etaxonomy.cdm.model.description.DescriptionBase;
53 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
54 import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
55 import eu.etaxonomy.cdm.model.location.Country;
56 import eu.etaxonomy.cdm.model.media.Media;
57 import eu.etaxonomy.cdm.model.media.Rights;
58 import eu.etaxonomy.cdm.model.molecular.DnaSample;
59 import eu.etaxonomy.cdm.model.molecular.Sequence;
60 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
61 import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
62 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
63 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
64 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
65 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
66 import eu.etaxonomy.cdm.model.taxon.Taxon;
67 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
68 import eu.etaxonomy.cdm.model.view.AuditEvent;
69 import eu.etaxonomy.cdm.model.view.AuditEventRecord;
70 import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
71 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
72 import eu.etaxonomy.cdm.persistence.query.Grouping;
73 import eu.etaxonomy.cdm.persistence.query.MatchMode;
74 import eu.etaxonomy.cdm.persistence.query.OrderHint;
75 import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
76 import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
77 import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
78
79 /**
80 * @author pplitzner
81 * @date 26.09.2013
82 *
83 */
84 public class TransientOccurenceService implements IOccurrenceService {
85
86 private final IOccurrenceService defaultService;
87 private final Collection<SpecimenOrObservationBase<?>> units;
88
89 /**
90 * @param defaultService
91 */
92 public TransientOccurenceService(IOccurrenceService defaultService) {
93 this.defaultService = defaultService;
94 this.units = new HashSet<SpecimenOrObservationBase<?>>();
95 }
96
97 /**
98 * @param t
99 * @param pageSize
100 * @param pageNumber
101 * @param sort
102 * @param propertyPaths
103 * @return
104 * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(eu.etaxonomy.cdm.model.common.VersionableEntity, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
105 */
106 @Override
107 public Pager<AuditEventRecord<SpecimenOrObservationBase>> pageAuditEvents(SpecimenOrObservationBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List<String> propertyPaths) {
108 return defaultService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
109 }
110
111 /**
112 * @param annotatedObj
113 * @param status
114 * @param pageSize
115 * @param pageNumber
116 * @param orderHints
117 * @param propertyPaths
118 * @return
119 * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getAnnotations(eu.etaxonomy.cdm.model.common.AnnotatableEntity, eu.etaxonomy.cdm.model.common.MarkerType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
120 */
121 @Override
122 public Pager<Annotation> getAnnotations(SpecimenOrObservationBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
123 return defaultService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
124 }
125
126 /**
127 *
128 * @see eu.etaxonomy.cdm.api.service.IService#clear()
129 */
130 @Override
131 public void clear() {
132 defaultService.clear();
133 }
134
135 /**
136 * @param t
137 * @param lockMode
138 * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
139 */
140 @Override
141 public void lock(SpecimenOrObservationBase t, LockOptions lockOptions) {
142 defaultService.lock(t, lockOptions);
143 }
144
145 /**
146 * @param t
147 * @param lockMode
148 * @param propertyPaths
149 * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
150 */
151 @Override
152 public void refresh(SpecimenOrObservationBase t, LockOptions lockOptions, List<String> propertyPaths) {
153 defaultService.refresh(t, lockOptions, propertyPaths);
154 }
155
156 /**
157 *
158 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
159 */
160 @Override
161 public void updateTitleCache() {
162 defaultService.updateTitleCache();
163 }
164
165 /**
166 * @param t
167 * @return
168 * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
169 */
170 @Override
171 public AuditEventRecord<SpecimenOrObservationBase> getNextAuditEvent(SpecimenOrObservationBase t) {
172 return defaultService.getNextAuditEvent(t);
173 }
174
175 /**
176 * @param annotatableEntity
177 * @param technical
178 * @param pageSize
179 * @param pageNumber
180 * @param orderHints
181 * @param propertyPaths
182 * @return
183 * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getMarkers(eu.etaxonomy.cdm.model.common.AnnotatableEntity, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
184 */
185 @Override
186 public Pager<Marker> getMarkers(SpecimenOrObservationBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
187 return defaultService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
188 }
189
190 /**
191 * @param clazz
192 * @param stepSize
193 * @param cacheStrategy
194 * @param monitor
195 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache(java.lang.Class, java.lang.Integer, eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy, eu.etaxonomy.cdm.common.monitor.IProgressMonitor)
196 */
197 @Override
198 public void updateTitleCache(Class<? extends SpecimenOrObservationBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<SpecimenOrObservationBase> cacheStrategy, IProgressMonitor monitor) {
199 defaultService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
200 }
201
202 /**
203 * @param t
204 * @return
205 * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
206 */
207 @Override
208 public AuditEventRecord<SpecimenOrObservationBase> getPreviousAuditEvent(SpecimenOrObservationBase t) {
209 return defaultService.getPreviousAuditEvent(t);
210 }
211
212 /**
213 * @param iso639
214 * @return
215 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCountryByIso(java.lang.String)
216 */
217 @Override
218 public Country getCountryByIso(String iso639) {
219 return defaultService.getCountryByIso(iso639);
220 }
221
222 /**
223 * @param clazz
224 * @return
225 * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
226 */
227 @Override
228 public int count(Class<? extends SpecimenOrObservationBase> clazz) {
229 return defaultService.count(clazz);
230 }
231
232 /**
233 * @param name
234 * @return
235 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCountryByName(java.lang.String)
236 */
237 @Override
238 public List<Country> getCountryByName(String name) {
239 return defaultService.getCountryByName(name);
240 }
241
242 /**
243 * @param type
244 * @param determinedAs
245 * @param limit
246 * @param start
247 * @param orderHints
248 * @param propertyPaths
249 * @return
250 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#list(java.lang.Class, eu.etaxonomy.cdm.model.taxon.TaxonBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
251 */
252 @Override
253 public Pager<SpecimenOrObservationBase> list(Class<? extends SpecimenOrObservationBase> type, TaxonBase determinedAs, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
254 return defaultService.list(type, determinedAs, limit, start, orderHints, propertyPaths);
255 }
256
257 /**
258 * @param clazz
259 * @param from
260 * @param to
261 * @param criteria
262 * @param pageSize
263 * @param pageValue
264 * @param sort
265 * @param propertyPaths
266 * @return
267 * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(java.lang.Class, eu.etaxonomy.cdm.model.view.AuditEvent, eu.etaxonomy.cdm.model.view.AuditEvent, java.util.List, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
268 */
269 @Override
270 public Pager<AuditEventRecord<SpecimenOrObservationBase>> pageAuditEvents(Class<? extends SpecimenOrObservationBase> clazz, AuditEvent from, AuditEvent to, List<AuditCriterion> criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List<String> propertyPaths) {
271 return defaultService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
272 }
273
274 /**
275 * @param lsid
276 * @return
277 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
278 */
279 @Override
280 public SpecimenOrObservationBase find(LSID lsid) {
281 return defaultService.find(lsid);
282 }
283
284 /**
285 * @param persistentObject
286 * @return
287 * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
288 */
289 @Override
290 public DeleteResult delete(SpecimenOrObservationBase persistentObject) {
291 return defaultService.delete(persistentObject);
292 }
293
294 /**
295 * @param clazz
296 * @param technical
297 * @param pageSize
298 * @param pageNumber
299 * @param propertyPaths
300 * @return
301 * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
302 */
303 @Override
304 public List<Object[]> groupMarkers(Class<? extends SpecimenOrObservationBase> clazz, Boolean technical, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
305 return defaultService.groupMarkers(clazz, technical, pageSize, pageNumber, propertyPaths);
306 }
307
308 /**
309 * @param uuid
310 * @return
311 * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
312 */
313 @Override
314 public boolean exists(UUID uuid) {
315 return defaultService.exists(uuid);
316 }
317
318 /**
319 * @param x
320 * @param y
321 * @return
322 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
323 */
324 @Override
325 public SpecimenOrObservationBase replace(SpecimenOrObservationBase x, SpecimenOrObservationBase y) {
326 return defaultService.replace(x, y);
327 }
328
329 /**
330 * @param uuidSet
331 * @return
332 * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
333 */
334 @Override
335 public List<SpecimenOrObservationBase> find(Set<UUID> uuidSet) {
336 return defaultService.find(uuidSet);
337 }
338
339 /**
340 * @param t
341 * @param pageSize
342 * @param pageNumber
343 * @param propertyPaths
344 * @return
345 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
346 */
347 @Override
348 public Pager<IdentifiableSource> getSources(SpecimenOrObservationBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
349 return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
350 }
351
352 /**
353 * @param uuid
354 * @return
355 * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
356 */
357 @Override
358 public SpecimenOrObservationBase find(UUID uuid) {
359 return defaultService.find(uuid);
360 }
361
362 /**
363 * @param id
364 * @return
365 * @see eu.etaxonomy.cdm.api.service.IService#find(int)
366 */
367 @Override
368 public SpecimenOrObservationBase find(int id) {
369 return defaultService.find(id);
370 }
371
372 /**
373 * @param t
374 * @param pageSize
375 * @param pageNumber
376 * @param propertyPaths
377 * @return
378 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
379 */
380 @Override
381 public Pager<Rights> getRights(SpecimenOrObservationBase t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
382 return defaultService.getRights(t, pageSize, pageNumber, propertyPaths);
383 }
384
385 /**
386 * @param clazz
387 * @param technical
388 * @return
389 * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
390 */
391 @Override
392 public int countMarkers(Class<? extends SpecimenOrObservationBase> clazz, Boolean technical) {
393 return defaultService.countMarkers(clazz, technical);
394 }
395
396 /**
397 * @param occurence
398 * @param pageSize
399 * @param pageNumber
400 * @param propertyPaths
401 * @return
402 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getMedia(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List)
403 */
404 @Override
405 public Pager<Media> getMedia(SpecimenOrObservationBase occurence, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
406 return defaultService.getMedia(occurence, pageSize, pageNumber, propertyPaths);
407 }
408
409 /**
410 * @param idSet
411 * @return
412 * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
413 */
414 @Override
415 public List<SpecimenOrObservationBase> findById(Set<Integer> idSet) {
416 return defaultService.findById(idSet);
417 }
418
419 /**
420 * @param clazz
421 * @param idInSource
422 * @param idNamespace
423 * @return
424 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
425 */
426 @Override
427 public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {
428 return defaultService.getSourcedObjectByIdInSource(clazz, idInSource, idNamespace);
429 }
430
431 /**
432 * @return
433 * @see eu.etaxonomy.cdm.api.service.IService#getSession()
434 */
435 @Override
436 public Session getSession() {
437 return defaultService.getSession();
438 }
439
440 /**
441 * @return
442 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
443 */
444 @Override
445 public List<UuidAndTitleCache<SpecimenOrObservationBase>> getUuidAndTitleCache() {
446 return defaultService.getUuidAndTitleCache();
447 }
448
449 /**
450 * @param clazz
451 * @param limit
452 * @param start
453 * @param groups
454 * @param propertyPaths
455 * @return
456 * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
457 */
458 @Override
459 public List<Object[]> group(Class<? extends SpecimenOrObservationBase> clazz, Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths) {
460 return defaultService.group(clazz, limit, start, groups, propertyPaths);
461 }
462
463 /**
464 * @param occurence
465 * @param taxonBase
466 * @param pageSize
467 * @param pageNumber
468 * @param propertyPaths
469 * @return
470 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getDeterminations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.taxon.TaxonBase, java.lang.Integer, java.lang.Integer, java.util.List)
471 */
472 @Override
473 public Pager<DeterminationEvent> getDeterminations(SpecimenOrObservationBase occurence, TaxonBase taxonBase, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
474 return defaultService.getDeterminations(occurence, taxonBase, pageSize, pageNumber, propertyPaths);
475 }
476
477 /**
478 * @param clazz
479 * @param queryString
480 * @param matchmode
481 * @param criteria
482 * @param pageSize
483 * @param pageNumber
484 * @param orderHints
485 * @param propertyPaths
486 * @return
487 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
488 */
489 @Override
490 public Pager<SpecimenOrObservationBase> findByTitle(Class<? extends SpecimenOrObservationBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
491 return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
492 }
493
494 /**
495 * @param occurence
496 * @param pageSize
497 * @param pageNumber
498 * @param propertyPaths
499 * @return
500 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getDerivationEvents(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List)
501 */
502 @Override
503 public Pager<DerivationEvent> getDerivationEvents(SpecimenOrObservationBase occurence, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
504 return defaultService.getDerivationEvents(occurence, pageSize, pageNumber, propertyPaths);
505 }
506
507 /**
508 * @param type
509 * @param limit
510 * @param start
511 * @param orderHints
512 * @param propertyPaths
513 * @return
514 * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
515 */
516 @Override
517 public <S extends SpecimenOrObservationBase> List<S> list(Class<S> type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
518 return defaultService.list(type, limit, start, orderHints, propertyPaths);
519 }
520
521 /**
522 * @param clazz
523 * @param query
524 * @param pageSize
525 * @param pageNumber
526 * @param orderHints
527 * @param propertyPaths
528 * @return
529 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#search(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
530 */
531 @Override
532 public Pager<SpecimenOrObservationBase> search(Class<? extends SpecimenOrObservationBase> clazz, String query, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
533 return defaultService.search(clazz, query, pageSize, pageNumber, orderHints, propertyPaths);
534 }
535
536 /**
537 * @param configurator
538 * @return
539 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
540 */
541 @Override
542 public Pager<SpecimenOrObservationBase> findByTitle(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> configurator) {
543 return defaultService.findByTitle(configurator);
544 }
545
546 /**
547 * @param clazz
548 * @param queryString
549 * @param matchmode
550 * @param criteria
551 * @return
552 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
553 */
554 @Override
555 public Integer countByTitle(Class<? extends SpecimenOrObservationBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria) {
556 return defaultService.countByTitle(clazz, queryString, matchmode, criteria);
557 }
558
559 /**
560 * @param uuid
561 * @return
562 * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
563 */
564 @Override
565 public SpecimenOrObservationBase load(UUID uuid) {
566 return defaultService.load(uuid);
567 }
568
569 /**
570 * @param uuid
571 * @param propertyPaths
572 * @return
573 * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
574 */
575 @Override
576 public SpecimenOrObservationBase load(UUID uuid, List<String> propertyPaths) {
577 return defaultService.load(uuid, propertyPaths);
578 }
579
580 /**
581 * @param configurator
582 * @return
583 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
584 */
585 @Override
586 public Integer countByTitle(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> configurator) {
587 return defaultService.countByTitle(configurator);
588 }
589
590 /**
591 * @return
592 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getFieldUnitUuidAndTitleCache()
593 */
594 @Override
595 public List<UuidAndTitleCache<FieldUnit>> getFieldUnitUuidAndTitleCache() {
596 return defaultService.getFieldUnitUuidAndTitleCache();
597 }
598
599 /**
600 * @return
601 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getDerivedUnitUuidAndTitleCache()
602 */
603 @Override
604 public List<UuidAndTitleCache<DerivedUnit>> getDerivedUnitUuidAndTitleCache() {
605 return defaultService.getDerivedUnitUuidAndTitleCache();
606 }
607
608 /**
609 * @param transientObject
610 * @return
611 * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
612 */
613 @Override
614 public SpecimenOrObservationBase merge(SpecimenOrObservationBase transientObject) {
615 return defaultService.merge(transientObject);
616 }
617
618 /**
619 * @param derivedUnit
620 * @param propertyPaths
621 * @return
622 * @throws DerivedUnitFacadeNotSupportedException
623 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getDerivedUnitFacade(eu.etaxonomy.cdm.model.occurrence.DerivedUnit, java.util.List)
624 */
625 @Override
626 public DerivedUnitFacade getDerivedUnitFacade(DerivedUnit derivedUnit, List<String> propertyPaths) throws DerivedUnitFacadeNotSupportedException {
627 return defaultService.getDerivedUnitFacade(derivedUnit, propertyPaths);
628 }
629
630 /**
631 * @param clazz
632 * @param queryString
633 * @param matchmode
634 * @param criteria
635 * @param pageSize
636 * @param pageNumber
637 * @param orderHints
638 * @param propertyPaths
639 * @return
640 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
641 */
642 @Override
643 public List<SpecimenOrObservationBase> listByTitle(Class<? extends SpecimenOrObservationBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
644 return defaultService.listByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
645 }
646
647 /**
648 * @param description
649 * @param propertyPaths
650 * @return
651 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listDerivedUnitFacades(eu.etaxonomy.cdm.model.description.DescriptionBase, java.util.List)
652 */
653 @Override
654 public List<DerivedUnitFacade> listDerivedUnitFacades(DescriptionBase description, List<String> propertyPaths) {
655 return defaultService.listDerivedUnitFacades(description, propertyPaths);
656 }
657
658 /**
659 * @param type
660 * @param pageSize
661 * @param pageNumber
662 * @param orderHints
663 * @param propertyPaths
664 * @return
665 * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
666 */
667 @Override
668 public <S extends SpecimenOrObservationBase> Pager<S> page(Class<S> type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
669 return defaultService.page(type, pageSize, pageNumber, orderHints, propertyPaths);
670 }
671
672 /**
673 * @param type
674 * @param includeRelationships
675 * @param associatedTaxon
676 * @param maxDepth
677 * @param pageSize
678 * @param pageNumber
679 * @param orderHints
680 * @param propertyPaths
681 * @return
682 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listByAssociatedTaxon(java.lang.Class, java.util.Set, eu.etaxonomy.cdm.model.taxon.Taxon, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
683 */
684 @Override
685 public <T extends SpecimenOrObservationBase> List<T> listByAssociatedTaxon(Class<T> type, Set<TaxonRelationshipEdge> includeRelationships, Taxon associatedTaxon, Integer maxDepth, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
686 return defaultService.listByAssociatedTaxon(type, includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
687 }
688
689 /**
690 * @param persistentObject
691 * @return
692 * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
693 */
694 @Override
695 public UUID refresh(SpecimenOrObservationBase persistentObject) {
696 return defaultService.refresh(persistentObject);
697 }
698
699 /**
700 * @param clazz
701 * @param queryString
702 * @param matchmode
703 * @param criteria
704 * @param pageSize
705 * @param pageNumber
706 * @param orderHints
707 * @param propertyPaths
708 * @return
709 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByReferenceTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
710 */
711 @Override
712 public List<SpecimenOrObservationBase> listByReferenceTitle(Class<? extends SpecimenOrObservationBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
713 return defaultService.listByReferenceTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
714 }
715
716 /**
717 * @param tableName
718 * @param limit
719 * @param start
720 * @return
721 * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
722 */
723 @Override
724 public List<SpecimenOrObservationBase> rows(String tableName, int limit, int start) {
725 return defaultService.rows(tableName, limit, start);
726 }
727
728 /**
729 * @param newInstances
730 * @return
731 * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
732 */
733 @Override
734 public Map<UUID, SpecimenOrObservationBase> save(Collection<SpecimenOrObservationBase> newInstances) {
735 for(SpecimenOrObservationBase unit:newInstances){
736 save(unit);
737 }
738 return null;
739 }
740
741 /**
742 * @param type
743 * @param includeRelationships
744 * @param associatedTaxon
745 * @param maxDepth
746 * @param pageSize
747 * @param pageNumber
748 * @param orderHints
749 * @param propertyPaths
750 * @return
751 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#pageByAssociatedTaxon(java.lang.Class, java.util.Set, eu.etaxonomy.cdm.model.taxon.Taxon, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
752 */
753 @Override
754 public <T extends SpecimenOrObservationBase> Pager<T> pageByAssociatedTaxon(Class<T> type, Set<TaxonRelationshipEdge> includeRelationships, Taxon associatedTaxon, Integer maxDepth, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
755 return defaultService.pageByAssociatedTaxon(type, includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
756 }
757
758 /**
759 * @param newInstance
760 * @return
761 * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
762 */
763 @Override
764 public UUID save(SpecimenOrObservationBase newInstance) {
765 units.add(newInstance);
766 return null;
767 }
768
769 /**
770 * @param transientObject
771 * @return
772 * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
773 */
774 @Override
775 public UUID saveOrUpdate(SpecimenOrObservationBase transientObject) {
776 units.add(transientObject);
777 return null;
778 }
779
780 /**
781 * @param transientObjects
782 * @return
783 * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
784 */
785 @Override
786 public Map<UUID, SpecimenOrObservationBase> saveOrUpdate(Collection<SpecimenOrObservationBase> transientObjects) {
787 for(SpecimenOrObservationBase unit:transientObjects){
788 saveOrUpdate(unit);
789 }
790 return null;
791 }
792
793 /**
794 * @param clazz
795 * @param queryString
796 * @param boundingBox
797 * @param languages
798 * @param highlightFragments
799 * @param pageSize
800 * @param pageNumber
801 * @param orderHints
802 * @param propertyPaths
803 * @return
804 * @throws CorruptIndexException
805 * @throws IOException
806 * @throws ParseException
807 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#findByFullText(java.lang.Class, java.lang.String, org.hibernate.search.spatial.impl.Rectangle, java.util.List, boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
808 */
809 @Override
810 public Pager<SearchResult<SpecimenOrObservationBase>> findByFullText(Class<? extends SpecimenOrObservationBase> clazz, String queryString, Rectangle boundingBox, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException {
811 return defaultService.findByFullText(clazz, queryString, boundingBox, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
812 }
813
814 /**
815 * @param transientObject
816 * @return
817 * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
818 */
819 @Override
820 public UUID update(SpecimenOrObservationBase transientObject) {
821 return defaultService.update(transientObject);
822 }
823
824 /**
825 * @param example
826 * @param includeProperties
827 * @param limit
828 * @param start
829 * @param orderHints
830 * @param propertyPaths
831 * @return
832 * @see eu.etaxonomy.cdm.api.service.IService#list(eu.etaxonomy.cdm.model.common.ICdmBase, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
833 */
834 @Override
835 public List<SpecimenOrObservationBase> list(SpecimenOrObservationBase example, Set<String> includeProperties, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
836 return defaultService.list(example, includeProperties, limit, start, orderHints, propertyPaths);
837 }
838
839 /**
840 * @param clazz
841 * @param matchStrategy
842 * @param mergeStrategy
843 * @return
844 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
845 */
846 @Override
847 public int deduplicate(Class<? extends SpecimenOrObservationBase> clazz, IMatchStrategy matchStrategy, IMergeStrategy mergeStrategy) {
848 return defaultService.deduplicate(clazz, matchStrategy, mergeStrategy);
849 }
850
851 /**
852 * @param clazz
853 * @param queryString
854 * @param pageSize
855 * @param pageNumber
856 * @param orderHints
857 * @param matchMode
858 * @return
859 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findTitleCache(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, eu.etaxonomy.cdm.persistence.query.MatchMode)
860 */
861 @Override
862 public Pager<SpecimenOrObservationBase> findTitleCache(Class<? extends SpecimenOrObservationBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
863 return defaultService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
864 }
865
866 /**
867 * @return
868 */
869 public Collection<SpecimenOrObservationBase<?>> getUnits() {
870 return units;
871 }
872
873 /* (non-Javadoc)
874 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getFieldUnits(java.util.UUID)
875 */
876 @Override
877 public Collection<FieldUnit> getFieldUnits(UUID derivedUnitUuid) {
878 return defaultService.getFieldUnits(derivedUnitUuid);
879 }
880
881 /* (non-Javadoc)
882 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#pageByAssociatedTaxon(java.lang.Class, java.util.Set, java.lang.String, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
883 */
884 @Override
885 public <T extends SpecimenOrObservationBase> Pager<T> pageByAssociatedTaxon(Class<T> type,
886 Set<TaxonRelationshipEdge> includeRelationships, String taxonUUID, Integer maxDepth, Integer pageSize,
887 Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
888 return defaultService.pageByAssociatedTaxon(type, includeRelationships, taxonUUID,
889 maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
890 }
891
892 /* (non-Javadoc)
893 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#moveDerivate(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.occurrence.DerivedUnit)
894 */
895 @Override
896 public boolean moveDerivate(SpecimenOrObservationBase<?> from, SpecimenOrObservationBase<?> to, DerivedUnit derivate) {
897 return defaultService.moveDerivate(from, to, derivate);
898 }
899
900 /* (non-Javadoc)
901 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#moveSequence(eu.etaxonomy.cdm.model.molecular.DnaSample, eu.etaxonomy.cdm.model.molecular.DnaSample, eu.etaxonomy.cdm.model.molecular.Sequence)
902 */
903 @Override
904 public boolean moveSequence(DnaSample from, DnaSample to, Sequence sequence) {
905 return defaultService.moveSequence(from, to, sequence);
906 }
907
908 @Override
909 public DeleteResult isDeletable(SpecimenOrObservationBase object,
910 DeleteConfiguratorBase config) {
911 return defaultService.isDeletable(object, config);
912 }
913
914 /* (non-Javadoc)
915 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#countDeterminations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.taxon.TaxonBase)
916 */
917 @Override
918 public int countDeterminations(SpecimenOrObservationBase occurence, TaxonBase taxonbase) {
919 return defaultService.countDeterminations(occurence, taxonbase);
920 }
921
922 @Override
923 public SpecimenOrObservationBase findWithoutFlush(UUID uuid) {
924 return defaultService.findWithoutFlush(uuid);
925 }
926
927 @Override
928 public Collection<SpecimenOrObservationBase> listFieldUnitsByAssociatedTaxon(Taxon associatedTaxon,
929 List<OrderHint> orderHints, List<String> propertyPaths) {
930 return defaultService.listFieldUnitsByAssociatedTaxon(associatedTaxon, orderHints, propertyPaths);
931 }
932
933 @Override
934 public Pager<SpecimenOrObservationBase> pageFieldUnitsByAssociatedTaxon(
935 Set<TaxonRelationshipEdge> includeRelationships, Taxon associatedTaxon, Integer maxDepth, Integer pageSize,
936 Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
937 return defaultService.pageFieldUnitsByAssociatedTaxon(includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
938 }
939
940
941 /* (non-Javadoc)
942 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#assembleFieldUnitDTO(eu.etaxonomy.cdm.model.occurrence.FieldUnit, java.util.UUID)
943 */
944 @Override
945 public FieldUnitDTO assembleFieldUnitDTO(FieldUnit fieldUnit, UUID associatedTaxonUuid) {
946 return defaultService.assembleFieldUnitDTO(fieldUnit, associatedTaxonUuid);
947 }
948
949 /* (non-Javadoc)
950 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#assemblePreservedSpecimenDTO(eu.etaxonomy.cdm.model.occurrence.DerivedUnit)
951 */
952 @Override
953 public PreservedSpecimenDTO assemblePreservedSpecimenDTO(DerivedUnit derivedUnit) {
954 return defaultService.assemblePreservedSpecimenDTO(derivedUnit);
955 }
956
957 @Override
958 public Collection<ICdmBase> getNonCascadedAssociatedElements(SpecimenOrObservationBase<?> specimen) {
959 return defaultService.getNonCascadedAssociatedElements(specimen);
960 }
961
962 /* (non-Javadoc)
963 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#deleteDerivateHierarchy(eu.etaxonomy.cdm.model.common.ICdmBase)
964 */
965 @Override
966 public DeleteResult deleteDerivateHierarchy(CdmBase from, SpecimenDeleteConfigurator config) {
967 return defaultService.deleteDerivateHierarchy(from, config);
968 }
969
970 /* (non-Javadoc)
971 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#delete(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator)
972 */
973 @Override
974 public DeleteResult delete(SpecimenOrObservationBase<?> specimen, SpecimenDeleteConfigurator config) {
975 return defaultService.delete(specimen, config);
976 }
977
978 /* (non-Javadoc)
979 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listIndividualsAssociations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
980 */
981 @Override
982 public Collection<IndividualsAssociation> listIndividualsAssociations(SpecimenOrObservationBase<?> specimen,
983 Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
984 return defaultService.listIndividualsAssociations(specimen, limit, start, orderHints, propertyPaths);
985 }
986
987 /* (non-Javadoc)
988 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listTypeDesignations(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
989 */
990 @Override
991 public Collection<SpecimenTypeDesignation> listTypeDesignations(SpecimenOrObservationBase<?> specimen,
992 Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
993 return defaultService.listTypeDesignations(specimen, limit, start, orderHints, propertyPaths);
994 }
995
996 /* (non-Javadoc)
997 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listDescriptionsWithDescriptionSpecimen(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
998 */
999 @Override
1000 public Collection<DescriptionBase<?>> listDescriptionsWithDescriptionSpecimen(
1001 SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints,
1002 List<String> propertyPaths) {
1003 return defaultService.listDescriptionsWithDescriptionSpecimen(specimen, limit, start, orderHints, propertyPaths);
1004 }
1005
1006 @Override
1007 public <S extends SpecimenOrObservationBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
1008 return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
1009 }
1010
1011 /* (non-Javadoc)
1012 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCharacterDataForSpecimen(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase)
1013 */
1014 @Override
1015 public Collection<DescriptionElementBase> getCharacterDataForSpecimen(SpecimenOrObservationBase<?> arg0) {
1016 return defaultService.getCharacterDataForSpecimen(arg0);
1017 }
1018
1019 /* (non-Javadoc)
1020 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getCharacterDataForSpecimen(java.util.UUID)
1021 */
1022 @Override
1023 public Collection<DescriptionElementBase> getCharacterDataForSpecimen(UUID arg0) {
1024 return getCharacterDataForSpecimen(arg0);
1025 }
1026
1027 /* (non-Javadoc)
1028 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getMostSignificantIdentifier(eu.etaxonomy.cdm.model.occurrence.DerivedUnit)
1029 */
1030 @Override
1031 public String getMostSignificantIdentifier(DerivedUnit derivedUnit) {
1032 return defaultService.getMostSignificantIdentifier(derivedUnit);
1033 }
1034
1035 /* (non-Javadoc)
1036 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#countOccurrences(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
1037 */
1038 @Override
1039 public int countOccurrences(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> config) {
1040 return defaultService.countOccurrences(config);
1041 }
1042
1043 /**
1044 * {@inheritDoc}
1045 */
1046 @Override
1047 public List<DerivedUnit> getAllChildDerivatives(SpecimenOrObservationBase<?> specimen) {
1048 return defaultService.getAllChildDerivatives(specimen);
1049 }
1050
1051 /**
1052 * {@inheritDoc}
1053 */
1054 @Override
1055 public List<SpecimenOrObservationBase<?>> getAllHierarchyDerivatives(SpecimenOrObservationBase<?> specimen) {
1056 return defaultService.getAllHierarchyDerivatives(specimen);
1057 }
1058
1059 /**
1060 * {@inheritDoc}
1061 */
1062 @Override
1063 public DeleteResult delete(UUID arg0) {
1064 return defaultService.delete(arg0);
1065 }
1066
1067
1068 }