cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/Figure.java -text
cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/IDefTerm.java -text
cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/IEvent.java -text
+cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/IMediaDocumented.java -text
cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/IOriginalSource.java -text
cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/IReferencedEntity.java -text
cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/IdentifiableEntity.java -text
+cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/IdentifyableMediaEntity.java -text
cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/ImageFile.java -text
cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/Keyword.java -text
cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/Language.java -text
package eu.etaxonomy.cdm.model.agent;
+import java.util.HashSet;
+import java.util.Set;
+
import javax.persistence.Entity;
+import javax.persistence.OneToMany;
+
+import org.hibernate.annotations.Cascade;
+import org.hibernate.annotations.CascadeType;
+import eu.etaxonomy.cdm.model.common.IMediaDocumented;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.cdm.model.common.IdentifyableMediaEntity;
+import eu.etaxonomy.cdm.model.common.Media;
@Entity
-public class Agent extends IdentifiableEntity {
-
- public Agent() {
- // TODO Auto-generated constructor stub
- }
-
- @Override
- public String generateTitle() {
- // TODO Auto-generated method stub
- return null;
- }
+public abstract class Agent extends IdentifyableMediaEntity{
+
}
*/
@Entity
public class Person extends Agent {
- public Person() {
- super();
- // TODO Auto-generated constructor stub
- }
-
static Logger logger = Logger.getLogger(Person.class);
+
//e.g. the title
private String prefix;
//All other names not included in the surname. May be just initials, all forenames in full or a combination of expanded
private String suffix;
//The period for which this person was alive represented as a TimePeriod datatype, i.e. start - end date. Alternative
//suggestion as a flexible String. the form birthdate - deathdate (XXXX - YYYY; XXXX - or - YYYY as appropriate) is
- //prefered, or as simple flourished date (fl. XXXX) may be given where that is all that is known
+ //preferred, or as simple flourished date (fl. XXXX) may be given where that is all that is known
private TimePeriod lifespan;
protected Set<InstitutionalMembership> institutionalMemberships;
private Contact contact;
this.teamMembers.remove(person);
}
+ @Override
+ public String generateTitle() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
\ No newline at end of file
--- /dev/null
+package eu.etaxonomy.cdm.model.common;
+
+import java.util.Set;
+
+public interface IMediaDocumented {
+ public Set<Media> getMedia();
+}
* @created 08-Nov-2007 13:06:27
*/
@MappedSuperclass
-@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
public abstract class IdentifiableEntity<T extends IdentifiableEntity> extends AnnotatableEntity<T> implements IOriginalSource {
static Logger logger = Logger.getLogger(IdentifiableEntity.class);
private Set<Extension> extensions = new HashSet();
private Set<OriginalSource> sources = new HashSet();
- public IdentifiableEntity() {
- super();
- }
-
public String getLsid(){
return this.lsid;
--- /dev/null
+package eu.etaxonomy.cdm.model.common;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.persistence.MappedSuperclass;
+import javax.persistence.OneToMany;
+
+import org.apache.log4j.Logger;
+import org.hibernate.annotations.Cascade;
+import org.hibernate.annotations.CascadeType;
+
+@MappedSuperclass
+public abstract class IdentifyableMediaEntity extends IdentifiableEntity implements IMediaDocumented{
+ static Logger logger = Logger.getLogger(IdentifyableMediaEntity.class);
+
+ private Set<Media> media = new HashSet();
+
+
+ @OneToMany
+ @Cascade({CascadeType.SAVE_UPDATE})
+ public Set<Media> getMedia() {
+ return media;
+ }
+ protected void setMedia(Set<Media> media) {
+ this.media = media;
+ }
+ public void addMedia(Media media) {
+ this.media.add(media);
+ }
+ public void removeMedia(Media media) {
+ this.media.remove(media);
+ }
+
+}
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
+import eu.etaxonomy.cdm.model.common.IMediaDocumented;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.cdm.model.common.Media;
import eu.etaxonomy.cdm.model.common.IReferencedEntity;
* @created 08-Nov-2007 13:06:51
*/
@Entity
-public class Sequence extends IdentifiableEntity implements IReferencedEntity {
+public class Sequence extends IdentifiableEntity implements IReferencedEntity, IMediaDocumented{
static Logger logger = Logger.getLogger(Sequence.class);
//the sequence as a string of base pairs. 5'->3'
private String sequence;
public void removeChromatogram(Media chromatogram) {
this.chromatograms.remove(chromatogram);
}
+
+ @Transient
+ public Set<Media> getMedia() {
+ return getChromatograms();
+ }
public String getSequence(){
import eu.etaxonomy.cdm.model.agent.Institution;
+import eu.etaxonomy.cdm.model.common.IMediaDocumented;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.cdm.model.common.IdentifyableMediaEntity;
+import eu.etaxonomy.cdm.model.common.Media;
+
import org.apache.log4j.Logger;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import java.util.*;
+
import javax.persistence.*;
/**
* @created 08-Nov-2007 13:06:16
*/
@Entity
-public class Collection extends IdentifiableEntity {
+public class Collection extends IdentifyableMediaEntity{
static Logger logger = Logger.getLogger(Collection.class);
private String code;
private String codeStandard;
private String townOrLocation;
private Institution institute;
private Collection superCollection;
-
+
+
@ManyToOne
@Cascade({CascadeType.SAVE_UPDATE})
public Institution getInstitute(){
public void setSuperCollection(Collection superCollection) {
this.superCollection = superCollection;
}
-
+
}
\ No newline at end of file
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.agent.Agent;
import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.common.IMediaDocumented;
+import eu.etaxonomy.cdm.model.common.IdentifyableMediaEntity;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.common.LanguageString;
import eu.etaxonomy.cdm.model.common.Media;
*/
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
-public abstract class SpecimenOrObservationBase extends IdentifiableEntity {
+public abstract class SpecimenOrObservationBase extends IdentifyableMediaEntity{
static Logger logger = Logger.getLogger(SpecimenOrObservationBase.class);
- private Set<Media> media = new HashSet();
private Set<SpecimenDescription> descriptions = new HashSet();
private Set<DeterminationEvent> determinations = new HashSet();
private Sex sex;
this.lifeStage = lifeStage;
}
- @OneToMany
- @Cascade({CascadeType.SAVE_UPDATE})
- public Set<Media> getMedia() {
- return media;
- }
- protected void setMedia(Set<Media> media) {
- this.media = media;
- }
- public void addMedia(Media media) {
- this.media.add(media);
- }
- public void removeMedia(Media media) {
- this.media.remove(media);
- }
-
public String generateTitle(){
return "";
import eu.etaxonomy.cdm.model.agent.Agent;
import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.common.IMediaDocumented;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.cdm.model.common.IdentifyableMediaEntity;
+import eu.etaxonomy.cdm.model.common.Media;
+
import org.apache.log4j.Logger;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import java.util.*;
+
import javax.persistence.*;
/**
* @created 08-Nov-2007 13:06:47
*/
@Entity
-public abstract class ReferenceBase extends IdentifiableEntity {
+public abstract class ReferenceBase extends IdentifyableMediaEntity{
static Logger logger = Logger.getLogger(ReferenceBase.class);
//URIs like DOIs, LSIDs or Handles for this reference
private String uri;
//nomenclatural reference in a name this flag should be automatically set
private boolean isNomenclaturallyRelevant;
private Agent authorTeam;
-
@ManyToOne
@Cascade({CascadeType.SAVE_UPDATE})
public String getUri(){
return this.uri;
}
-
- /**
- *
- * @param uri uri
- */
public void setUri(String uri){
this.uri = uri;
}
// FIXME: need to sort synonyms according to type!!!
return getSynonyms();
}
+ @Transient
+ public Set<TaxonNameBase> getSynonymNames(){
+ Set<TaxonNameBase> names = new HashSet();
+ for (SynonymRelationship rel: this.getSynonymRelations()){
+ names.add(rel.getSynoynm().getName());
+ }
+ return names;
+ }
@Transient
public void addSynonym(Synonym synonym, SynonymRelationshipType synonymType){
logger.debug("Creating DAO of type [" + type.getSimpleName() + "]");\r
}\r
\r
- \r
- \r
public String saveCdmObj(CdmBase cdmObj) throws DataAccessException {\r
getSession().saveOrUpdate(cdmObj);\r
return cdmObj.getUuid();\r
public DefinedTermDaoImpl() {
super(DefinedTermBase.class);
- // add reference to static DefindTermBase class
- // Spring cant inject static properties...
- //DefinedTermBase.setDao(this);
}
public List<DefinedTermBase> findByTitle(String queryString) {
import eu.etaxonomy.cdm.database.DataSourceNotFoundException;\r
import eu.etaxonomy.cdm.database.DatabaseTypeEnum;\r
import eu.etaxonomy.cdm.model.agent.Agent;\r
+import eu.etaxonomy.cdm.model.agent.Person;\r
import eu.etaxonomy.cdm.model.name.BotanicalName;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
\r
CdmDataSource ds = CdmDataSource.save("testSqlServer", databaseTypeEnum, server, database, username, password);\r
try {\r
CdmApplicationController appCtr = new CdmApplicationController(ds);\r
- Agent agent = new Agent();\r
+ Person agent = new Person();\r
appCtr.getAgentService().saveAgent(agent);\r
TaxonNameBase tn = new BotanicalName(null);\r
appCtr.getNameService().saveTaxonName(tn);\r
CdmDataSource ds = CdmDataSource.save("PostgreTest", databaseTypeEnum, server, database, username, password);\r
try {\r
CdmApplicationController appCtr = new CdmApplicationController(ds);\r
- Agent agent = new Agent();\r
+ Person agent = new Person();\r
appCtr.getAgentService().saveAgent(agent);\r
TaxonNameBase tn = new BotanicalName(null);\r
appCtr.getNameService().saveTaxonName(tn);\r
\r
package eu.etaxonomy.cdm.test.function;\r
\r
+import java.util.List;\r
+\r
import org.apache.log4j.Logger;\r
\r
import eu.etaxonomy.cdm.api.application.CdmApplicationController;\r
import eu.etaxonomy.cdm.api.service.DatabaseServiceHibernateImpl;\r
import eu.etaxonomy.cdm.api.service.ITermService;\r
import eu.etaxonomy.cdm.aspectj.PropertyChangeTest;\r
-import eu.etaxonomy.cdm.model.agent.Agent;\r
+import eu.etaxonomy.cdm.model.agent.Person;\r
import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
-import eu.etaxonomy.cdm.model.name.*;\r
+import eu.etaxonomy.cdm.model.name.BotanicalName;\r
+import eu.etaxonomy.cdm.model.name.NonViralName;\r
+import eu.etaxonomy.cdm.model.name.Rank;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
import eu.etaxonomy.cdm.model.reference.Journal;\r
import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
import eu.etaxonomy.cdm.model.taxon.Synonym;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
\r
-import java.util.*;\r
-\r
\r
\r
public class SpringControl {\r
tn3.getUninomial();\r
\r
logger.info("Create new Author agent...");\r
- Agent team= new Agent();\r
+ Person team= new Person();\r
team.addPropertyChangeListener(listener);\r
team.setTitleCache("AuthorAgent1");\r
tn.setCombinationAuthorTeam(team);\r