Project

General

Profile

Download (4.19 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

    
10
package eu.etaxonomy.taxeditor.bulkeditor.input;
11

    
12
import java.util.Arrays;
13
import java.util.Comparator;
14
import java.util.List;
15
import java.util.UUID;
16

    
17
import eu.etaxonomy.cdm.api.service.IAgentService;
18
import eu.etaxonomy.cdm.api.service.IGroupService;
19
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
20
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
21
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
22
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
23
import eu.etaxonomy.cdm.model.common.Group;
24
import eu.etaxonomy.cdm.persistence.query.OrderHint;
25
import eu.etaxonomy.cdm.persistence.query.OrderHint.SortOrder;
26
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
27
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.GroupCreator;
28
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.GroupNameComparator;
29
import eu.etaxonomy.taxeditor.store.CdmStore;
30

    
31
/**
32
 * @author n.hoffmann
33
 * @created Mar 9, 2011
34
 * @version 1.0
35
 */
36
public class GroupEditorInput extends AbstractBulkEditorInput<Group> {
37

    
38
	public static final String ID = "bulkeditor.input.group";
39

    
40
	private static GroupEditorInput instance;
41

    
42
	/**
43
	 * @return the instance
44
	 */
45
	public static GroupEditorInput getInstance() {
46
		if(instance == null){
47
			instance = new GroupEditorInput();
48
		}
49
		return instance;
50
	}
51

    
52
    @Override
53
	public String getName() {
54
		return BulkEditorInputType.GROUP.label;
55
	}
56

    
57
	/* (non-Javadoc)
58
	 * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#save(java.lang.Object)
59
	 */
60
	@Override
61
	public Group save(Group entity) {
62
	    return CdmStore.getService(IGroupService.class).merge(entity, true).getMergedEntity();
63

    
64
	}
65

    
66
	/* (non-Javadoc)
67
	 * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#delete(java.lang.Object)
68
	 */
69
	@Override
70
	public boolean delete(Group entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException {
71
		return CdmStore.getService(IGroupService.class).delete(entity.getUuid()) != null;
72
	}
73

    
74
	@Override
75
	protected long countEntities(IIdentifiableEntityServiceConfigurator configurator) {
76
	    //TODO there is no count method for groups
77
	    return CdmStore.getService(IGroupService.class).count(Group.class);
78
	}
79

    
80
	/* (non-Javadoc)
81
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#listEntities(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
82
	 */
83
	@Override
84
	protected List<Group> listEntities(
85
			IIdentifiableEntityServiceConfigurator configurator) {
86
	    configurator.setOrderHints(new OrderHint("name", SortOrder.ASCENDING).asList());
87
		return CdmStore.getSearchManager().findGroups(configurator);
88
	}
89

    
90
	/* (non-Javadoc)
91
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#loadEntity(java.util.UUID)
92

    
93
	@Override
94
	protected Group loadEntity(UUID entityUuid) {
95
		List<String> propertyPaths = Arrays.asList(new String[]{});
96
		return CdmStore.getService(IGroupService.class).load(entityUuid, propertyPaths);
97
	}
98
*/
99
	/* (non-Javadoc)
100
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
101
	 */
102
	@Override
103
	protected IEntityCreator<Group> createEntityCreator() {
104
		return new GroupCreator();
105
	}
106

    
107
	/* (non-Javadoc)
108
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getText(eu.etaxonomy.cdm.model.common.ICdmBase)
109
	 */
110
	@Override
111
	public String getText(Group entity) {
112
		return entity.getName();
113
	}
114

    
115
    /* (non-Javadoc)
116
     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
117
     */
118
    @Override
119
    public void merge() {
120

    
121
    }
122

    
123
	@Override
124
	protected Group loadEntity(UUID entityUuid) {
125
		List<String> propertyPaths = Arrays.asList(new String[]{});
126
		return HibernateProxyHelper.deproxy(CdmStore.getService(IAgentService.class).load(entityUuid, propertyPaths), Group.class);
127
	}
128

    
129
	@Override
130
	public Comparator<Group> getTitleComparator(){
131
        return new GroupNameComparator();
132
    }
133

    
134

    
135

    
136

    
137
}
(4-4/11)