root/trunk/cdmlib/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/description/MeasurementUnit.java

Revision 10455, 3.2 kB (checked in by a.mueller, 20 months ago)

reset for defined terms

  • Property svn:keywords set to Id
Line 
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
10package eu.etaxonomy.cdm.model.description;
11
12
13import java.util.HashMap;
14import java.util.Map;
15import java.util.UUID;
16
17import eu.etaxonomy.cdm.model.common.DefinedTermBase;
18import eu.etaxonomy.cdm.model.common.Language;
19import eu.etaxonomy.cdm.model.common.TermVocabulary;
20
21import org.apache.log4j.Logger;
22import org.hibernate.envers.Audited;
23import org.hibernate.search.annotations.Indexed;
24
25import javax.persistence.*;
26import javax.xml.bind.annotation.XmlAccessType;
27import javax.xml.bind.annotation.XmlAccessorType;
28import javax.xml.bind.annotation.XmlRootElement;
29import javax.xml.bind.annotation.XmlType;
30
31/**
32 * This class represents measurement units such as "centimeter" or "degree
33 * Celsius".
34 *
35 * @author m.doering
36 * @version 1.0
37 * @created 08-Nov-2007 13:06:34
38 */
39@XmlAccessorType(XmlAccessType.FIELD)
40@XmlType(name = "MeasurementUnit")
41@XmlRootElement(name = "MeasurementUnit")
42@Entity
43@Indexed(index = "eu.etaxonomy.cdm.model.common.DefinedTermBase")
44@Audited
45public class MeasurementUnit extends DefinedTermBase<MeasurementUnit> {
46        private static final long serialVersionUID = 4904519152652248312L;
47        @SuppressWarnings("unused")
48        private static final Logger logger = Logger.getLogger(MeasurementUnit.class);
49       
50        protected static Map<UUID, MeasurementUnit> termMap = null;             
51
52        /**
53         * Class constructor: creates a new empty measurement unit instance.
54         *
55         * @see #MeasurementUnit(String, String, String)
56         */
57        public MeasurementUnit(){
58        }
59
60        /**
61         * Creates a new measurement unit with a description
62         * (in the {@link Language#DEFAULT() default language}), a label and a label abbreviation.
63         *
64         * @param       term             the string (in the default language) describing the
65         *                                               new measurement unit to be created
66         * @param       label            the string identifying the new measurement unit
67         *                                               to be created
68         * @param       labelAbbrev  the string identifying (in abbreviated form) the
69         *                                               new measurement unit to be created
70         * @see                                  #NewInstance()
71         */
72        public MeasurementUnit(String term, String label, String labelAbbrev) {
73                super(term, label, labelAbbrev);
74        }
75
76       
77        /**
78         * Creates a new empty measurement unit instance.
79         *
80         * @see #MeasurementUnit(String, String, String)
81         */
82        public static MeasurementUnit NewInstance(){
83                return new MeasurementUnit();
84        }
85       
86        /**
87         * Creates a new empty measurement unit instance.
88         *
89         * @see #MeasurementUnit(String, String, String)
90         */
91        public static MeasurementUnit NewInstance(String term, String label, String labelAbbrev){
92                return new MeasurementUnit(term, label, labelAbbrev);
93        }
94
95       
96        /* (non-Javadoc)
97         * @see eu.etaxonomy.cdm.model.common.DefinedTermBase#resetTerms()
98         */
99        @Override
100        public void resetTerms(){
101                termMap = null;
102        }
103
104       
105       
106        @Override
107        protected void setDefaultTerms(TermVocabulary<MeasurementUnit> termVocabulary) {
108                termMap = new HashMap<UUID, MeasurementUnit>();
109                for (MeasurementUnit term : termVocabulary.getTerms()) {
110                        termMap.put(term.getUuid(), term); 
111                }
112        }
113               
114
115}
Note: See TracBrowser for help on using the browser.