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