StrictReferenceBase matchable
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / model / reference / PrintSeries.java
index 7903cf78f064af8b32f8d5e73068afc37e9aed82..9a5a460ce5ed38abefa2169faabe5ef4cf4ee84c 100644 (file)
@@ -11,8 +11,21 @@ package eu.etaxonomy.cdm.model.reference;
 
 
 import javax.persistence.Entity;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+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.Index;
+import org.hibernate.search.annotations.Indexed;
+import org.springframework.beans.factory.annotation.Configurable;
+
+import eu.etaxonomy.cdm.strategy.cache.reference.IReferenceBaseCacheStrategy;
+import eu.etaxonomy.cdm.strategy.cache.reference.StrictReferenceBaseDefaultCacheStrategy;
 
 /**
  * This class represents collections of {@link PrintedUnitBase printed published references} which
@@ -25,11 +38,26 @@ import org.apache.log4j.Logger;
  * @version 1.0
  * @created 08-Nov-2007 13:06:45
  */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PrintSeries", propOrder = {
+    "series"
+})
+@XmlRootElement(name = "PrintSeries")
 @Entity
-public class PrintSeries extends PublicationBase implements Cloneable {
+@Indexed(index = "eu.etaxonomy.cdm.model.reference.ReferenceBase")
+@Audited
+@Configurable
+public class PrintSeries extends PublicationBase<IReferenceBaseCacheStrategy<PrintSeries>> implements Cloneable {
        private static final Logger logger = Logger.getLogger(PrintSeries.class);
+       
+       @XmlElement(name = "Series")
+       @Field(index=Index.TOKENIZED)
        private String series;
 
+       protected PrintSeries() {
+               this.cacheStrategy = new StrictReferenceBaseDefaultCacheStrategy<PrintSeries>();
+       }
+       
        /** 
         * Creates a new empty print series instance.
         */
@@ -72,7 +100,7 @@ public class PrintSeries extends PublicationBase implements Cloneable {
         * This method overrides the clone method from {@link PublicationBase PublicationBase}.
         * 
         * @see PublicationBase#clone()
-        * @see eu.etaxonomy.cdm.model.media.IdentifyableMediaEntity#clone()
+        * @see eu.etaxonomy.cdm.model.media.IdentifiableMediaEntity#clone()
         * @see java.lang.Object#clone()
         */
        @Override