(no commit message)
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / model / name / NameRelationshipType.java
index bac9f097b2a21f35290b7a49c8685ee7bb45d980..f7ec7b8ffa823318f988ec93a0d89235e8cf95ae 100644 (file)
 package eu.etaxonomy.cdm.model.name;
 
 
-import eu.etaxonomy.cdm.model.common.TermVocabulary;
 import eu.etaxonomy.cdm.model.common.RelationshipTermBase;
-import org.apache.log4j.Logger;
+import eu.etaxonomy.cdm.model.location.Continent;
 
+import org.apache.log4j.Logger;
 import java.util.*;
+
 import javax.persistence.*;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
 
 /**
  * http://rs.tdwg.org/ontology/voc/TaxonName.rdf#NomenclaturalNoteTypeTerm
+ * The relationship 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.  
+ * 
  * @author m.doering
  * @version 1.0
  * @created 08-Nov-2007 13:06:38
  */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "")
 @Entity
-public class NameRelationshipType extends RelationshipTermBase {
+public class NameRelationshipType extends RelationshipTermBase<NameRelationshipType> {
        static Logger logger = Logger.getLogger(NameRelationshipType.class);
 
        private static final UUID uuidOrthographicVariant = UUID.fromString("eeaea868-c4c1-497f-b9fe-52c9fc4aca53");
@@ -41,92 +52,83 @@ public class NameRelationshipType extends RelationshipTermBase {
        public NameRelationshipType() {
                super();
        }
-       public NameRelationshipType(String term, String label, boolean symmetric, boolean transitive) {
-               super(term, label, symmetric, transitive);
-               // TODO Auto-generated constructor stub
+       
+       public NameRelationshipType(String term, String label, String labelAbbrev, boolean symmetric, boolean transitive) {
+               super(term, label, labelAbbrev, symmetric, transitive);
        }
 
 
+       public static final NameRelationshipType getByUuid(UUID uuid){
+               return (NameRelationshipType)findByUuid(uuid);
+       }
+
        @Transient
        public boolean isInvalidType(){
-               //TODO: implement isX method. Maybe as persistent class attribute?
-               //True, if enum is of type:
-               //Invalid,
-               //Nudum,
-               //Provisional,
-               //CombinationInvalid,
-               //ValidatedByName,
-               //LaterValidatedByName
-
-               return false;
+               if (this.equals(VALIDATED_BY_NAME()) || 
+                               this.equals(LATER_VALIDATED_BY_NAME())
+                       ){
+                       return true;    
+               }else{
+                       return false;
+               }
        }
 
        @Transient
        public boolean isLegitimateType(){
-               //TODO: implement isX method. Maybe as persistent class attribute?
-               //True, if enum is of type:
-               //Legitimate,
-               //Basionym,
-               //ReplacedSynonym,
-               //Novum,
-               //AlternativeName,
-               //Alternativ,
-               //ConservedAgainst,
-               //Conserved,
-               //OrthographyConserved,
-               //RejectedProp,
-               //UtiqueRejectedProp
-
-               return false;
+               if (this.equals(BASIONYM()) || 
+                               this.equals(REPLACED_SYNONYM()) || 
+                               this.equals(ALTERNATIVE_NAME()) ||
+                               this.equals(CONSERVED_AGAINST())
+                       ){
+                       return true;    
+               }else{
+                       return false;
+               }
        }
 
        @Transient
        public boolean isIllegitimateType(){
                //TODO: implement isX method. Maybe as persistent class attribute?
-               //True, if enum is of type:
-               //Illegitimate,
-               //Superfluous,
-               //LaterHomonym,
-               //TreatedAsLaterHomonym,
-               //RejectedInFavour,
-               //Rejected,
-               //UtiqueRejected,
-               //ConservedProp,
-               //OrthographyConservedProp
-
-               return false;
+               //TODO: RejectedInFavour,
+               if (this.equals(LATER_HOMONYM()) || 
+                               this.equals(TREATED_AS_LATER_HOMONYM())
+                       ){
+                       return true;    
+               }else{
+                       return false;
+               }
        }
 
        
        public static final NameRelationshipType ORTHOGRAPHIC_VARIANT(){
-                 return (NameRelationshipType)findByUuid(uuidOrthographicVariant);
-               }
-               public static final NameRelationshipType LATER_HOMONYM(){
-                 return (NameRelationshipType)findByUuid(uuidLaterHomonym);
-               }
-               public static final NameRelationshipType TREATED_AS_LATER_HOMONYM(){
-                 return (NameRelationshipType)findByUuid(uuidTreatedAsLaterHomonym);
-               }
-               public static final NameRelationshipType ALTERNATIVE_NAME(){
-                 return (NameRelationshipType)findByUuid(uuidAlternativeName);
-               }
-               public static final NameRelationshipType BASIONYM(){
-                 return (NameRelationshipType)findByUuid(uuidBasionym);
-               }
-               public static final NameRelationshipType REPLACED_SYNONYM(){
-                 return (NameRelationshipType)findByUuid(uuidReplacedSynonym);
-               }
-               public static final NameRelationshipType CONSERVED_AGAINST(){
-                 return (NameRelationshipType)findByUuid(uuidConservedAgainst);
-               }
-               public static final NameRelationshipType VALIDATED_BY_NAME(){
-                 return (NameRelationshipType)findByUuid(uuidValidatedByName);
-               }
-               public static final NameRelationshipType LATER_VALIDATED_BY_NAME(){
-                 return (NameRelationshipType)findByUuid(uuidLaterValidatedByName);
-               }
-               public static final NameRelationshipType BLOCKING_NAME_FOR(){
-                 return (NameRelationshipType)findByUuid(uuidBlockingNameFor);
-               }
+                 return getByUuid(uuidOrthographicVariant);
+       }
+       public static final NameRelationshipType LATER_HOMONYM(){
+         return getByUuid(uuidLaterHomonym);
+       }
+       public static final NameRelationshipType TREATED_AS_LATER_HOMONYM(){
+         return getByUuid(uuidTreatedAsLaterHomonym);
+       }
+       public static final NameRelationshipType ALTERNATIVE_NAME(){
+         return getByUuid(uuidAlternativeName);
+       }
+       public static final NameRelationshipType BASIONYM(){
+         return getByUuid(uuidBasionym);
+       }
+       public static final NameRelationshipType REPLACED_SYNONYM(){
+         return getByUuid(uuidReplacedSynonym);
+       }
+       public static final NameRelationshipType CONSERVED_AGAINST(){
+         return getByUuid(uuidConservedAgainst);
+       }
+       public static final NameRelationshipType VALIDATED_BY_NAME(){
+         return getByUuid(uuidValidatedByName);
+       }
+       public static final NameRelationshipType LATER_VALIDATED_BY_NAME(){
+         return getByUuid(uuidLaterValidatedByName);
+       }
+       public static final NameRelationshipType BLOCKING_NAME_FOR(){
+         return getByUuid(uuidBlockingNameFor);
+       }
 
 }
\ No newline at end of file