1 package eu
.etaxonomy
.taxeditor
.bulkeditor
.input
;
3 import java
.util
.ArrayList
;
4 import java
.util
.Arrays
;
8 import eu
.etaxonomy
.cdm
.api
.service
.INameService
;
9 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonService
;
10 import eu
.etaxonomy
.cdm
.api
.service
.config
.FindTaxaAndNamesConfiguratorImpl
;
11 import eu
.etaxonomy
.cdm
.api
.service
.config
.IFindTaxaAndNamesConfigurator
;
12 import eu
.etaxonomy
.cdm
.api
.service
.config
.IIdentifiableEntityServiceConfigurator
;
13 import eu
.etaxonomy
.cdm
.api
.service
.exception
.ReferencedObjectUndeletableException
;
14 import eu
.etaxonomy
.cdm
.hibernate
.HibernateProxyHelper
;
15 import eu
.etaxonomy
.cdm
.model
.name
.TaxonNameBase
;
16 import eu
.etaxonomy
.cdm
.model
.taxon
.Synonym
;
17 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
18 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonBase
;
19 import eu
.etaxonomy
.cdm
.persistence
.query
.MatchMode
;
20 import eu
.etaxonomy
.taxeditor
.annotatedlineeditor
.IEntityCreator
;
21 import eu
.etaxonomy
.taxeditor
.bulkeditor
.input
.entitycreator
.NameCreator
;
22 import eu
.etaxonomy
.taxeditor
.bulkeditor
.input
.entitycreator
.TaxonCreator
;
23 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
25 public class TaxonEditorInput
extends AbstractBulkEditorInput
<TaxonBase
>{
27 private static TaxonEditorInput instance
;
28 /** Constant <code>ID="bulkeditor.input.taxon"</code> */
29 public static final String ID
= "bulkeditor.input.taxon";
34 * <p>Getter for the field <code>instance</code>.</p>
36 * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
38 public static AbstractBulkEditorInput
getInstance() {
39 if (instance
== null) {
40 instance
= new TaxonEditorInput();
48 public String
getName() {
49 return BulkEditorInputType
.TAXON
.label
;
53 public String
getToolTipText() {
61 * @return a {@link java.lang.Object} object.
63 public static Object
getID() {
68 * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()
72 public boolean isMergingEnabled() {
76 public boolean save(TaxonBase entity
) {
77 return CdmStore
.getService(ITaxonService
.class).saveOrUpdate(entity
) != null;
84 public List
listEntities(IIdentifiableEntityServiceConfigurator configurator
) {
85 IFindTaxaAndNamesConfigurator
<TaxonBase
> newConfig
= new FindTaxaAndNamesConfiguratorImpl
<TaxonBase
>();
86 newConfig
.setTitleSearchString(configurator
.getTitleSearchStringSqlized());
87 newConfig
.setMatchMode(MatchMode
.ANYWHERE
);
88 List
<TaxonBase
> taxa
= CdmStore
.getSearchManager().findTaxa(configurator
);
89 List
<TaxonBase
> taxaCopy
= new ArrayList
<TaxonBase
>();
90 for (TaxonBase taxon
:taxa
){
92 if (taxon
instanceof Taxon
){
93 taxaCopy
.add(HibernateProxyHelper
.deproxy(taxon
, Taxon
.class));
95 taxaCopy
.add(HibernateProxyHelper
.deproxy(taxon
, Synonym
.class));
103 protected TaxonBase
loadEntity(UUID entityUuid
) {
104 List
<String
> propertyPaths
= Arrays
.asList(new String
[]{});
105 return CdmStore
.getService(ITaxonService
.class).load(entityUuid
, propertyPaths
);
111 * @throws ReferencedObjectUndeletableException */
112 public boolean delete(TaxonBase entity
) {
113 return CdmStore
.getService(ITaxonService
.class).delete(entity
) != null;
116 protected IEntityCreator
<TaxonBase
> createEntityCreator() {
117 return new TaxonCreator();