this.nameTypeDesignations = nameTypeDesignations;
}
+ /**
+ * Returns the set of {@link SpecimenTypeDesignation specimen type designations} assigned
+ * indirectly to this taxon name through its {@link HomotypicalGroup homotypical group}.
+ * The rank of this taxon name is generally "species" or below.
+ * The specimen type designations include all the specimens on which
+ * the typification of this name is based (and which are common to all
+ * taxon names belonging to the homotypical group) and eventually
+ * the status of these designations.
+ *
+ * @see SpecimenTypeDesignation
+ * @see NameTypeDesignation
+ */
+ @Transient
+ public Set<SpecimenTypeDesignation> getSpecimenTypeDesignations() {
+ return this.getHomotypicalGroup().getTypeDesignations();
+ }
+
/**
* Creates and adds a new {@link NameTypeDesignation name type designation}
* to this taxon name's set of name type designations.
* @see #removeTypeDesignation(SpecimenTypeDesignation)
*/
public void removeTypeDesignation(NameTypeDesignation typeDesignation) {
+ logger.warn("not yet fully implemented: nullify the name type designation itself?");
this.nameTypeDesignations.remove(typeDesignation);
}
/**
* @see #removeTypeDesignation(NameTypeDesignation)
*/
public void removeTypeDesignation(SpecimenTypeDesignation typeDesignation) {
+ logger.warn("not yet fully implemented: nullify the specimen type designation itself?");
this.homotypicalGroup.removeTypeDesignation(typeDesignation);
}
/**
* Returns the {@link HomotypicalGroup homotypical group} to which
- * this taxon name belongs. A homotypical group represents all names that
- * share the same type specimens.
+ * this taxon name belongs. A homotypical group represents all taxon names
+ * that share the same type specimens.
*
* @see HomotypicalGroup
*/
@Transient
public StrictReferenceBase getCitation(){
+ //TODO What is the purpose of this method differing from the getNomenclaturalReference method?
logger.warn("getCitation not yet implemented");
return null;
}
+ /**
+ * Returns the complete string containing the
+ * {@link reference.INomenclaturalReference#getNomenclaturalCitation() nomenclatural reference citation}
+ * (including {@link #getNomenclaturalMicroReference() details}) assigned to this taxon name.
+ *
+ * @see reference.INomenclaturalReference#getNomenclaturalCitation()
+ * @see #getNomenclaturalReference()
+ * @see #getNomenclaturalMicroReference()
+ */
@Transient
public String getCitationString(){
logger.warn("getCitationString not yet implemented");
}
/**
- * returns year of according nomenclatural reference, null if nomenclatural
- * reference does not exist
+ * Returns the string containing the publication date (generally only year)
+ * of the nomenclatural reference, null if there is no nomenclatural
+ * reference.
+ *
+ * @see reference.INomenclaturalReference#getYear()
*/
@Transient
public String getReferenceYear(){
}
}
+ /**
+ * Returns the set of {@link taxon.TaxonBase taxon bases} that refer to this taxon name.
+ * In this context a taxon base means the use of a taxon name by a reference
+ * either as a taxon ("accepted/correct" name) or as a (junior) synonym.
+ * A taxon name can be used by several distinct references but only once
+ * within a taxonomic treatment (identified by one reference).
+ *
+ * @see taxon.TaxonBase
+ * @see #getTaxa()
+ * @see #getSynonyms()
+ */
@OneToMany(mappedBy="name", fetch= FetchType.EAGER)
public Set<TaxonBase> getTaxonBases() {
return this.taxonBases;
}
+ /**
+ * @see #getTaxonBases()
+ */
protected void setTaxonBases(Set<TaxonBase> taxonBases) {
if (taxonBases == null){
taxonBases = new HashSet<TaxonBase>();
this.taxonBases = taxonBases;
}
}
+ /**
+ * Adds a new {@link taxon.TaxonBase taxon base}
+ * to the set of taxon bases using this taxon name.
+ *
+ * @param taxonBase the taxon base to be added
+ * @see #getTaxonBases()
+ */
//TODO protected
public void addTaxonBase(TaxonBase taxonBase){
taxonBases.add(taxonBase);
/**
- * Return a set of taxa that use this name.
- * @return Set<Taxon> The set of taxa this TaxonName belongs to
+ * Returns the set of {@link taxon.Taxon taxa} ("accepted/correct" names according to any
+ * reference) that are based on this taxon name. This set is a subset of
+ * the set returned by getTaxonBases().
+ *
+ * @see taxon.Taxon
+ * @see #getTaxonBases()
+ * @see #getSynonyms()
*/
@Transient
public Set<Taxon> getTaxa(){
}
/**
- * Return a set of synonyms that use this name
- * @return The set of synonyms this TaxonName belongs to
+ * Returns the set of {@link taxon.Synonym (junior) synonyms} (according to any
+ * reference) that are based on this taxon name. This set is a subset of
+ * the set returned by getTaxonBases().
+ *
+ * @see taxon.Synonym
+ * @see #getTaxonBases()
+ * @see #getTaxa()
*/
@Transient
public Set<Synonym> getSynonyms() {
return result;
}
- @Transient
- public Set<SpecimenTypeDesignation> getSpecimenTypeDesignations() {
- return this.getHomotypicalGroup().getTypeDesignations();
- }
-
// ***********
+ /**
+ * Returns the boolean value indicating whether a given taxon name belongs
+ * to the same {@link HomotypicalGroup homotypical group} as this taxon name (true)
+ * or not (false). Returns "true" only if the homotypical groups of both
+ * taxon names exist and if they are identical.
+ *
+ * @param homoTypicName the taxon name the homotypical group of which is to be checked
+ * @return the boolean value of the check
+ * @see HomotypicalGroup
+ */
public boolean isHomotypic(TaxonNameBase homoTypicName) {
if (homoTypicName == null) {
return false;