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