eu.etaxonomy.cdm.model.name
Class NameRelationshipType

java.lang.Object
  extended by eu.etaxonomy.cdm.model.common.CdmBase
      extended by eu.etaxonomy.cdm.model.common.VersionableEntity
          extended by eu.etaxonomy.cdm.model.common.AnnotatableEntity
              extended by eu.etaxonomy.cdm.model.common.IdentifiableEntity<IIdentifiableEntityCacheStrategy>
                  extended by eu.etaxonomy.cdm.model.common.TermBase
                      extended by eu.etaxonomy.cdm.model.common.DefinedTermBase<T>
                          extended by eu.etaxonomy.cdm.model.common.OrderedTermBase<T>
                              extended by eu.etaxonomy.cdm.model.common.RelationshipTermBase<NameRelationshipType>
                                  extended by eu.etaxonomy.cdm.model.name.NameRelationshipType
All Implemented Interfaces:
IAnnotatableEntity, ICdmBase, IDefinedTerm<NameRelationshipType>, IIdentifiableEntity, ILoadableTerm<NameRelationshipType>, ISourceable<IdentifiableSource>, IVersionableEntity, Serializable, Cloneable, Comparable<NameRelationshipType>

@Entity
@Indexed(index="eu.etaxonomy.cdm.model.common.DefinedTermBase")
public class NameRelationshipType
extends RelationshipTermBase<NameRelationshipType>

The class representing the categories of taxon name relationships between two taxon names. These name relationship types are based on the concrete nomenclatural code governing the taxon names involved in the name relationship or on decisions taken by the competent authorities; they do not depend on the use made of these taxon names in a particular reference or in a particular taxonomic treatment. Most relationships are to be understood as 'is .... of': for instance Linum radiola L. is a replaced synonym of Radiola linoides Roth or Astragalus rhizanthus Boiss. is a later homonym of Astragalus rhizanthus Royle.

A standard (ordered) list of name relationship type instances will be automatically created as the project starts. But this class allows to extend this standard list by creating new instances of additional name relationship types if needed.

This class corresponds partially to:

Version:
1.0
Author:
m.doering
See Also:
Serialized Form

Field Summary
protected static Map<UUID,NameRelationshipType> termMap
           
 
Fields inherited from class eu.etaxonomy.cdm.model.common.OrderedTermBase
orderIndex
 
Fields inherited from class eu.etaxonomy.cdm.model.common.DefinedTermBase
partOf, vocabulary
 
Fields inherited from class eu.etaxonomy.cdm.model.common.IdentifiableEntity
cacheStrategy, NOT_PROTECTED, PROTECTED, protectedTitleCache, titleCache
 
Fields inherited from class eu.etaxonomy.cdm.model.common.AnnotatableEntity
annotations, markers
 
Fields inherited from class eu.etaxonomy.cdm.model.common.CdmBase
uuid
 
Constructor Summary
NameRelationshipType()
          Class constructor: creates a new empty name relationship type instance.
NameRelationshipType(String term, String label, String labelAbbrev, boolean symmetric, boolean transitive)
          Class constructor: creates an additional name relationship type instance with a description, a label, a label abbreviation and the flags indicating whether this new name relationship type is symmetric and/or transitive.
 
Method Summary
static NameRelationshipType ALTERNATIVE_NAME()
          Returns the "alternative name" name relationship type.
static NameRelationshipType BASIONYM()
          Returns the "basionym" name relationship type.
static NameRelationshipType BLOCKING_NAME_FOR()
          Returns the "blocking name" name relationship type.
static NameRelationshipType CONSERVED_AGAINST()
          Returns the "conserved against" name relationship type.
static NameRelationshipType EMENDATION()
          Returns the "emendation" name relationship type.
protected static NameRelationshipType findTermByUuid(UUID uuid)
           
 boolean isBasionymRelation()
           
 boolean isIllegitimateType()
          Returns the boolean value indicating whether the nomenclatural status type of the first taxon name involved in a name relationship with this name relationship type should be "illegitimate" (true) or not (false).
 boolean isInvalidType()
          Returns the boolean value indicating whether the nomenclatural status type of the first taxon name involved in a name relationship with this name relationship type should be "invalid" (true) or not (false).
 boolean isLegitimateType()
          Returns the boolean value indicating whether the nomenclatural status type of the first taxon name involved in a name relationship with this name relationship type should be "legitimate" (true) or not (false).
 boolean isReplacedSynonymRelation()
           
