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