adding a taxon bulk editor and changes because the delete methods does not throw...
[taxeditor.git] / eu.etaxonomy.taxeditor.bulkeditor / src / main / java / eu / etaxonomy / taxeditor / bulkeditor / input / TaxonEditorInput.java
1 package eu.etaxonomy.taxeditor.bulkeditor.input;
2
3 import java.util.Arrays;
4 import java.util.List;
5 import java.util.UUID;
6
7 import eu.etaxonomy.cdm.api.service.INameService;
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.model.name.TaxonNameBase;
14 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
15 import eu.etaxonomy.cdm.persistence.query.MatchMode;
16 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
17 import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.NameCreator;
18 import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.TaxonCreator;
19 import eu.etaxonomy.taxeditor.store.CdmStore;
20
21 public class TaxonEditorInput extends AbstractBulkEditorInput<TaxonBase>{
22
23 private static TaxonEditorInput instance;
24 /** Constant <code>ID="bulkeditor.input.taxon"</code> */
25 public static final String ID = "bulkeditor.input.taxon";
26
27 /**
28 * <p>Getter for the field <code>instance</code>.</p>
29 *
30 * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
31 */
32 public static AbstractBulkEditorInput getInstance() {
33 if (instance == null) {
34 instance = new TaxonEditorInput();
35 }
36 return instance;
37 }
38
39
40 @Override
41 public String getName() {
42 return BulkEditorInputType.TAXON.label;
43 }
44
45 @Override
46 public String getToolTipText() {
47 return getName();
48 }
49
50
51 /**
52 * <p>getID</p>
53 *
54 * @return a {@link java.lang.Object} object.
55 */
56 public static Object getID() {
57 return ID;
58 }
59
60 /* (non-Javadoc)
61 * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()
62 */
63 /** {@inheritDoc} */
64 @Override
65 public boolean isMergingEnabled() {
66 return false;
67 }
68 @Override
69 public boolean save(TaxonBase entity) {
70 return CdmStore.getService(ITaxonService.class).saveOrUpdate(entity) != null;
71 }
72
73
74
75 /** {@inheritDoc} */
76 @Override
77 public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {
78 IFindTaxaAndNamesConfigurator<TaxonBase> newConfig = new FindTaxaAndNamesConfiguratorImpl<TaxonBase>();
79 newConfig.setTitleSearchString(configurator.getTitleSearchStringSqlized());
80 newConfig.setMatchMode(MatchMode.ANYWHERE);
81
82 return CdmStore.getSearchManager().findTaxa(configurator);
83 }
84
85
86 @Override
87 protected TaxonBase loadEntity(UUID entityUuid) {
88 List<String> propertyPaths = Arrays.asList(new String[]{});
89 return CdmStore.getService(ITaxonService.class).load(entityUuid, propertyPaths);
90 }
91
92
93
94 /** {@inheritDoc}
95 * @throws ReferencedObjectUndeletableException */
96 public boolean delete(TaxonBase entity) {
97 return CdmStore.getService(ITaxonService.class).delete(entity) != null;
98 }
99 @Override
100 protected IEntityCreator<TaxonBase> createEntityCreator() {
101 return new TaxonCreator();
102 }
103
104 }