static NameRelationshipType LATER_HOMONYM()
          Returns the "later homonym" name relationship type.
static NameRelationshipType LATER_VALIDATED_BY_NAME()
          Returns the "later validated by name" name relationship type.
static NameRelationshipType MISSPELLING()
          Returns the "misspelling" name relationship type.
static NameRelationshipType ORTHOGRAPHIC_VARIANT()
          Returns the "orthographic variant" name relationship type.
 NameRelationshipType readCsvLine(Class<NameRelationshipType> termClass, List<String> csvLine, Map<UUID,DefinedTermBase> terms)
          Fills the term with contents from a csvLine.
static NameRelationshipType REPLACED_SYNONYM()
          Returns the "replaced synonym" name relationship type.
 void resetTerms()
           
protected  void setDefaultTerms(TermVocabulary<NameRelationshipType> termVocabulary)
           
static NameRelationshipType TREATED_AS_LATER_HOMONYM()
          Returns the "treated as later homonym" name relationship type.
static NameRelationshipType VALIDATED_BY_NAME()
          Returns the "validated by name" name relationship type.
 
Methods inherited from class eu.etaxonomy.cdm.model.common.RelationshipTermBase
addInverseRepresentation, addRepresentation, clone, getInverseDescription, getInverseDescription, getInverseLabel, getInverseLabel, getInverseRepresentation, getInverseRepresentations, getPreferredInverseRepresentation, isSymmetric, isTransitive, removeInverseRepresentation, setSymmetric, setTransitive, writeCsvLine
 
Methods inherited from class eu.etaxonomy.cdm.model.common.OrderedTermBase
compareTo, decreaseIndex, equals, getOrderIndex, incrementIndex, isHigher, isLower, performCompareTo
 
Methods inherited from class eu.etaxonomy.cdm.model.common.DefinedTermBase
addGeneralizationOf, addIncludes, addMedia, getByUuid, getGeneralizationOf, getIncludes, getKindOf, getMedia, getPartOf, getVocabulary, readCsvLine, removeGeneralization, removeIncludes, removeMedia, setGeneralizationOf, setIncludes, setKindOf, setPartOf, setVocabulary
 
Methods inherited from class eu.etaxonomy.cdm.model.common.TermBase
addRepresentation, getDescription, getDescription, getLabel, getLabel, getPreferredRepresentation, getPreferredRepresentation, getRepresentation, getRepresentations, getUri, removeRepresentation, setLabel, setLabel, setUri, toString
 
Methods inherited from class eu.etaxonomy.cdm.model.common.IdentifiableEntity
addCredit, addCredit, addExtension, addExtension, addRights, addSource, addSource, compareTo, generateTitle, getCacheStrategy, getCredits, getCredits, getData, getExtensions, getExtensions, getExtensions, getLsid, getRights, getSources, getTitleCache, getTruncatedCache, initListener, isProtectedTitleCache, regenerateTitleCache, removeCredit, removeCredit, removeExtension, removeRights, removeSource, setCacheStrategy, setLsid, setProtectedTitleCache, setTitleCache, setTitleCache
 
Methods inherited from class eu.etaxonomy.cdm.model.common.AnnotatableEntity
addAnnotation, addMarker, getAnnotations, getMarkers, hasMarker, hasMarker, removeAnnotation, removeMarker
 
Methods inherited from class eu.etaxonomy.cdm.model.common.VersionableEntity
getUpdated, getUpdatedBy, setUpdated, setUpdatedBy
 
Methods inherited from class eu.etaxonomy.cdm.model.common.CdmBase
addPropertyChangeListener, addPropertyChangeListener, clone, deproxy, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getCreated, getCreatedBy, getId, getUuid, hashCode, hasListeners, instanceToString, invokeSetMethod, invokeSetMethodWithNull, isInstanceOf, removePropertyChangeListener, removePropertyChangeListener, setCreated, setCreatedBy, setId, setUuid
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface eu.etaxonomy.cdm.model.common.IDefinedTerm
getUuid
 
