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