(no commit message)
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / model / agent / TeamOrPersonBase.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.cdm.model.agent;
10
11 import javax.persistence.Entity;
12 import javax.xml.bind.annotation.XmlAccessType;
13 import javax.xml.bind.annotation.XmlAccessorType;
14 import javax.xml.bind.annotation.XmlElement;
15 import javax.xml.bind.annotation.XmlTransient;
16 import javax.xml.bind.annotation.XmlType;
17
18 import org.apache.log4j.Logger;
19
20 import eu.etaxonomy.cdm.strategy.cache.agent.INomenclaturalAuthorCacheStrategy;
21
22
23 /**
24 * The abstract class for such {@link Agent agents} ({@link Person persons} or {@link Team teams}) who might also be used
25 * for authorship of {@link eu.etaxonomy.cdm.model.reference.ReferenceBase references} or of {@link eu.etaxonomy.cdm.model.name.TaxonNameBase taxon names}.
26 *
27 * @author a.mueller
28 * @version 1.0
29 * @created 17-APR-2008
30 */
31 @XmlAccessorType(XmlAccessType.FIELD)
32 @XmlType(name = "TeamOrPersonBase", propOrder = {
33 "nomenclaturalTitle"
34 })
35 @Entity
36 public abstract class TeamOrPersonBase<T extends TeamOrPersonBase> extends Agent implements INomenclaturalAuthor {
37 static Logger logger = Logger.getLogger(TeamOrPersonBase.class);
38
39 @XmlElement(name="NomenclaturalTitle")
40 protected String nomenclaturalTitle;
41
42 @XmlTransient
43 protected INomenclaturalAuthorCacheStrategy<T> cacheStrategy;
44
45 /**
46 * Returns the identification string (nomenclatural abbreviation) used in
47 * nomenclature for this {@link Person person} or this {@link Team team}.
48 *
49 * @see INomenclaturalAuthor#getNomenclaturalTitle()
50 */
51 public String getNomenclaturalTitle() {
52 return nomenclaturalTitle;
53 }
54
55 /**
56 * @see #getNomenclaturalTitle()
57 */
58 public void setNomenclaturalTitle(String nomenclaturalTitle) {
59 this.nomenclaturalTitle = nomenclaturalTitle;
60 }
61
62 }