Methods inherited from interface eu.etaxonomy.cdm.model.common.IAnnotatableEntity
addAnnotation, addMarker, getAnnotations, getMarkers, hasMarker, hasMarker, removeAnnotation, removeMarker
 
Methods inherited from interface eu.etaxonomy.cdm.model.common.IVersionableEntity
getUpdated, getUpdatedBy, setUpdated, setUpdatedBy
 
Methods inherited from interface eu.etaxonomy.cdm.model.common.ICdmBase
getCreated, getCreatedBy, getId, getUuid, setCreated, setCreatedBy, setId, setUuid
 

Field Detail

termMap

protected static Map<UUID,NameRelationshipType> termMap
Constructor Detail

NameRelationshipType

public NameRelationshipType()
Class constructor: creates a new empty name relationship type instance.

See Also:
NameRelationshipType(String, String, String, boolean, boolean)

NameRelationshipType

public NameRelationshipType(String term,
                            String label,
                            String labelAbbrev,
                            boolean symmetric,
                            boolean transitive)
Class constructor: creates an additional name relationship type instance with a description, a label, a label abbreviation and the flags indicating whether this new name relationship type is symmetric and/or transitive.

Parameters:
term - the string (in the default language) describing the new name relationship type to be created
label - the string identifying the new name relationship type to be created
labelAbbrev - the string identifying (in abbreviated form) the new name relationship type to be created
symmetric - the boolean indicating whether the new name relationship type to be created is symmetric
transitive - the boolean indicating whether the new name relationship type to be created is transitive
See Also:
NameRelationshipType()
Method Detail

findTermByUuid

protected static NameRelationshipType findTermByUuid(UUID uuid)

resetTerms

public void resetTerms()
Specified by:
resetTerms in class DefinedTermBase<NameRelationshipType>

isInvalidType

public boolean isInvalidType()
Returns the boolean value indicating whether the nomenclatural status type of the first taxon name involved in a name relationship with this name relationship type should be "invalid" (true) or not (false). Returns false if this name relationship status type is null.

See Also:
isLegitimateType(), isIllegitimateType(), NomenclaturalStatusType.isInvalidType(), RelationshipBase.getRelatedFrom()

isLegitimateType

public boolean isLegitimateType()
Returns the boolean value indicating whether the nomenclatural status type of the first taxon name involved in a name relationship with this name relationship type should be "legitimate" (true) or not (false). Returns false if this name relationship status type is null.

See Also:
isInvalidType(), isIllegitimateType(), NomenclaturalStatusType.isLegitimateType(), RelationshipBase.getRelatedFrom()

isIllegitimateType

public boolean isIllegitimateType()
Returns the boolean value indicating whether the nomenclatural status type of the first taxon name involved in a name relationship with this name relationship type should be "illegitimate" (true) or not (false). Returns false if this name relationship status type is null.

See Also:
isInvalidType(), isLegitimateType(), NomenclaturalStatusType.isIllegitimateType(), RelationshipBase.getRelatedFrom()

isBasionymRelation

public boolean isBasionymRelation()

isReplacedSynonymRelation

public boolean isReplacedSynonymRelation()

ORTHOGRAPHIC_VARIANT

public static final NameRelationshipType ORTHOGRAPHIC_VARIANT()
Returns the "orthographic variant" name relationship type. The first taxon name involved in such a relationship is an orthographic variant of the second taxon name. The two taxon names involved in such a relationship must have the same authorship and rank, belong to the same homotypical group and their name parts must be almost identical (so one usually does not differentiate them).
For instance Angelica silvestris L. is an orthographic variant of Angelica sylvestris L.
This type is symmetric and transitive but usually orthographic variant relationships should be organized in a star schema with the correct variant in the middle and other variants pointing to it.


MISSPELLING

