Project

General

Profile

« Previous | Next » 

Revision 69e00fde

Added by Andreas Müller almost 8 years ago

Further develop the CDM preferences #3958

View differences:

cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/metadata/PreferenceSubject.java
1
// $Id$
1 2
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy 
3
* Copyright (C) 2016 EDIT
4
* European Distributed Institute of Taxonomy
4 5
* http://www.e-taxonomy.eu
5
* 
6
*
6 7
* The contents of this file are subject to the Mozilla Public License Version 1.1
7 8
* See LICENSE.TXT at the top of this package for the full license terms.
8 9
*/
9 10
package eu.etaxonomy.cdm.model.metadata;
10 11

  
11
import java.util.Set;
12
import java.util.UUID;
13

  
14
import eu.etaxonomy.cdm.model.common.EnumeratedTermVoc;
15
import eu.etaxonomy.cdm.model.common.IEnumTerm;
16
import eu.etaxonomy.cdm.model.common.Language;
12
import eu.etaxonomy.cdm.model.taxon.Classification;
13
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
17 14

  
18 15
/**
19 16
 * @author a.mueller
20
 * @created 2013-09-09
17
 * @date 03.06.2016
21 18
 *
22 19
 */
23
public enum PreferenceSubject implements IEnumTerm<PreferenceSubject>{
24
	Database(UUID.fromString("50b25ae6-62fe-46a1-830e-545702e895f7"), "Database", "DB", null),
25
	Classification(UUID.fromString("1e103ff5-c58f-4e40-8a60-6a36c32c08cf"),"Classification","CL", Database),
26
	TaxonSubTree(UUID.fromString("2f2c0fd4-9c49-4584-89ba-53f8d201d37c"),"Taxonomic Subtree","TST", Classification)
27
	;
28
	
29
	private PreferenceSubject(UUID uuid, String defaultString, String key, PreferenceSubject parent){
30
		delegateVocTerm = EnumeratedTermVoc.addTerm(getClass(), this, uuid, defaultString, key, parent);
31
	}
20
public class PreferenceSubject {
21

  
22
    public static final String ROOT = "/";
32 23

  
33
	// *************************** DELEGATE **************************************/	
34
	
35
	private static EnumeratedTermVoc<PreferenceSubject> delegateVoc;
36
	private IEnumTerm<PreferenceSubject> delegateVocTerm;
24
    private String subject;
37 25

  
38
	static {
39
		delegateVoc = EnumeratedTermVoc.getVoc(PreferenceSubject.class);
40
	}
41
	
42
	@Override
43
	public String getKey(){return delegateVocTerm.getKey();}
44
	
45
	@Override
46
    public String getMessage(){return delegateVocTerm.getMessage();}
26
    public static PreferenceSubject NewDatabaseInstance(){
27
        return new PreferenceSubject(ROOT);
28
    }
47 29

  
48
	@Override
49
    public String getMessage(Language language){return delegateVocTerm.getMessage(language);}
30
    public static PreferenceSubject NewInstance(Classification classification){
31
        return NewInstance(classification.getRootNode());
32
    }
50 33

  
51
		
52
	@Override
53
    public UUID getUuid() {return delegateVocTerm.getUuid();}
34
    public static PreferenceSubject NewInstance(TaxonNode taxonNode){
35
        String result = ROOT + "TaxonNode[" + taxonNode.treeIndex() + "]";
36
        return new PreferenceSubject(result);
37
    }
54 38

  
55
	@Override
56
    public PreferenceSubject getKindOf() {return delegateVocTerm.getKindOf();}
57
	
58
	@Override
59
    public Set<PreferenceSubject> getGeneralizationOf() {return delegateVocTerm.getGeneralizationOf();}
60 39

  
61
	@Override
62
	public boolean isKindOf(PreferenceSubject ancestor) {return delegateVocTerm.isKindOf(ancestor);	}
40
// *****************************************************/
63 41

  
64
	@Override
65
    public Set<PreferenceSubject> getGeneralizationOf(boolean recursive) {return delegateVocTerm.getGeneralizationOf(recursive);}
42
    private PreferenceSubject(String subject){
43
        this.subject = subject;
44
    }
66 45

  
67
	public static PreferenceSubject getByKey(String key){return delegateVoc.getByKey(key);}
68
    public static PreferenceSubject getByUuid(UUID uuid) {return delegateVoc.getByUuid(uuid);}
69 46

  
47
    @Override
48
    public String toString() {
49
        return subject;
50
    }
70 51
}

Also available in: Unified diff