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