-/**\r
-* Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-\r
-package eu.etaxonomy.cdm.model.name;\r
-\r
-\r
-import java.util.ArrayList;\r
-\r
-import javax.persistence.CascadeType;\r
-import javax.persistence.Entity;\r
-import javax.persistence.ManyToOne;\r
-import javax.persistence.Transient;\r
-\r
-import org.apache.log4j.Logger;\r
-\r
-import eu.etaxonomy.cdm.model.agent.Team;\r
-import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
-import eu.etaxonomy.cdm.model.common.Source;\r
-import eu.etaxonomy.cdm.model.publication.NomenclaturalReference;\r
-import eu.etaxonomy.cdm.strategy.INameCacheStrategy;\r
-\r
-import javax.xml.bind.annotation.XmlElement;\r
-import javax.xml.bind.annotation.XmlRootElement;\r
-\r
-/**\r
- * @author Andreas Mueller\r
- * @version 1.0\r
- * @created 15-Aug-2007 18:36:15\r
- */\r
-@XmlRootElement //JAXP test dummy\r
-@Entity\r
-public class TaxonName extends IdentifiableEntity {\r
- static Logger logger = Logger.getLogger(TaxonName.class);\r
-\r
- private INameCacheStrategy cacheStrategy;\r
- private String year;\r
- \r
- //TODO make private but then the Aspect class has problems !!\r
- public TaxonName(){\r
- \r
- }\r
- \r
- public TaxonName(INameCacheStrategy cacheStrategy){\r
- setCacheStrategy(cacheStrategy);\r
- }\r
- \r
- //TODO inserted for PROTOTYPE\r
- public String getYear(){\r
- return this.year;\r
- }\r
- public void setYear(String strYear){\r
- this.year = strYear;\r
- }\r
- \r
- //TODO for PROTOTYPE\r
- @Transient\r
- public INameCacheStrategy getCacheStrategy() {\r
- return cacheStrategy;\r
- }\r
- public void setCacheStrategy(INameCacheStrategy cacheStrategy) {\r
- this.cacheStrategy = cacheStrategy;\r
- }\r
- \r
- \r
- //The complete author string and maybe year\r
- private String authorship;\r
- private String cultivarName;\r
- //The full name including author strings and maybe year\r
- private String fullName;\r
- //Genus part of a name\r
- private String genus;\r
- private boolean hasProblem;\r
- private String idInSource;\r
- //Genus subdivision epithet\r
- private String infragenericEpithet;\r
- private String infraSpecificEpithet;\r
- private boolean isAnamorphic;\r
- //alternative naming: useFullName\r
- //when not set this flag protects the detailed parsed attributes from being overwritten\r
- private boolean isAtomised;\r
- private boolean isBinomHybrid;\r
- private boolean isCultivarGroup;\r
- //if set: this name is a hybrid formula (a hybrid that does not have an own name) and no other hybrid flags may be set. A\r
- //hybrid name may not have either an authorteam nor other name components. \r
- private boolean isHybridFormula;\r
- private boolean isMonomHybrid;\r
- private boolean isTrinomHybrid;\r
- //The name without author strings and year\r
- private String name;\r
- private String nameInSource;\r
- private String nomenclaturalMicroReference;\r
- //The species epithet\r
- private String specificEpithet;\r
- //Name of taxon when rank is above genus\r
- private String uninomial;\r
- //Non-atomised addition to a name\r
- private String unnamedNamePhrase;\r
- private Rank rank;\r
- private ArrayList inverseNameRelation;\r
- private NomenclaturalCode nomenclaturalCode;\r
- private ArrayList facts;\r
- private ArrayList nameRelation;\r
- private ArrayList typeDesignations;\r
- private NomenclaturalReference nomenclaturalReference;\r
- private Source source;\r
- private Team authorTeam;\r
- private Team exAuthorTeam;\r
-\r
- public String getAuthorship(){\r
- return authorship;\r
- }\r
-\r
- @ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE} )\r
- public Team getAuthorTeam(){\r
- return authorTeam;\r
- }\r
-\r
- @XmlElement\r
- public String getCultivarName(){\r
- return cultivarName;\r
- }\r
-\r
- @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )\r
- public Team getExAuthorTeam(){\r
- return exAuthorTeam;\r
- }\r
-\r
- public ArrayList getFacts(){\r
- return facts;\r
- }\r
-\r
- public String getFullName(){\r
- if (name == null){ \r
- return cacheStrategy.getFullNameCache(this);\r
- }else{\r
- return fullName;\r
- }\r
- }\r
-\r
- public String getGenus(){\r
- return genus;\r
- }\r
-\r
- public boolean getHasProblem(){\r
- return hasProblem;\r
- }\r
-\r
- public String getIdInSource(){\r
- return idInSource;\r
- }\r
-\r
- public String getInfragenericEpithet(){\r
- return infragenericEpithet;\r
- }\r
-\r
- public String getInfraSpecificEpithet(){\r
- return infraSpecificEpithet;\r
- }\r
-\r
- public ArrayList getInverseNameRelation(){\r
- return inverseNameRelation;\r
- }\r
-\r
- public String getName(){\r
- if (name == null){ \r
- return cacheStrategy.getNameCache(this);\r
- }else{\r
- return name;\r
- }\r
- }\r
-\r
- public String getNameInSource(){\r
- return nameInSource;\r
- }\r
-\r
- public ArrayList getNameRelation(){\r
- return nameRelation;\r
- }\r
-\r
- public NomenclaturalCode getNomenclaturalCode(){\r
- return nomenclaturalCode;\r
- }\r
-\r
- public String getNomenclaturalMicroReference(){\r
- return nomenclaturalMicroReference;\r
- }\r
-\r
- @Transient\r
- public NomenclaturalReference getNomenclaturalReference(){\r
- return nomenclaturalReference;\r
- }\r
-\r
- @Transient\r
- public String[] getProblems(){\r
- return null;\r
- }\r
-\r
- public Rank getRank(){\r
- return rank;\r
- }\r
-\r
- @Transient\r
- public Source getSource(){\r
- return source;\r
- }\r
-\r
- public String getSpecificEpithet(){\r
- return specificEpithet;\r
- }\r
-\r
- public ArrayList getTypeDesignations(){\r
- return typeDesignations;\r
- }\r
-\r
- public String getUninomial(){\r
- return uninomial;\r
- }\r
-\r
- public String getUnnamedNamePhrase(){\r
- return unnamedNamePhrase;\r
- }\r
- \r
-\r
- public boolean isAnamorphic(){\r
- return isAnamorphic;\r
- }\r
-\r
- public boolean isAtomised(){\r
- return isAtomised;\r
- }\r
-\r
- public boolean isBinomHybrid(){\r
- return isBinomHybrid;\r
- }\r
-\r
- public boolean isCultivarGroup(){\r
- return isCultivarGroup;\r
- }\r
-\r
- public boolean isHybridFormula(){\r
- return isHybridFormula;\r
- }\r
-\r
- public boolean isMonomHybrid(){\r
- return isMonomHybrid;\r
- }\r
-\r
- public boolean isTrinomHybrid(){\r
- return isTrinomHybrid;\r
- }\r
-\r
- /**\r
- * \r
- * @param fullname\r
- */\r
- public boolean parseName(String fullname){\r
- return false;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setAnamorphic(boolean newVal){\r
- isAnamorphic = newVal;\r
- \r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setAtomised(boolean newVal){\r
- isAtomised = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setAuthorship(String newVal){\r
- authorship = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setAuthorTeam(Team newVal){\r
- authorTeam = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setBinomHybrid(boolean newVal){\r
- isBinomHybrid = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setCultivarGroup(boolean newVal){\r
- isCultivarGroup = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setCultivarName(String newVal){\r
- cultivarName = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setExAuthorTeam(Team newVal){\r
- exAuthorTeam = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setFacts(ArrayList newVal){\r
- facts = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setFullName(String newVal){\r
- fullName = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setGenus(String newVal){\r
- genus = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setHasProblem(boolean newVal){\r
- hasProblem = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setHybridFormula(boolean newVal){\r
- isHybridFormula = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setIdInSource(String newVal){\r
- idInSource = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setInfragenericEpithet(String newVal){\r
- infragenericEpithet = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setInfraSpecificEpithet(String newVal){\r
- infraSpecificEpithet = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setInverseNameRelation(ArrayList newVal){\r
- inverseNameRelation = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setMonomHybrid(boolean newVal){\r
- isMonomHybrid = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setName(String newVal){\r
- name = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setNameInSource(String newVal){\r
- nameInSource = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setNameRelation(ArrayList newVal){\r
- nameRelation = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setNomenclaturalCode(NomenclaturalCode newVal){\r
- nomenclaturalCode = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setNomenclaturalMicroReference(String newVal){\r
- nomenclaturalMicroReference = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setNomenclaturalReference(NomenclaturalReference newVal){\r
- nomenclaturalReference = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setRank(Rank newVal){\r
- rank = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setSource(Source newVal){\r
- source = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setSpecificEpithet(String newVal){\r
- specificEpithet = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setTrinomHybrid(boolean newVal){\r
- isTrinomHybrid = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setTypeDesignations(ArrayList newVal){\r
- //super.changeSupport.firePropertyChange("typeDesignations", typeDesignations, newVal);\r
- typeDesignations = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setUninomial(String newVal){\r
- uninomial = newVal;\r
- }\r
-\r
- /**\r
- * \r
- * @param newVal\r
- */\r
- public void setUnnamedNamePhrase(String newVal){\r
- unnamedNamePhrase = newVal;\r
- }\r
- \r
-}
\ No newline at end of file