Project

General

Profile

Download (5.58 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.model.description;
2

    
3
import java.util.Map;
4
import java.util.UUID;
5

    
6
import javax.persistence.Entity;
7
import javax.xml.bind.annotation.XmlAccessType;
8
import javax.xml.bind.annotation.XmlAccessorType;
9
import javax.xml.bind.annotation.XmlElement;
10
import javax.xml.bind.annotation.XmlIDREF;
11
import javax.xml.bind.annotation.XmlRootElement;
12
import javax.xml.bind.annotation.XmlSchemaType;
13
import javax.xml.bind.annotation.XmlType;
14

    
15
import org.apache.log4j.Logger;
16
import org.hibernate.envers.Audited;
17
import org.hibernate.search.annotations.Indexed;
18

    
19
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
20
import eu.etaxonomy.cdm.model.common.Language;
21
import eu.etaxonomy.cdm.model.common.Representation;
22
import eu.etaxonomy.cdm.model.common.TermType;
23
import eu.etaxonomy.cdm.model.common.TermVocabulary;
24

    
25
@XmlAccessorType(XmlAccessType.PROPERTY)
26
@XmlType(name="NaturalLanguageTerm")
27
@XmlRootElement(name = "NaturalLanguageTerm")
28
@Entity
29
@Indexed(index = "eu.etaxonomy.cdm.model.common.DefinedTermBase")
30
@Audited
31
public class NaturalLanguageTerm extends DefinedTermBase<NaturalLanguageTerm> {
32
	private static final long serialVersionUID = 6754598791831848705L;
33
	@SuppressWarnings("unused")
34
	private static final Logger logger = Logger.getLogger(NaturalLanguageTerm.class);
35
	
36
	protected static Map<UUID, NaturalLanguageTerm> termMap = null;		
37

    
38
	
39
	private static NaturalLanguageTerm FROM = new NaturalLanguageTerm();
40
	private static NaturalLanguageTerm TO = new NaturalLanguageTerm();
41
	private static NaturalLanguageTerm UP_TO = new NaturalLanguageTerm();
42
	private static NaturalLanguageTerm MOST_FREQUENTLY = new NaturalLanguageTerm();
43
	private static NaturalLanguageTerm ON_AVERAGE = new NaturalLanguageTerm();
44
	private static NaturalLanguageTerm MORE_OR_LESS = new NaturalLanguageTerm();
45
	
46
	private static final UUID uuidTo = UUID.fromString("9087cdcd-8b08-4082-a1de-34c9ba9fb494");
47
	
48
	
49
	public static  NaturalLanguageTerm NewInstance(String term, String label, String labelAbbrev) {
50
		return new NaturalLanguageTerm(term, label, labelAbbrev);
51
	}
52

    
53
	
54
//********************************** Constructor *******************************************************************/	
55

    
56
	//for hibernate use only
57
	@Deprecated
58
	protected NaturalLanguageTerm() {
59
		super(TermType.NaturalLanguageTerm);
60
	}
61
	
62
	private NaturalLanguageTerm(String term, String label, String labelAbbrev) {
63
		super(TermType.NaturalLanguageTerm, term, label, labelAbbrev);
64
	}
65
	
66
//********************************** Methods *******************************************************************/	
67
	
68
	
69
	@Override
70
	protected void setDefaultTerms(
71
			TermVocabulary<NaturalLanguageTerm> termVocabulary) {
72
		//NaturalLanguageTerm.TO = termVocabulary.findTermByUuid(NaturalLanguageTerm.uuidTo);
73
		//NaturalLanguageTerm.TO.setLabel("eip");
74

    
75
	}
76
	
77
	/* (non-Javadoc)
78
	 * @see eu.etaxonomy.cdm.model.common.DefinedTermBase#resetTerms()
79
	 */
80
	@Override
81
	public void resetTerms(){
82
		termMap = null;
83
	}
84

    
85
	
86
	@XmlElement(name = "KindOf", namespace = "http://etaxonomy.eu/cdm/model/common/1.0")
87
    @XmlIDREF
88
    @XmlSchemaType(name = "IDREF")
89
    @Override
90
	public NaturalLanguageTerm getKindOf(){
91
		return super.getKindOf();
92
	}
93

    
94
	public void setKindOf(NaturalLanguageTerm kindOf){
95
		super.setKindOf(kindOf);
96
	}
97
	
98
	/**
99
	 * Returns the "from" term.
100
	 */
101
	public static final NaturalLanguageTerm FROM(){
102
		NaturalLanguageTerm nlt = FROM;
103
		Representation representation = Representation.NewInstance("", "from", "", Language.ENGLISH());
104
		Representation representation2 = Representation.NewInstance("", "de", "", Language.FRENCH());
105
		Representation representation3 = Representation.NewInstance("", "von", "", Language.GERMAN());
106
		nlt.addRepresentation(representation);
107
		nlt.addRepresentation(representation2);
108
		nlt.addRepresentation(representation3);
109
		return nlt;
110
	}
111
	
112
	/**
113
	 * Returns the "to" term.
114
	 */
115
	public static final NaturalLanguageTerm TO(){
116
		NaturalLanguageTerm nlt = TO;
117
		Representation representation = Representation.NewInstance("", "to", "", Language.ENGLISH());
118
		Representation representation2 = Representation.NewInstance("", "à", "", Language.FRENCH());
119
		nlt.addRepresentation(representation);
120
		nlt.addRepresentation(representation2);
121
		return nlt;
122
	}
123
	
124
	public static final NaturalLanguageTerm UP_TO(){
125
		NaturalLanguageTerm nlt = UP_TO;
126
		Representation representation = Representation.NewInstance("", "up to", "", Language.ENGLISH());
127
		Representation representation2 = Representation.NewInstance("", "jusqu'à", "", Language.FRENCH());
128
		nlt.addRepresentation(representation);
129
		nlt.addRepresentation(representation2);
130
		return nlt;
131
	}
132
	
133
	public static final NaturalLanguageTerm MOST_FREQUENTLY(){
134
		NaturalLanguageTerm nlt = MOST_FREQUENTLY;
135
		Representation representation = Representation.NewInstance("", "most frequently", "", Language.ENGLISH());
136
		Representation representation2 = Representation.NewInstance("", "plus fréquemment", "", Language.FRENCH());
137
		nlt.addRepresentation(representation);
138
		nlt.addRepresentation(representation2);
139
		return nlt;
140
	}
141
	
142
	public static final NaturalLanguageTerm ON_AVERAGE(){
143
		NaturalLanguageTerm nlt = ON_AVERAGE;
144
		Representation representation = Representation.NewInstance("", "on average", "", Language.ENGLISH());
145
		Representation representation2 = Representation.NewInstance("", "en moyenne", "", Language.FRENCH());
146
		nlt.addRepresentation(representation);
147
		nlt.addRepresentation(representation2);
148
		return nlt;
149
	}
150

    
151
	public static final NaturalLanguageTerm MORE_OR_LESS(){
152
		NaturalLanguageTerm nlt = MORE_OR_LESS;
153
		Representation representation = Representation.NewInstance("", "+/-", "", Language.ENGLISH());
154
		nlt.addRepresentation(representation);
155
		return nlt;
156
	}
157
}
(19-19/36)