Project

General

Profile

Download (6.02 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.cdm.model.common;
11

    
12
import java.io.Serializable;
13
import java.util.Set;
14
import java.util.UUID;
15

    
16
import javax.xml.bind.annotation.XmlEnum;
17
import javax.xml.bind.annotation.XmlEnumValue;
18

    
19
import org.apache.log4j.Logger;
20

    
21

    
22

    
23
/**
24
 * The original source type is used to define the type of an {@link OriginalSourceBase original source}.<BR>
25
 * It is used to distinguish e.g. data lineage when importing data from one database to another from e.g. content oriented
26
 * sources such as the citation in a book.
27
 * In future they may come further source types. 
28
 * @author a.mueller
29
 * @since 15.05.2013
30
 */
31
@XmlEnum
32
public enum OriginalSourceType implements IEnumTerm<OriginalSourceType>, Serializable{
33
	
34
	//0
35
	/**
36
	 * Unknown provenance is the type to be used if no information is available about the type
37
	 * of activity that happened.
38
	 *   
39
	 */
40
	@XmlEnumValue("Unknown")
41
	Unknown(UUID.fromString("b48a443c-05f2-47ff-b885-1d3bd31118e1"), "Unknown Provenance", "UNK", null),
42
	
43
	//1
44
	/**
45
	 * Primary Taxonomic Source describes the sources a taxonomist uses to gather certain information. 
46
	 * E.g. a taxonomist may have used three books/articles/other references to gather information
47
	 * about the distribution status of a taxon.
48
	 * He/she will store these references as original source of type Primary Taxonomic Source.
49
	 * This is a specialization of PROV-O Primary Source 
50
	 * ({@link http://www.w3.org/TR/2013/REC-prov-o-20130430/#PrimarySource})
51
	 *   
52
	 */
53
	@XmlEnumValue("Primary Taxonomic Source")
54
	PrimaryTaxonomicSource(UUID.fromString("c990beb3-3bc9-4dad-bbdf-9c11683493da"), "Primary Taxonomic Source", "PTS", null),
55
	
56
	//2
57
	/**
58
	 * Data Lineage describes the data life cycle of electronically available data. A typical
59
	 * use-case for data lineage is a data import from one database to another. Sources of 
60
	 * type data lineage will store information about the original database and the identifier 
61
	 * and table (->namespace) used in the original database.
62
	 * There are multiple types of data lineage: Blackbox, Dispatcher, Aggregator 
63
	 * ({@link http://de.wikipedia.org/wiki/Data-Lineage})  
64
	 */
65
	@XmlEnumValue("Data Lineage")
66
	Lineage(UUID.fromString("4f9fdf9a-f3b5-490c-96f0-90e050599b0e"), "Data Lineage", "DLI", null),
67

    
68
	//3
69
	/**
70
	 * Database Import is a specialization of {@value #Lineage}. It describes the electronic
71
	 * import of data from an external datasource into the given datasource. This step may
72
	 * include data transformations also but the primary process is the import of data.
73
	*/
74
	@XmlEnumValue("Database Import")
75
	Import(UUID.fromString("2a3902ff-06a7-4307-b542-c743e664b8f2"), "Database Import", "DIM", Lineage),
76

    
77
	//4
78
	/**
79
	 * Data Transformation is a specialization of {@value #Lineage} and describes a data 
80
	 * transformation process that happens primarily on the given dataset but may also 
81
	 * include external data.
82
	 */
83
	@XmlEnumValue("Data Transformation")
84
	Transformation(UUID.fromString("d59e80e5-cbb7-4658-b74d-0626bbb0da7f"), "Data Transformation", "TRA", Lineage),
85

    
86

    
87
	//5
88
	/**
89
	 * Data aggregation is a specification of {@value #Lineage} and describes the 
90
	 * data transformation process that primarily includes data aggregation processes 
91
	 * but may also include data imports and transformations.
92
	 */
93
	@XmlEnumValue("Data Aggregation")
94
	Aggregation(UUID.fromString("944f2f40-5144-4c81-80d9-f61aa10507b8"), "Data Aggregation", "DAG", Lineage),
95

    
96
	//6
97
	/**
98
	 * Primary Media Source describes the original source for any media file. 
99
	 * E.g. a media may be copy of figure in book. The book itself will then be the primary media source. 
100
     *
101
	 * This is a specialization of PROV-O Primary Source 
102
	 * ({@link http://www.w3.org/TR/2013/REC-prov-o-20130430/#PrimarySource})
103
	 *   
104
	 */
105
	@XmlEnumValue("Primary Media Source")
106
	PrimaryMediaSource(UUID.fromString("72be3615-a6da-4728-948a-b3c5797fa4bc"), "Primary Media Source", "PMS", null),
107

    
108

    
109
	//7
110
	/**
111
	 * <code>Other</code> is the type to be used if none of the other types is applicable.
112
	 */
113
	@XmlEnumValue("Other")
114
	Other(UUID.fromString("b7c4b7fe-0aef-428a-bb7b-9153a11bf845"), "Other", "OTH", null),
115

    
116
	;
117
	
118
	
119
	@SuppressWarnings("unused")
120
	private static final Logger logger = Logger.getLogger(OriginalSourceType.class);
121

    
122

    
123
	private OriginalSourceType(UUID uuid, String defaultString, String key, OriginalSourceType parent){
124
		delegateVocTerm = EnumeratedTermVoc.addTerm(getClass(), this, uuid, defaultString, key, parent);
125
	}
126

    
127

    
128

    
129
// *************************** DELEGATE **************************************/	
130
	
131
	private static EnumeratedTermVoc<OriginalSourceType> delegateVoc;
132
	private IEnumTerm<OriginalSourceType> delegateVocTerm;
133

    
134
	static {
135
		delegateVoc = EnumeratedTermVoc.getVoc(OriginalSourceType.class);
136
	}
137
	
138
	@Override
139
	public String getKey(){return delegateVocTerm.getKey();}
140
	
141
	@Override
142
    public String getMessage(){return delegateVocTerm.getMessage();}
143

    
144
	@Override
145
    public String getMessage(Language language){return delegateVocTerm.getMessage(language);}
146
		
147
	@Override
148
    public UUID getUuid() {return delegateVocTerm.getUuid();}
149

    
150
	@Override
151
    public OriginalSourceType getKindOf() {return delegateVocTerm.getKindOf();}
152
	
153
	@Override
154
    public Set<OriginalSourceType> getGeneralizationOf() {return delegateVocTerm.getGeneralizationOf();}
155
	
156
	@Override
157
	public boolean isKindOf(OriginalSourceType ancestor) {return delegateVocTerm.isKindOf(ancestor);	}
158

    
159
	@Override
160
    public Set<OriginalSourceType> getGeneralizationOf(boolean recursive) {return delegateVocTerm.getGeneralizationOf(recursive);}
161

    
162
	
163
	public static OriginalSourceType getByKey(String key){return delegateVoc.getByKey(key);}
164
    public static OriginalSourceType getByUuid(UUID uuid) {return delegateVoc.getByUuid(uuid);}
165

    
166

    
167
}
(59-59/79)