1 package eu
.etaxonomy
.taxeditor
.bulkeditor
.input
;
3 import java
.util
.ArrayList
;
4 import java
.util
.Arrays
;
8 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonService
;
9 import eu
.etaxonomy
.cdm
.api
.service
.config
.FindTaxaAndNamesConfiguratorImpl
;
10 import eu
.etaxonomy
.cdm
.api
.service
.config
.IFindTaxaAndNamesConfigurator
;
11 import eu
.etaxonomy
.cdm
.api
.service
.config
.IIdentifiableEntityServiceConfigurator
;
12 import eu
.etaxonomy
.cdm
.api
.service
.exception
.ReferencedObjectUndeletableException
;
13 import eu
.etaxonomy
.cdm
.hibernate
.HibernateProxyHelper
;
14 import eu
.etaxonomy
.cdm
.model
.taxon
.Synonym
;
15 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
16 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonBase
;
17 import eu
.etaxonomy
.cdm
.persistence
.query
.MatchMode
;
18 import eu
.etaxonomy
.taxeditor
.annotatedlineeditor
.IEntityCreator
;
19 import eu
.etaxonomy
.taxeditor
.bulkeditor
.input
.entitycreator
.TaxonCreator
;
20 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
22 public class TaxonEditorInput
extends AbstractBulkEditorInput
<TaxonBase
>{
24 private static TaxonEditorInput instance
;
25 /** Constant <code>ID="bulkeditor.input.taxon"</code> */
26 public static final String ID
= "bulkeditor.input.taxon";
31 * <p>Getter for the field <code>instance</code>.</p>
33 * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
35 public static AbstractBulkEditorInput
getInstance() {
36 if (instance
== null) {
37 instance
= new TaxonEditorInput();
45 public String
getName() {
46 return BulkEditorInputType
.TAXON
.label
;
50 public String
getToolTipText() {
58 * @return a {@link java.lang.Object} object.
60 public static Object
getID() {
65 * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()
69 public boolean isMergingEnabled() {
73 public TaxonBase
save(TaxonBase entity
) {
74 if(CdmStore
.getCurrentSessionManager().isRemoting()) {
75 return CdmStore
.getService(ITaxonService
.class).merge(entity
, true).getMergedEntity();
77 CdmStore
.getService(ITaxonService
.class).saveOrUpdate(entity
);
86 public List
listEntities(IIdentifiableEntityServiceConfigurator configurator
) {
87 IFindTaxaAndNamesConfigurator
<TaxonBase
> newConfig
= new FindTaxaAndNamesConfiguratorImpl
<TaxonBase
>();
88 newConfig
.setTitleSearchString(configurator
.getTitleSearchStringSqlized());
89 newConfig
.setMatchMode(MatchMode
.ANYWHERE
);
90 List
<TaxonBase
> taxa
= CdmStore
.getSearchManager().findTaxa(configurator
);
91 List
<TaxonBase
> taxaCopy
= new ArrayList
<TaxonBase
>();
92 for (TaxonBase taxon
:taxa
){
94 if (taxon
instanceof Taxon
){
95 taxaCopy
.add(HibernateProxyHelper
.deproxy(taxon
, Taxon
.class));
97 taxaCopy
.add(HibernateProxyHelper
.deproxy(taxon
, Synonym
.class));
105 protected TaxonBase
loadEntity(UUID entityUuid
) {
106 List
<String
> propertyPaths
= Arrays
.asList(new String
[]{});
107 return CdmStore
.getService(ITaxonService
.class).load(entityUuid
, propertyPaths
);
113 * @throws ReferencedObjectUndeletableException */
115 public boolean delete(TaxonBase entity
) {
116 return CdmStore
.getService(ITaxonService
.class).delete(entity
) != null;
119 protected IEntityCreator
<TaxonBase
> createEntityCreator() {
120 return new TaxonCreator();
125 * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
128 public void merge() {