X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/blobdiff_plain/0d656d7a2b05223732eeb8982c59050698208fb7..cccbf1207d34a3aef1ffce9a0b6c41c15c5feb69:/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/BacterialName.java
diff --git a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/BacterialName.java b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/BacterialName.java
index 3a1355cc90..6b747bd77c 100644
--- a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/BacterialName.java
+++ b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/BacterialName.java
@@ -1,8 +1,8 @@
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
@@ -11,7 +11,6 @@ package eu.etaxonomy.cdm.model.name;
import javax.persistence.Entity;
-import javax.persistence.Transient;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
@@ -19,12 +18,18 @@ import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import org.apache.log4j.Logger;
+import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Field;
+import org.hibernate.search.annotations.Indexed;
+import org.springframework.beans.factory.annotation.Configurable;
+
+import eu.etaxonomy.cdm.strategy.cache.name.BacterialNameDefaultCacheStrategy;
/**
* The taxon name class for bacteria.
*
* This class corresponds to: NameBacterial according to the ABCD schema.
- *
+ *
* @author m.doering
* @version 1.0
* @created 08-Nov-2007 13:06:11
@@ -36,33 +41,39 @@ import org.apache.log4j.Logger;
})
@XmlRootElement(name = "BacterialName")
@Entity
-//@Audited
-public class BacterialName extends NonViralName {
-
- static Logger logger = Logger.getLogger(BacterialName.class);
+@Indexed(index = "eu.etaxonomy.cdm.model.name.TaxonNameBase")
+@Audited
+@Configurable
+public class BacterialName extends NonViralName implements Cloneable{
+ private static final long serialVersionUID = -7641841279209976443L;
+ @SuppressWarnings("unused")
+ private static final Logger logger = Logger.getLogger(BacterialName.class);
//Author team and year of the subgenus name
@XmlElement(name = "SubGenusAuthorship")
+ @Field
private String subGenusAuthorship;
-
+
//Approbation of name according to approved list, validation list, or validly published, paper in IJSB after 1980
@XmlElement(name = "NameApprobation")
+ @Field
private String nameApprobation;
// ************* CONSTRUCTORS *************/
-
+
protected BacterialName(){
super();
+ this.cacheStrategy = BacterialNameDefaultCacheStrategy.NewInstance();
}
-
- /**
+
+ /**
* Class constructor: creates a new bacterial taxon name instance
* only containing its {@link Rank rank},
* its {@link HomotypicalGroup homotypical group} and
* the {@link eu.etaxonomy.cdm.strategy.cache.name.NonViralNameDefaultCacheStrategy default cache strategy}.
* The new bacterial taxon name instance will be also added to the set of
* bacterial taxon names belonging to this homotypical group.
- *
+ *
* @param rank the rank to be assigned to this bacterial taxon name
* @param homotypicalGroup the homotypical group to which this bacterial taxon name belongs
* @see #NewInstance(Rank)
@@ -73,14 +84,15 @@ public class BacterialName extends NonViralName {
*/
protected BacterialName(Rank rank, HomotypicalGroup homotypicalGroup) {
super(rank, homotypicalGroup);
+ this.cacheStrategy = BacterialNameDefaultCacheStrategy.NewInstance();
}
//********* METHODS **************************************/
- /**
+ /**
* Creates a new bacterial taxon name instance
- * only containing its {@link Rank rank} and
+ * only containing its {@link Rank rank} and
* the {@link eu.etaxonomy.cdm.strategy.cache.name.NonViralNameDefaultCacheStrategy default cache strategy}.
- *
+ *
* @param rank the rank to be assigned to this bacterial taxon name
* @see #NewInstance(Rank, HomotypicalGroup)
* @see #BacterialName(Rank, HomotypicalGroup)
@@ -92,14 +104,14 @@ public class BacterialName extends NonViralName {
return new BacterialName(rank, null);
}
- /**
+ /**
* Creates a new bacterial taxon name instance
* only containing its {@link Rank rank},
- * its {@link HomotypicalGroup homotypical group} and
+ * its {@link HomotypicalGroup homotypical group} and
* the {@link eu.etaxonomy.cdm.strategy.cache.name.NonViralNameDefaultCacheStrategy default cache strategy}.
* The new bacterial taxon name instance will be also added to the set of
* bacterial taxon names belonging to this homotypical group.
- *
+ *
* @param rank the rank to be assigned to this bacterial taxon name
* @param homotypicalGroup the homotypical group to which this bacterial taxon name belongs
* @see #NewInstance(Rank)
@@ -111,15 +123,15 @@ public class BacterialName extends NonViralName {
public static BacterialName NewInstance(Rank rank, HomotypicalGroup homotypicalGroup){
return new BacterialName(rank, homotypicalGroup);
}
-
+
/**
* Returns the string containing the authorship with the year and details
* of the reference in which the subgenus included in the scientific name
* of this bacterial taxon name was published.
* For instance if the bacterial taxon name is
* 'Bacillus (subgen. Aerobacillus Donker 1926, 128) polymyxa' the subgenus
- * authorship string is 'Donker 1926, 128'.
- *
+ * authorship string is 'Donker 1926, 128'.
+ *
* @return the string containing the complete subgenus' authorship
* included in this bacterial taxon name
*/
@@ -147,7 +159,7 @@ public class BacterialName extends NonViralName {
* are validly published as paper in IJSB after 1980 (VP).
*
* IJSB is the acronym for International Journal of Systematic Bacteriology.
- *
+ *
* @return the string with the source of the approbation for this bacterial taxon name
*/
public String getNameApprobation(){
@@ -160,8 +172,8 @@ public class BacterialName extends NonViralName {
public void setNameApprobation(String nameApprobation){
this.nameApprobation = nameApprobation;
}
-
-
+
+
/**
* Returns the {@link NomenclaturalCode nomenclatural code} that governs
* the construction of this bacterial taxon name, that is the
@@ -172,11 +184,27 @@ public class BacterialName extends NonViralName {
* @see NonViralName#isCodeCompliant()
* @see TaxonNameBase#getHasProblem()
*/
- @Transient
@Override
public NomenclaturalCode getNomenclaturalCode(){
return NomenclaturalCode.ICNB;
}
+//*********************** CLONE ********************************************************/
+
+ /**
+ * Clones this bacterial name. This is a shortcut that enables to create
+ * a new instance that differs only slightly from this bacterial name by
+ * modifying only some of the attributes.
+ *
+ * @see eu.etaxonomy.cdm.model.name.NonViralName#clone()
+ * @see java.lang.Object#clone()
+ */
+ @Override
+ public Object clone() {
+ BacterialName result = (BacterialName)super.clone();
+ //no changes to: subGenusAuthorship, nameApprobation
+ return result;
+ }
+
}