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
.name
;
13 import eu
.etaxonomy
.cdm
.model
.agent
.Agent
;
14 import eu
.etaxonomy
.cdm
.model
.agent
.Team
;
15 import eu
.etaxonomy
.cdm
.model
.reference
.INomenclaturalReference
;
16 import eu
.etaxonomy
.cdm
.strategy
.BotanicNameCacheStrategy
;
18 import org
.apache
.log4j
.Logger
;
19 import org
.hibernate
.annotations
.Cascade
;
20 import org
.hibernate
.annotations
.CascadeType
;
21 import org
.springframework
.context
.support
.FileSystemXmlApplicationContext
;
24 import javax
.persistence
.*;
27 * Taxon name class for all non viral taxa. Parentetical authorship is derived
28 * from basionym relationship.
31 * @created 08-Nov-2007 13:06:39
34 public class NonViralName
extends TaxonNameBase
{
35 static Logger logger
= Logger
.getLogger(NonViralName
.class);
36 //The suprageneric or the genus name
37 private String uninomial
;
38 //Genus subdivision epithet
39 private String infraGenericEpithet
;
41 private String specificEpithet
;
42 //Species subdivision epithet
43 private String infraSpecificEpithet
;
44 //Author team that published the present combination
45 private Agent combinationAuthorTeam
;
46 //Author team that contributed to the publication of the present combination
47 private Agent exCombinationAuthorTeam
;
48 //concatenated und formated authorteams including basionym and combination authors
49 private String authorshipCache
;
52 protected NonViralName(){
54 setNameCacheStrategy();
57 private void setNameCacheStrategy(){
58 if (getClass() == NonViralName
.class){
59 this.cacheStrategy
= BotanicNameCacheStrategy
.NewInstance();
60 logger
.warn("NonViralName uses BotanicNameCacheStrategy");
65 public NonViralName(Rank rank
) {
67 setNameCacheStrategy();
69 public NonViralName(Rank rank
, String genusOrUninomial
, String specificEpithet
, String infraSpecificEpithet
, Agent combinationAuthorTeam
, INomenclaturalReference nomenclaturalReference
, String nomenclMicroRef
) {
71 setNameCacheStrategy();
72 setUninomial(genusOrUninomial
);
73 setSpecificEpithet(specificEpithet
);
74 setInfraSpecificEpithet(infraSpecificEpithet
);
75 setCombinationAuthorTeam(combinationAuthorTeam
);
76 setNomenclaturalReference(nomenclaturalReference
);
77 this.setNomenclaturalMicroReference(nomenclMicroRef
);
80 @Cascade({CascadeType
.SAVE_UPDATE
})
81 public Agent
getCombinationAuthorTeam(){
82 return this.combinationAuthorTeam
;
84 public void setCombinationAuthorTeam(Agent combinationAuthorTeam
){
85 this.combinationAuthorTeam
= combinationAuthorTeam
;
89 @Cascade({CascadeType
.SAVE_UPDATE
})
90 public Agent
getExCombinationAuthorTeam(){
91 return this.exCombinationAuthorTeam
;
93 public void setExCombinationAuthorTeam(Agent exCombinationAuthorTeam
){
94 this.exCombinationAuthorTeam
= exCombinationAuthorTeam
;
97 public String
getUninomial(){
98 return this.uninomial
;
100 public void setUninomial(String uninomial
){
101 this.uninomial
= uninomial
;
105 public String
getInfraGenericEpithet(){
106 return this.infraGenericEpithet
;
111 * @param infraGenericEpithet infraGenericEpithet
113 public void setInfraGenericEpithet(String infraGenericEpithet
){
114 this.infraGenericEpithet
= infraGenericEpithet
;
117 public String
getSpecificEpithet(){
118 return this.specificEpithet
;
123 * @param specificEpithet specificEpithet
125 public void setSpecificEpithet(String specificEpithet
){
126 this.specificEpithet
= specificEpithet
;
129 public String
getInfraSpecificEpithet(){
130 return this.infraSpecificEpithet
;
135 * @param infraSpecificEpithet infraSpecificEpithet
137 public void setInfraSpecificEpithet(String infraSpecificEpithet
){
138 this.infraSpecificEpithet
= infraSpecificEpithet
;
142 public String
generateTitle(){
143 if (cacheStrategy
== null){
144 logger
.warn("No CacheStrategy defined for nonViralName: " + this.toString());
147 return cacheStrategy
.getFullNameCache(this);
152 * returns concatenated und formated authorteams including basionym and
153 * combination authors
155 public String
getAuthorshipCache() {
156 return authorshipCache
;
159 public void setAuthorshipCache(String authorshipCache
) {
160 this.authorshipCache
= authorshipCache
;
165 public boolean isCodeCompliant() {
166 // TODO Auto-generated method stub