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