Project

General

Profile

Download (4.75 KB) Statistics
| Branch: | Tag: | Revision:
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
package eu.etaxonomy.taxeditor.bulkeditor.input;
10

    
11
import java.util.ArrayList;
12
import java.util.Arrays;
13
import java.util.List;
14
import java.util.UUID;
15

    
16
import eu.etaxonomy.cdm.api.service.IReferenceService;
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.exception.ReferencedObjectUndeletableException;
20
import eu.etaxonomy.cdm.model.common.MarkerType;
21
import eu.etaxonomy.cdm.model.reference.Reference;
22
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
23
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
24
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.ReferenceCreator;
25
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;
26
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.ReferenceSortProvider;
27
import eu.etaxonomy.taxeditor.store.CdmStore;
28

    
29

    
30
/**
31
 * <p>ReferenceEditorInput class.</p>
32
 *
33
 * @author p.ciardelli
34
 * @created 25.06.2009
35
 */
36
public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
37

    
38
	/**
39
	 *
40
	 */
41
	private static final long serialVersionUID = 3806243517765126749L;
42

    
43
	/** Constant <code>ID="bulkeditor.input.reference"</code> */
44
	public static final String ID = "bulkeditor.input.reference";
45

    
46
	private static ReferenceEditorInput instance;
47

    
48
	/**
49
	 * <p>getID</p>
50
	 *
51
	 * @return the iD
52
	 */
53
	public static String getID() {
54
		return ID;
55
	}
56

    
57
    @Override
58
    protected List<String> getPropertyKeys_internal() {
59
        List<String> propertyKeysInternal = new ArrayList<>();
60
        return propertyKeysInternal;
61
    }
62

    
63
    @Override
64
    public String getName() {
65
		return BulkEditorInputType.REFERENCE.label;
66
	}
67

    
68
	/**
69
	 * <p>Getter for the field <code>instance</code>.</p>
70
	 *
71
	 * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
72
	 */
73
	public static AbstractBulkEditorInput getInstance() {
74
		if (instance == null) {
75
			instance = new ReferenceEditorInput();
76
		}
77
		return instance;
78
	}
79

    
80
	/* (non-Javadoc)
81
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()
82
	 */
83
	/** {@inheritDoc} */
84
	@Override
85
	public boolean isMergingEnabled() {
86
		return true;
87
	}
88

    
89
	/* (non-Javadoc)
90
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMarkerTypeEditingEnabled(eu.etaxonomy.cdm.model.common.MarkerType)
91
	 */
92
	/** {@inheritDoc} */
93
	@Override
94
	public boolean isMarkerTypeEditingEnabled(MarkerType markerType) {
95
		if (MarkerType.PUBLISH().equals(markerType)) {
96
			return true;
97
		}
98
		return super.isMarkerTypeEditingEnabled(markerType);
99
	}
100

    
101
    @Override
102
    protected long countEntities(IIdentifiableEntityServiceConfigurator configurator) {
103
        return CdmStore.getService(IReferenceService.class).countByTitle(configurator);
104
    }
105

    
106
	/** {@inheritDoc} */
107
	@Override
108
	public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {
109
		return CdmStore.getSearchManager().findReferences(configurator);
110
	}
111

    
112
	// Entity persistence
113

    
114
	/** {@inheritDoc} */
115
	@Override
116
	public Reference loadEntity(UUID entityUuid) {
117
		List<String> propertyPaths = Arrays.asList(new String[]{"*", "inReference.*", "authorTeam.*"});
118
		return CdmStore.getService(IReferenceService.class).load(entityUuid, propertyPaths);
119
	}
120

    
121
	/** {@inheritDoc}
122
	 * @throws ReferencedObjectUndeletableException */
123
	@Override
124
    public boolean delete(Reference entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException {
125
	    if (entity.getUuid() != null){
126
	        return CdmStore.getService(IReferenceService.class).delete(entity.getUuid()) != null;
127
	    }else{
128
	        return false;
129
	    }
130
	}
131

    
132
	/** {@inheritDoc} */
133
	@Override
134
    public Reference save(Reference entity) {
135
	   return CdmStore.getService(IReferenceService.class).merge(entity, true).getMergedEntity();
136
	}
137

    
138
	@Override
139
	protected IEntityCreator<Reference> createEntityCreator() {
140
		return new ReferenceCreator();
141
	}
142

    
143
	@Override
144
	public List<IBulkEditorSortProvider<Reference>> getSortProviders() {
145
		List<IBulkEditorSortProvider<Reference>> sortProviders = super.getSortProviders();
146

    
147
		sortProviders.add(0, new IdentifiableEntitySortProvider<Reference>());
148
		sortProviders.add(1, new ReferenceSortProvider());
149

    
150
		return sortProviders;
151
	}
152

    
153
	@Override
154
	public String getTypeText(Object entity) {
155
		if(entity instanceof Reference){
156
			return ((Reference) entity).getType().getMessage(CdmStore.getDefaultLanguage());
157
		}
158
		return super.getTypeText(entity);
159
	}
160

    
161
    @Override
162
    public void merge() {
163

    
164
    }
165

    
166
}
(9-9/11)