Project

General

Profile

Download (3.27 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2016 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.Arrays;
12
import java.util.List;
13
import java.util.UUID;
14

    
15
import eu.etaxonomy.cdm.api.service.IMediaService;
16
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
17
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
18
import eu.etaxonomy.cdm.api.service.config.MediaDeletionConfigurator;
19
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
20
import eu.etaxonomy.cdm.model.media.Media;
21
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
22
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
23
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.MediaCreator;
24
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;
25
import eu.etaxonomy.taxeditor.store.CdmStore;
26

    
27
/**
28
 * @author k.luther
29
 * @date 10.03.2016
30
 *
31
 */
32
public class MediaEditorInput extends AbstractBulkEditorInput<Media> {
33
    public static final String ID = "bulkeditor.input.media";
34

    
35
    private static MediaEditorInput instance;
36

    
37
    public static String getID() {
38
        return ID;
39
    }
40

    
41
    public static AbstractBulkEditorInput getInstance() {
42
        if (instance == null) {
43
            instance = new MediaEditorInput();
44
        }
45
        return instance;
46
    }
47

    
48
    @Override
49
    public String getName() {
50
        return BulkEditorInputType.MEDIA.label;
51
    }
52

    
53
    @Override
54
    public Media save(Media entity) {
55
       return CdmStore.getService(IMediaService.class).merge(entity, true).getMergedEntity();
56

    
57
    }
58

    
59
    @Override
60
    public boolean delete(Media entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException {
61
    	MediaDeletionConfigurator mediaConfig = null;
62
    	if (config instanceof MediaDeletionConfigurator){
63
    		mediaConfig = (MediaDeletionConfigurator) config;
64
    	} else{
65

    
66
    	}
67
        return CdmStore.getService(IMediaService.class).delete(entity.getUuid(), mediaConfig) != null;
68
    }
69

    
70
    @Override
71
    protected long countEntities(IIdentifiableEntityServiceConfigurator configurator) {
72
        return CdmStore.getService(IMediaService.class).countByTitle(configurator);
73
    }
74

    
75
    @Override
76
    protected List<Media> listEntities(IIdentifiableEntityServiceConfigurator configurator) {
77
        return CdmStore.getSearchManager().findMedia(configurator);
78
    }
79

    
80
    @Override
81
    protected IEntityCreator<Media> createEntityCreator() {
82
        return new MediaCreator();
83
    }
84

    
85
    @Override
86
    public void merge() {
87
        // TODO Auto-generated method stub
88

    
89
    }
90

    
91
    @Override
92
    public List<IBulkEditorSortProvider<Media>> getSortProviders() {
93
        List<IBulkEditorSortProvider<Media>> sortProviders = super.getSortProviders();
94

    
95
        sortProviders.add(0, new IdentifiableEntitySortProvider<Media>());
96

    
97
        return sortProviders;
98
    }
99

    
100
	@Override
101
	protected Media loadEntity(UUID entityUuid) {
102
		List<String> propertyPaths = Arrays.asList(new String[]{});
103
		return CdmStore.getService(IMediaService.class).load(entityUuid, propertyPaths);
104
	}
105

    
106
}
(5-5/11)