root/trunk/cdmlib/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/ExtensionType.java

Revision 10919, 6.0 kB (checked in by a.mueller, 18 months ago)

merge 3.0.2 to trunk

  • 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.common;
11
12
13import java.util.HashMap;
14import java.util.List;
15import java.util.Map;
16import java.util.UUID;
17
18import javax.persistence.Entity;
19import javax.xml.bind.annotation.XmlAccessType;
20import javax.xml.bind.annotation.XmlAccessorType;
21import javax.xml.bind.annotation.XmlType;
22
23import org.apache.log4j.Logger;
24import org.hibernate.envers.Audited;
25import org.hibernate.search.annotations.Indexed;
26
27
28/**
29 * Extension types similar to dynamically defined attributes. These are not data
30 * types, but rather content types like "DOI", "2nd nomenclatural reference", "3rd
31 * hybrid parent" or specific local identifiers.
32 * @author m.doering
33 * @version 1.0
34 * @created 08-Nov-2007 13:06:23
35 */
36@XmlAccessorType(XmlAccessType.FIELD)
37@XmlType(name = "ExtensionType")
38@Entity
39@Indexed(index = "eu.etaxonomy.cdm.model.common.DefinedTermBase")
40@Audited
41public class ExtensionType extends DefinedTermBase<ExtensionType> {
42        private static final long serialVersionUID = -7761963794004133427L;
43        @SuppressWarnings("unused")
44        private static final Logger logger = Logger.getLogger(ExtensionType.class);
45
46        private static final UUID uuidXmlFragment = UUID.fromString("ea109c1c-e69b-4e6d-9079-1941b9ee2991");
47        private static final UUID uuidRdfFragment = UUID.fromString("f3684e25-dcad-4c1e-a5d8-16cddf1c4f5b");
48        private static final UUID uuidDoi = UUID.fromString("f079aacc-ab08-4cc4-90a0-6d3958fb0dbf");
49//      private static final UUID uuid2ndNomRef = UUID.fromString("46a98bfa-f11a-47fe-a6c5-50c7e8289b3d");
50        private static final UUID uuid3rdHybridParent = UUID.fromString("5e552b24-5a2d-498d-a4f4-ccd8e5bc2bae");
51        private static final UUID uuidAreaOfInterest = UUID.fromString("cefa478e-604f-4db4-8afc-25e06c28ec69");
52        private static final UUID uuidNomStandard = UUID.fromString("4a6cbbe9-8d79-4d15-b316-2ff1adeff526");
53        private static final UUID uuidAbbreviation = UUID.fromString("5837e34e-b0f5-4736-8083-ff5eaecd8c43");
54        private static final UUID uuidOrder = UUID.fromString("ecb7770d-a295-49ee-a88f-e9e137a7cabb");
55        private static final UUID uuidInformalCategory = UUID.fromString("11bbc52f-a085-43d3-9f9b-cbe0d1eb9a91");
56        private static final UUID uuidUrl = UUID.fromString("d769fa9f-51ee-4e11-8152-b5ce72b7f413");
57       
58        protected static Map<UUID, ExtensionType> termMap = null;               
59
60        /**
61         * Creates a new empty extension type instance.
62         *
63         * @see #NewInstance(String, String, String)
64         */
65        public static ExtensionType NewInstance() {
66                return new ExtensionType();
67        }
68       
69        /**
70         * Creates a new extension type instance with a description (in the {@link Language#DEFAULT() default language}),
71         * a label and a label abbreviation.
72         *
73         * @param       term             the string (in the default language) describing the
74         *                                               new extension type to be created
75         * @param       label            the string identifying the new extension type to be created
76         * @param       labelAbbrev  the string identifying (in abbreviated form) the
77         *                                               new extension type to be created
78         * @see                                  #readCsvLine(List, Language)
79         * @see                                  #NewInstance()
80         */
81        public static ExtensionType NewInstance(String term, String label, String labelAbbrev){
82                return new ExtensionType(term, label, labelAbbrev);
83        }
84
85//********************************** Constructor *******************************************************************/   
86       
87        //public only for Term Loader
88        @Deprecated
89        public ExtensionType() {
90        }
91       
92        /**
93         * Class constructor: creates a new extension type instance with a description (in the {@link Language#DEFAULT() default language}),
94         * a label and a label abbreviation.
95         *
96         * @param       term             the string (in the default language) describing the
97         *                                               new extension type to be created
98         * @param       label            the string identifying the new extension type to be created
99         * @param       labelAbbrev  the string identifying (in abbreviated form) the
100         *                                               new extension type to be created
101         * @see                                  #ExtensionType()
102         */
103        protected ExtensionType(String term, String label, String labelAbbrev) {
104                super(term, label, labelAbbrev);
105        }
106
107//************************** METHODS *******************************************************/
108       
109       
110        /* (non-Javadoc)
111         * @see eu.etaxonomy.cdm.model.common.DefinedTermBase#resetTerms()
112         */
113        @Override
114        public void resetTerms(){
115                termMap = null;
116        }
117
118       
119        protected static ExtensionType getTermByUuid(UUID uuid){
120                if (termMap == null){
121                        DefaultTermInitializer vocabularyStore = new DefaultTermInitializer();
122                        vocabularyStore.initialize();
123                }
124                return (ExtensionType)termMap.get(uuid);
125        }
126
127       
128        public static final ExtensionType XML_FRAGMENT(){
129                return getTermByUuid(uuidXmlFragment);
130        }
131
132        public static final ExtensionType RDF_FRAGMENT(){
133                return getTermByUuid(uuidRdfFragment);
134        }
135
136        public static final ExtensionType DOI(){
137                return getTermByUuid(uuidDoi);
138        }
139
140
141//      public static final ExtensionType SECOND_NOM_REF(){
142//              return getTermByUuid(uuid2ndNomRef);
143//      }
144
145
146        public static final ExtensionType THIRD_HYBRID_PARENT(){
147                return getTermByUuid(uuid3rdHybridParent);
148        }
149       
150        public static final ExtensionType AREA_OF_INTREREST(){
151                return getTermByUuid(uuidAreaOfInterest);
152        }
153       
154        public static final ExtensionType NOMENCLATURAL_STANDARD(){
155                return getTermByUuid(uuidNomStandard);
156        }
157       
158        public static final ExtensionType ABBREVIATION(){
159                return getTermByUuid(uuidAbbreviation);
160        }
161       
162        public static final ExtensionType ORDER(){
163                return getTermByUuid(uuidOrder);
164        }
165       
166        public static final ExtensionType INFORMAL_CATEGORY(){
167                return getTermByUuid(uuidInformalCategory);
168        }
169
170        public static final ExtensionType URL(){
171                return getTermByUuid(uuidUrl);
172        }
173       
174       
175        @Override
176        protected void setDefaultTerms(TermVocabulary<ExtensionType> termVocabulary) {
177                termMap = new HashMap<UUID, ExtensionType>();
178                for (ExtensionType term : termVocabulary.getTerms()){
179                        termMap.put(term.getUuid(), term);
180                }
181        }
182
183}
Note: See TracBrowser for help on using the browser.