2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.cdm
.model
.description
;
12 import java
.util
.HashMap
;
14 import java
.util
.UUID
;
16 import javax
.persistence
.Entity
;
17 import javax
.xml
.bind
.annotation
.XmlAccessType
;
18 import javax
.xml
.bind
.annotation
.XmlAccessorType
;
19 import javax
.xml
.bind
.annotation
.XmlRootElement
;
20 import javax
.xml
.bind
.annotation
.XmlType
;
22 import org
.apache
.log4j
.Logger
;
23 import org
.hibernate
.envers
.Audited
;
25 import eu
.etaxonomy
.cdm
.model
.common
.DefinedTermBase
;
26 import eu
.etaxonomy
.cdm
.model
.common
.Language
;
27 import eu
.etaxonomy
.cdm
.model
.common
.TermType
;
28 import eu
.etaxonomy
.cdm
.model
.common
.TermVocabulary
;
32 * This class represents terms describing different statistical measures (such
33 * as "sample size", "minimum" or "average") for {@link Feature features} that can be
34 * described with numerical values (like for instance weights or temperature).
37 * @since 08-Nov-2007 13:06:54
39 @XmlAccessorType(XmlAccessType
.FIELD
)
40 @XmlType(name
= "StatisticalMeasure")
41 @XmlRootElement(name
= "StatisticalMeasure")
43 //@Indexed disabled to reduce clutter in indexes, since this type is not used by any search
44 //@Indexed(index = "eu.etaxonomy.cdm.model.common.DefinedTermBase")
46 public class StatisticalMeasure
extends DefinedTermBase
<StatisticalMeasure
> {
47 private static final long serialVersionUID
= 9168097283660941430L;
48 @SuppressWarnings("unused")
49 private static final Logger logger
= Logger
.getLogger(StatisticalMeasure
.class);
51 protected static Map
<UUID
, StatisticalMeasure
> termMap
= null;
54 private static final UUID uuidMin
= UUID
.fromString("2c8b42e5-154c-42bd-a301-03b483275dd6");
55 private static final UUID uuidMax
= UUID
.fromString("8955815b-7d21-4149-b1b7-d37af3c2046c");
56 private static final UUID uuidAverage
= UUID
.fromString("264c3979-d551-4795-9e25-24c6b533fbb1");
57 private static final UUID uuidSampleSize
= UUID
.fromString("571f86ca-a44c-4484-9981-11fd82138a7a");
58 private static final UUID uuidVariance
= UUID
.fromString("4d22cf5e-89ff-4de3-a9ae-12dbeda3faba");
59 private static final UUID uuidTypicalLowerBoundary
= UUID
.fromString("8372a89a-35ad-4755-a881-7edae6c37c8f");
60 private static final UUID uuidTypicalUpperBoundary
= UUID
.fromString("9eff88ba-b8e7-4631-9e55-a50bd16ba79d");
61 private static final UUID uuidStandardDeviation
= UUID
.fromString("9ee4397e-3496-4fe1-9114-afc7d7bdc652");
62 private static final UUID uuidExactValue
= UUID
.fromString("29736701-58c4-48b3-a9d7-41c74140cac7");
63 //needed for Xper (later maybe integrated into model)
64 public static final UUID uuidStatisticalMeasureUnknownData
= UUID
.fromString("4bbd6e78-6d4e-4ec8-ac14-12f53aae049e");
66 //********* FACTORY METHODS **************************************/
68 * Creates a new empty statistical measure instance.
70 * @see #NewInstance(String, String, String)
72 public static StatisticalMeasure
NewInstance(){
73 return new StatisticalMeasure();
76 * Creates a new statistical measure instance with a description
77 * (in the {@link Language#DEFAULT() default language}), a label and a label abbreviation.
79 * @param term the string (in the default language) describing the
80 * new statistical measure to be created
81 * @param label the string identifying the new statistical measure
83 * @param labelAbbrev the string identifying (in abbreviated form) the
84 * new statistical measure to be created
87 public static StatisticalMeasure
NewInstance(String term
, String label
, String labelAbbrev
){
88 return new StatisticalMeasure(term
, label
, labelAbbrev
);
92 //********************************** Constructor *******************************************************************/
94 // ************* CONSTRUCTORS *************/
96 * Class constructor: creates a new empty statistical measure instance.
98 * @see #StatisticalMeasure(String, String, String)
100 //for hibernate use only
102 protected StatisticalMeasure() {
103 super(TermType
.StatisticalMeasure
);
105 private StatisticalMeasure(String term
, String label
, String labelAbbrev
) {
106 super(TermType
.StatisticalMeasure
, term
, label
, labelAbbrev
);
110 //************************** METHODS ********************************
113 * @see eu.etaxonomy.cdm.model.common.DefinedTermBase#resetTerms()
116 public void resetTerms(){
122 protected static StatisticalMeasure
getTermByUuid(UUID uuid
){
123 if (termMap
== null || termMap
.isEmpty()){
124 return getTermByClassAndUUID(StatisticalMeasure
.class, uuid
);
126 return termMap
.get(uuid
);
130 public static final StatisticalMeasure
MIN(){
131 return getTermByUuid(uuidMin
);
134 public static final StatisticalMeasure
MAX(){
135 return getTermByUuid(uuidMax
);
138 public static final StatisticalMeasure
AVERAGE(){
139 return getTermByUuid(uuidAverage
);
142 public static final StatisticalMeasure
SAMPLE_SIZE(){
143 return getTermByUuid(uuidSampleSize
);
146 public static final StatisticalMeasure
VARIANCE(){
147 return getTermByUuid(uuidVariance
);
150 public static final StatisticalMeasure
TYPICAL_LOWER_BOUNDARY(){
151 return getTermByUuid(uuidTypicalLowerBoundary
);
154 public static final StatisticalMeasure
TYPICAL_UPPER_BOUNDARY(){
155 return getTermByUuid(uuidTypicalUpperBoundary
);
158 public static final StatisticalMeasure
STANDARD_DEVIATION(){
159 return getTermByUuid(uuidStandardDeviation
);
162 public static final StatisticalMeasure
EXACT_VALUE(){
163 return getTermByUuid(uuidExactValue
);
167 protected void setDefaultTerms(TermVocabulary
<StatisticalMeasure
> termVocabulary
) {
168 termMap
= new HashMap
<UUID
, StatisticalMeasure
>();
169 for (StatisticalMeasure term
: termVocabulary
.getTerms()){
170 termMap
.put(term
.getUuid(), term
);