Revision e6d7b501
Added by Andreas Müller almost 7 years ago
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/NomenclaturalCode.java | ||
---|---|---|
12 | 12 |
import java.util.Set; |
13 | 13 |
import java.util.UUID; |
14 | 14 |
|
15 |
import javax.persistence.Transient; |
|
16 | 15 |
import javax.xml.bind.annotation.XmlEnum; |
17 | 16 |
import javax.xml.bind.annotation.XmlEnumValue; |
18 | 17 |
import javax.xml.bind.annotation.XmlType; |
... | ... | |
89 | 88 |
//NonViral |
90 | 89 |
@XmlEnumValue("NonViral") |
91 | 90 |
NonViral(UUID.fromString("04f88497-a66a-41b1-9b98-0dd22df6307f"), "NonViral","TaxonNameBase"), |
92 |
// |
|
93 |
// //Fungi
|
|
94 |
// @XmlEnumValue("Fungi")
|
|
95 |
// Fungi(UUID.fromString("c6bb280d-2468-4738-bb29-973f74412100"), "Fungi", "BotanicalName"),
|
|
96 |
// |
|
91 |
|
|
92 |
//Fungi |
|
93 |
@XmlEnumValue("Fungus")
|
|
94 |
Fungi(UUID.fromString("c6bb280d-2468-4738-bb29-973f74412100"), "Fungus", "BotanicalName"),
|
|
95 |
|
|
97 | 96 |
// //Plant |
98 | 97 |
// @XmlEnumValue("Plant") |
99 | 98 |
// Plant(UUID.fromString("9669c889-25c5-48ab-9f8e-fd47a6218f83"), "Plant", "BotanicalName"), |
... | ... | |
119 | 118 |
|
120 | 119 |
@Override |
121 | 120 |
public String toString() { |
122 |
return "NomenclaturalCode" + " <" + getUuid() + "> " + this.name();
|
|
121 |
return this.name(); |
|
123 | 122 |
} |
124 | 123 |
|
124 |
public boolean isNonViral() { |
|
125 |
return this != ICVCN; |
|
126 |
} |
|
127 |
public boolean isZoological() { |
|
128 |
return this == ICZN; |
|
129 |
} |
|
130 |
public boolean isBotanical() { |
|
131 |
return this == NomenclaturalCode.ICNAFP || this == ICNCP || this == Fungi; |
|
132 |
} |
|
133 |
public boolean isCultivar() { |
|
134 |
return this == NomenclaturalCode.ICNCP; |
|
135 |
} |
|
136 |
public boolean isBacterial() { |
|
137 |
return this == NomenclaturalCode.ICNB; |
|
138 |
} |
|
139 |
public boolean isViral() { |
|
140 |
return this == NomenclaturalCode.ICVCN; |
|
141 |
} |
|
142 |
|
|
143 |
|
|
125 | 144 |
public static NomenclaturalCode fromString(String string){ |
126 | 145 |
for(NomenclaturalCode code : NomenclaturalCode.values()){ |
127 | 146 |
if(code.name().equalsIgnoreCase(string)) { |
... | ... | |
178 | 197 |
case NonViral: |
179 | 198 |
result = TaxonNameFactory.NewNonViralInstance(rank); |
180 | 199 |
break; |
181 |
default: |
|
182 |
logger.warn("Unknown nomenclatural code: " + this.getUuid()); |
|
183 |
result = null; |
|
184 |
} |
|
185 |
return result; |
|
186 |
} |
|
187 |
|
|
188 |
/** |
|
189 |
* Creates a new particular {@link TaxonNameBase taxon name} (botanical, zoological, |
|
190 |
* cultivar plant, bacterial or viral name) instance depending on <i>this</i> |
|
191 |
* nomenclature code only containing the given {@link Rank rank}. |
|
192 |
* |
|
193 |
* @param rank the rank of the new taxon name instance |
|
194 |
* @see TaxonNameBase#NewBotanicalInstance(Rank) |
|
195 |
* @see TaxonNameBase#NewZoologicalInstance(Rank) |
|
196 |
* @see TaxonNameBase#NewCultivarInstance(Rank) |
|
197 |
* @see TaxonNameBase#NewBacterialInstance(Rank) |
|
198 |
* @see TaxonNameBase#NewViralInstance(Rank) |
|
199 |
*/ |
|
200 |
@Transient |
|
201 |
public <T extends TaxonNameBase> Class<T> getCdmClass(){ |
|
202 |
Class<T> result; |
|
203 |
switch (this){ |
|
204 |
case ICNAFP: |
|
205 |
result = (Class<T>)BotanicalName.class; |
|
206 |
break; |
|
207 |
case ICZN: |
|
208 |
result = (Class<T>)ZoologicalName.class; |
|
209 |
break; |
|
210 |
case ICNCP: |
|
211 |
result = (Class<T>)CultivarPlantName.class; |
|
212 |
break; |
|
213 |
case ICNB: |
|
214 |
result = (Class<T>)BacterialName.class; |
|
215 |
break; |
|
216 |
case ICVCN: |
|
217 |
result = (Class<T>)ViralName.class; |
|
218 |
break; |
|
219 |
case NonViral: |
|
220 |
result = (Class<T>)NonViralName.class; |
|
200 |
case Fungi: |
|
201 |
result = TaxonNameFactory.NewFungusInstance(rank); |
|
221 | 202 |
break; |
222 | 203 |
default: |
223 | 204 |
logger.warn("Unknown nomenclatural code: " + this.getUuid()); |
... | ... | |
304 | 285 |
public static NomenclaturalCode getByKey(String key){return delegateVoc.getByKey(key);} |
305 | 286 |
public static NomenclaturalCode getByUuid(UUID uuid) {return delegateVoc.getByUuid(uuid);} |
306 | 287 |
|
307 |
|
|
308 | 288 |
} |
Also available in: Unified diff
ref #6368 remove TaxonNameBase subclasses