/**
* 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.
*/
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Indexed;
+import org.hibernate.search.annotations.IndexedEmbedded;
import org.joda.time.Partial;
import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
import eu.etaxonomy.cdm.model.common.EventBase;
-import eu.etaxonomy.cdm.model.reference.ReferenceBase;
+import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
/**
* @author m.doering
})
@XmlRootElement(name = "DeterminationEvent")
@Entity
+@Indexed
@Audited
public class DeterminationEvent extends EventBase {
+ private static final long serialVersionUID = 5065341354427569773L;
+
private static final Logger logger = Logger.getLogger(DeterminationEvent.class);
@XmlElement(name = "IdentifiedUnit")
@ManyToOne(fetch = FetchType.LAZY)
@Cascade(CascadeType.SAVE_UPDATE)
private SpecimenOrObservationBase identifiedUnit;
-
+
@XmlElement(name = "Taxon")
@XmlIDREF
@XmlSchemaType(name = "IDREF")
@ManyToOne(fetch = FetchType.LAZY)
+ @IndexedEmbedded
@Cascade(CascadeType.SAVE_UPDATE)
- private Taxon taxon;
-
+ private TaxonBase taxon;
+
@XmlElement(name = "Modifier")
@XmlIDREF
@XmlSchemaType(name = "IDREF")
@ManyToOne(fetch = FetchType.LAZY)
- private DeterminationModifier modifier;
-
+ private DefinedTerm modifier;
+
@XmlElement(name = "PreferredFlag")
private boolean preferredFlag;
-
+
@XmlElementWrapper(name = "SetOfReferences")
@XmlElement(name = "Reference")
@XmlIDREF
@XmlSchemaType(name = "IDREF")
@ManyToMany(fetch = FetchType.LAZY)
- private Set<ReferenceBase> setOfReferences = new HashSet<ReferenceBase>();
+ @Cascade(CascadeType.SAVE_UPDATE)
+ private Set<Reference> setOfReferences = new HashSet<Reference>();
+
+
-
-
/**
* Factory method
* @return
public static DeterminationEvent NewInstance(){
return new DeterminationEvent();
}
-
+
+ /**
+ * Factory method
+ * @return
+ */
+ public static DeterminationEvent NewInstance(Taxon taxon, SpecimenOrObservationBase identifiedUnit ){
+ DeterminationEvent result = new DeterminationEvent();
+ result.setTaxon(taxon);
+ result.setIdentifiedUnit(identifiedUnit);
+ identifiedUnit.addDetermination(result);
+ return result;
+ }
+
/**
* Constructor
*/
protected DeterminationEvent() {
super();
}
-
- public DeterminationModifier getModifier() {
+
+ public DefinedTerm getModifier() {
return modifier;
}
- public void setModifier(DeterminationModifier modifier) {
+ public void setModifier(DefinedTerm modifier) {
this.modifier = modifier;
}
- public Taxon getTaxon(){
+ public TaxonBase getTaxon(){
return this.taxon;
}
/**
- *
+ *
* @param taxon taxon
*/
- public void setTaxon(Taxon taxon){
+ public void setTaxon(TaxonBase taxon){
this.taxon = taxon;
}
}
/**
- *
+ *
* @param identificationDate identificationDate
*/
public void setIdentificationDate(Partial identificationDate){
public AgentBase getDeterminer() {
return this.getActor();
}
-
+
public void setDeterminer(AgentBase determiner) {
this.setActor(determiner);
}
public void setIdentifiedUnit(SpecimenOrObservationBase identifiedUnit) {
this.identifiedUnit = identifiedUnit;
}
-
+
public boolean getPreferredFlag() {
return preferredFlag;
}
public void setPreferredFlag(boolean preferredFlag) {
this.preferredFlag = preferredFlag;
}
-
- public Set<ReferenceBase> getReferences() {
+
+ public Set<Reference> getReferences() {
return setOfReferences;
}
- public void setReferences(Set<ReferenceBase> references) {
+ public void setReferences(Set<Reference> references) {
this.setOfReferences = references;
}
-
- public void addReference(ReferenceBase reference) {
+
+ public void addReference(Reference reference) {
this.setOfReferences.add(reference);
}
-
-//*********** CLONE **********************************/
-
- /**
+
+//*********** CLONE **********************************/
+
+ /**
* Clones <i>this</i> determination event. This is a shortcut that enables to
* create a new instance that differs only slightly from <i>this</i> determination event
* by modifying only some of the attributes.<BR>
* This method overrides the clone method from {@link EventBase EventBase}.
- *
+ *
* @see EventBase#clone()
* @see java.lang.Object#clone()
*/
return null;
}
}
-
-
+
+
}
\ No newline at end of file