public static final NameRelationshipType MISSPELLING()
Returns the "misspelling" name relationship type. The first taxon name involved in such a relationship is a misspelling of the second taxon name. The two taxon names involved in such a relationship must have the same authorship and rank, belong to the same homotypical group and their name parts must be almost identical (so one usually does not differentiate them).
For instance Anhelica silvestris L. is a misspelling of Angelica silvestris L.
A misspelling is always accicentally (not on purpose). Therefore misspellings are a subset of orthographic variants and are complementary to emendations. A misspelling is always an orthographic variant, too. This type is symmetric and transitive but usually the misspelling relationships should be organized in a star schema with the correct variant in the middle and the misspellings pointing to it.


EMENDATION

public static final NameRelationshipType EMENDATION()
Returns the "emendation" name relationship type. The first taxon name involved in such a relationship is a misspelling of the second taxon name. The two taxon names involved in such a relationship must have the same authorship and rank, belong to the same homotypical group and their name parts must be almost identical (so one usually does not differentiate them).
For instance Angelica silvestris L. is a emendation of Angelica sylvestris L.
The name corrected by an emendation has originally been used on purpose (not accidentially) Therefore emendations are a subset of orthographic variants and are complementary to missepllings. An emendation is always an orthographic variant, too.
This type is symmetric and transitive but usually the misspelling relationships should be organized in a star schema with the correct variant in the middle and the misspellings pointing to it.


LATER_HOMONYM

public static final NameRelationshipType LATER_HOMONYM()
Returns the "later homonym" name relationship type. The first taxon name involved in such a relationship should have been published after the second taxon name. The two taxon names involved in such a relationship must belong to different homotypical groups, have in general different authorship and their name parts (excluding infraspecific ranks) must be (almost) identical, so one could be mistaken for the other one. The first taxon name is "illegitimate" and the second one is "legitimate" (this corresponds to "invalid" and "valid" in case of zoological names).
For instance Astragalus rhizanthus Boiss. is a later homonym of Astragalus rhizanthus Royle.
This type is not symmetric but transitive.

See Also:
NomenclaturalStatusType.isIllegitimateType(), NomenclaturalStatusType.isLegitimateType()

TREATED_AS_LATER_HOMONYM

public static final NameRelationshipType TREATED_AS_LATER_HOMONYM()
Returns the "treated as later homonym" name relationship type. The first taxon name involved in such a relationship is treated as an homonym although it has been published before the second taxon name. The two taxon names involved must belong to different homotypical groups and their name parts (excluding infraspecific ranks and authorship) must be almost identical (so one could be mistaken for the other). The first taxon name is "illegitimate" and the second one is "legitimate" (this corresponds to "invalid" and "valid" in case of zoological names).
This type is not symmetric but transitive.

See Also:
LATER_HOMONYM(), NomenclaturalStatusType.isIllegitimateType(), NomenclaturalStatusType.isLegitimateType()

ALTERNATIVE_NAME

public static final NameRelationshipType ALTERNATIVE_NAME()
Returns the "alternative name" name relationship type. Both taxon names involved in such a relationship are family names. The first one is a classical name long in use, in some cases, even before 1753 and is considered as valid and also legitimate although it does not follow the rules for family names (see Article 18 of the ICBN). An alternative name is typified by the type of the name it is alternative to (so both must belong to the same homotypical group).
For instance Cruciferae Adans is an alternative name to Brassicaceae Lindl.
This type is neither symmetric nor transitive.


BASIONYM

public static final NameRelationshipType BASIONYM()
Returns the "basionym" name relationship type. The first taxon name involved in such a relationship is the "basionym" of the second taxon name. Both taxon names belong to the same homotypical group). The basionym is the epithet-bringing taxon name (first taxon name ever validly published given to the same infrageneric taxon, the epithet of which is the same as in the second taxon name originated through a reclassification).
According to the ICBN the author of the basionym must be mentioned in the later taxon name (by placing it in parentheses before the authority of the new combination). For instance Pinus abies L. is the basionym of Picea abies (L.) H. Karst.
This type is neither symmetric nor transitive.


REPLACED_SYNONYM

