ref #6190 removing svn property place holder in first line of code - java files
[taxeditor.git] / eu.etaxonomy.taxeditor.bulkeditor / src / main / java / eu / etaxonomy / taxeditor / bulkeditor / input / NameEditorInput.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.taxeditor.bulkeditor.input;
11
12 import java.util.Arrays;
13 import java.util.List;
14 import java.util.UUID;
15
16 import eu.etaxonomy.cdm.api.service.INameService;
17 import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
18 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
19 import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
20 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
21 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
22 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
23 import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.NameCreator;
24 import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;
25 import eu.etaxonomy.taxeditor.store.CdmStore;
26
27 /**
28 * <p>NameEditorInput class.</p>
29 *
30 * @author p.ciardelli
31 * @created 20.08.2009
32 * @version 1.0
33 */
34 public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
35
36 /**
37 *
38 */
39 private static final long serialVersionUID = -3085029575759626823L;
40 private static NameEditorInput instance;
41
42 /** Constant <code>ID="bulkeditor.input.name"</code> */
43 public static final String ID = "bulkeditor.input.name";
44
45 /**
46 * <p>Getter for the field <code>instance</code>.</p>
47 *
48 * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
49 */
50 public static AbstractBulkEditorInput getInstance() {
51 if (instance == null) {
52 instance = new NameEditorInput();
53 }
54 return instance;
55 }
56
57 /* (non-Javadoc)
58 * @see org.eclipse.ui.IEditorInput#getName()
59 */
60 /**
61 * <p>getName</p>
62 *
63 * @return a {@link java.lang.String} object.
64 */
65 @Override
66 public String getName() {
67 return BulkEditorInputType.NAME.label;
68 }
69
70 /* (non-Javadoc)
71 * @see org.eclipse.ui.IEditorInput#getToolTipText()
72 */
73 /**
74 * <p>getToolTipText</p>
75 *
76 * @return a {@link java.lang.String} object.
77 */
78 @Override
79 public String getToolTipText() {
80 return getName();
81 }
82
83 /**
84 * <p>getID</p>
85 *
86 * @return a {@link java.lang.Object} object.
87 */
88 public static Object getID() {
89 return ID;
90 }
91
92 /* (non-Javadoc)
93 * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()
94 */
95 /** {@inheritDoc} */
96 @Override
97 public boolean isMergingEnabled() {
98 return false;
99 }
100
101 /** {@inheritDoc} */
102 @Override
103 public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {
104
105 configurator.setPropertyPaths(getPropertyPaths());
106 return CdmStore.getSearchManager().findNames(configurator, this.getConversation());
107 }
108
109 /** {@inheritDoc}
110 @Override
111 public TaxonNameBase loadEntity(UUID uuid) {
112 List<String> propertyPaths = Arrays.asList(new String[]{});
113 return CdmStore.getService(INameService.class).load(uuid, propertyPaths);
114 }
115 */
116 @Override
117 public boolean delete(TaxonNameBase entity, DeleteConfiguratorBase config) {
118 NameDeletionConfigurator nameConfig = null;
119 if (config instanceof NameDeletionConfigurator){
120 nameConfig = (NameDeletionConfigurator) config;
121 } else{
122
123 }
124 return CdmStore.getService(INameService.class).delete(entity.getUuid(), nameConfig) != null;
125 }
126
127 /** {@inheritDoc} */
128 @Override
129 public TaxonNameBase save(TaxonNameBase entity) {
130 TaxonNameBase mergedName = null;
131 mergedName = CdmStore.getService(INameService.class).merge(entity, true).getMergedEntity();
132 return mergedName;
133
134 }
135
136 /* (non-Javadoc)
137 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
138 */
139 @Override
140 protected IEntityCreator<TaxonNameBase> createEntityCreator() {
141 return new NameCreator();
142 }
143
144 /* (non-Javadoc)
145 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getSortProviders()
146 */
147 @Override
148 public List<IBulkEditorSortProvider<TaxonNameBase>> getSortProviders() {
149 List<IBulkEditorSortProvider<TaxonNameBase>> sortProviders = super.getSortProviders();
150
151 sortProviders.add(0, new IdentifiableEntitySortProvider<TaxonNameBase>());
152
153 return sortProviders;
154 }
155
156 /* (non-Javadoc)
157 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getTypeText(java.lang.Object)
158 */
159 @Override
160 public String getTypeText(Object entity) {
161 if((entity instanceof TaxonNameBase) && (((TaxonNameBase) entity).getNomenclaturalCode() != null)){
162 return ((TaxonNameBase) entity).getNomenclaturalCode().getTitleCache();
163 }
164 return super.getTypeText(entity);
165 }
166
167 /* (non-Javadoc)
168 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getText(eu.etaxonomy.cdm.model.common.ICdmBase)
169 */
170 @Override
171 public String getText(TaxonNameBase entity) {
172 return (entity).getFullTitleCache();
173 }
174
175 /* (non-Javadoc)
176 * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
177 */
178 @Override
179 public void merge() {
180
181 }
182
183 @Override
184 protected TaxonNameBase loadEntity(UUID entityUuid) {
185 List<String> propertyPaths = Arrays.asList(new String[]{});
186 return CdmStore.getService(INameService.class).load(entityUuid, getPropertyPaths());
187 }
188
189
190 private List<String> getPropertyPaths(){
191 List<String> nameBasePropertyPaths = Arrays.asList(new String[] {
192 "name.descriptions",
193 "name.typeDesignations",
194 "name.status",
195 "name.nomenclaturalReference.inReference",
196 "name.taxonBases.taxonNodes",
197 "name.relationsFromThisName",
198 "name.relationsToThisName",
199 "name.homotypicalGroup.typifiedNames.taxonBases.synonymRelations.synonym.name.status",
200 "name.homotypicalGroup.typifiedNames.relationsToThisName.fromName"});
201
202 return nameBasePropertyPaths;
203 }
204
205 }