Project

General

Profile

Download (3.21 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

    
11
package eu.etaxonomy.cdm.model.common;
12

    
13
import javax.persistence.Entity;
14
import javax.xml.bind.annotation.XmlType;
15

    
16
import org.apache.log4j.Logger;
17
import org.hibernate.envers.Audited;
18

    
19
import eu.etaxonomy.cdm.model.reference.Reference;
20

    
21
/**
22
 * This class represents an {@link eu.etaxonomy.cdm.model.common.IOriginalSource IOriginalSource}
23
 * that can be used with {@link eu.etaxonomy.cdm.model.common.IdentifiableEntity identifiable entity}.
24
 *
25
 * @see eu.etaxonomy.cdm.model.common.IOriginalSource
26
 *
27
 * @author a.mueller
28
 * @created 18.09.2009
29
 */
30
@XmlType(name = "IdentifiableSource", propOrder = {
31
	})
32
@Entity
33
@Audited
34
public class IdentifiableSource extends OriginalSourceBase<IdentifiableEntity>{
35
	private static final long serialVersionUID = -8487673428764273806L;
36
	@SuppressWarnings("unused")
37
	private static final Logger logger = Logger.getLogger(IdentifiableSource.class);
38

    
39
//********************************* FACTORY ********************************************************/
40

    
41
	public static IdentifiableSource NewInstance(OriginalSourceType type){
42
		return new IdentifiableSource(type);
43
	}
44

    
45
	public static IdentifiableSource NewDataImportInstance(String id){
46
		IdentifiableSource result = new IdentifiableSource(OriginalSourceType.Import);
47
		result.setIdInSource(id);
48
		return result;
49
	}
50

    
51
	public static IdentifiableSource NewDataImportInstance(String id, String idNamespace){
52
		IdentifiableSource result = NewDataImportInstance(id);
53
		result.setIdNamespace(idNamespace);
54
		return result;
55
	}
56

    
57
	public static IdentifiableSource NewDataImportInstance(String id, String idNamespace, Reference ref){
58
		IdentifiableSource result = NewDataImportInstance(id, idNamespace);
59
		result.setCitation(ref);
60
		return result;
61
	}
62

    
63
	public static IdentifiableSource NewInstance(OriginalSourceType type, String id, String idNamespace, Reference citation, String microCitation){
64
		IdentifiableSource result = NewInstance(type);
65
		result.setIdInSource(id);
66
		result.setIdNamespace(idNamespace);
67
		result.setCitation(citation);
68
		result.setCitationMicroReference(microCitation);
69
		return result;
70
	}
71

    
72
	public static IdentifiableSource NewPrimarySourceInstance(Reference citation, String microCitation){
73
		IdentifiableSource result = NewInstance(OriginalSourceType.PrimaryTaxonomicSource);
74
		result.setCitation(citation);
75
		result.setCitationMicroReference(microCitation);
76
		return result;
77
	}
78

    
79
// ******************************** FIELDS ************************************/
80

    
81

    
82

    
83
// ****************** CONSTRUCTOR ********************************/
84

    
85
	//for hibernate only
86
	private IdentifiableSource() {
87
	}
88

    
89
	private IdentifiableSource(OriginalSourceType type) {
90
		super(type);
91
	}
92

    
93
// ********************** GETTER /SETTER *****************************/
94

    
95

    
96
//*********************************** CLONE *********************************************************/
97

    
98

    
99
	@Override
100
	public Object clone() throws CloneNotSupportedException{
101
		IdentifiableSource result = (IdentifiableSource)super.clone();
102

    
103
		//no changes
104
		return result;
105
	}
106

    
107

    
108
}
(37-37/72)