public static final NameRelationshipType REPLACED_SYNONYM()
Returns the "replaced synonym" name relationship type. The first taxon name involved in such a relationship is the "replaced synonym" of the second taxon name. Both taxon names belong to the same homotypical group. The replaced synonym is the first taxon name ever validly published given to the same infrageneric taxon that is either itself a "later homonym" or the epithet of which could not be used in the new taxon name originated through a reclassification. A new epithet must be proposed if the use of the original epithet leads to an already existing taxon name (for another taxon) or in botany to autonyms (since the ICBN does not allow such names where epithet and genus name are the same).
For instance Spartium biflorum Desf. is the replaced synonym of of Cytisus fontanesii Spach ("novum" taxon name) because at the time of reclassification a taxon name Cytisus biflorum had been already published by L'H�r.
This type is neither symmetric nor transitive.

See Also:
BASIONYM(), LATER_HOMONYM(), NomenclaturalStatusType.NOVUM()

CONSERVED_AGAINST

public static final NameRelationshipType CONSERVED_AGAINST()
Returns the "conserved against" name relationship type. Both taxon names involved in such a relationship belong to the same homotypical group. Competent authorities decided, regardless of the general nomenclatural rules, to handle the first one as the "legitimate" one and the second taxon name as "illegitimate" (this corresponds to "valid" and "invalid" in case of zoological names).
For instance Cephaloziella (Spruce) Schiffn. is conserved against Dichiton Mont.
This type is neither symmetric nor transitive.

See Also:
NomenclaturalStatusType.CONSERVED(), NomenclaturalStatusType.REJECTED(), NomenclaturalStatusType.isLegitimateType(), NomenclaturalStatusType.isIllegitimateType()

VALIDATED_BY_NAME

public static final NameRelationshipType VALIDATED_BY_NAME()
Returns the "validated by name" name relationship type. The two taxon names involved in such a relationship were published in order to define the same taxonomical group but the first (earlier) taxon name was invalidly published whereas the second (later) taxon name is the one which was validly published for the first time.
This type is neither symmetric nor transitive.

See Also:
NomenclaturalStatusType.isInvalidType(), NomenclaturalStatusType.VALID()

LATER_VALIDATED_BY_NAME

public static final NameRelationshipType LATER_VALIDATED_BY_NAME()
Returns the "later validated by name" name relationship type. The two taxon names involved in such a relationship were published in order to define the same taxonomical group but the first (earlier) taxon name was invalidly published whereas the second (later) taxon name is the one which was validly published for the first time.
This type is neither symmetric nor transitive.

See Also:
NomenclaturalStatusType.isInvalidType(), NomenclaturalStatusType.VALID()

BLOCKING_NAME_FOR

public static final NameRelationshipType BLOCKING_NAME_FOR()
Returns the "blocking name" name relationship type. The first taxon name involved in such a relationship is the "blocking name" for the second taxon name. Both taxon names belong to different homotypical groups). The blocking taxon name is the infrageneric taxon name, already published at the time of reclassification, which makes illegitim (because of homonymy) the use of the epithet in the second taxon name originated through a reclassification. Therefore a "replaced synonym" name relationship arises.
For instance Cytisus biflorum L'H�r. is the blocking name for Cytisus fontanesii Spach ("novum" taxon name) when reclassifying Spartium biflorum Desf. from Spartium to Cytisus.
This type is neither symmetric nor transitive.

See Also:
REPLACED_SYNONYM(), LATER_HOMONYM(), NomenclaturalStatusType.NOVUM()

setDefaultTerms

protected void setDefaultTerms(TermVocabulary<NameRelationshipType> termVocabulary)
Specified by:
setDefaultTerms in class DefinedTermBase<NameRelationshipType>

readCsvLine

public NameRelationshipType readCsvLine(Class<NameRelationshipType> termClass,
                                        List<String> csvLine,
                                        Map<UUID,DefinedTermBase> terms)
Description copied from interface: ILoadableTerm
Fills the term with contents from a csvLine. If the csvLine represents the default language the csvLine attributes are merged into the existing default language and the default Language is returned.

Specified by:
readCsvLine in interface ILoadableTerm<NameRelationshipType>
Overrides:
readCsvLine in class RelationshipTermBase<NameRelationshipType>
Returns:


Copyright © 2007-2013 EDIT. All Rights Reserved.