Project

General

Profile

Download (3.35 KB) Statistics
| Branch: | Tag: | Revision:
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

    
10
package eu.etaxonomy.cdm.model.reference;
11

    
12

    
13
import javax.persistence.Entity;
14

    
15
import org.apache.log4j.Logger;
16

    
17
import eu.etaxonomy.cdm.strategy.cache.reference.JournalDefaultCacheStrategy;
18

    
19
/**
20
 * This class represents journals. A journal is a periodical {@link PublicationBase publication}
21
 * containing several {@link Article articles}.
22
 * <P>
23
 * This class corresponds, according to the TDWG ontology, to the publication type
24
 * term (from PublicationTypeTerm): "Journal".
25
 * 
26
 * @author m.doering
27
 * @version 1.0
28
 * @created 08-Nov-2007 13:06:31
29
 */
30
@Entity
31
public class Journal extends PublicationBase implements Cloneable {
32
	static Logger logger = Logger.getLogger(Journal.class);
33
	private String issn;
34

    
35
	
36
	/** 
37
	 * Class constructor: creates a new empty journal instance
38
	 * only containing the {@link strategy.cache.reference.JournalDefaultCacheStrategy default cache strategy}.
39
	 * 
40
	 * @see strategy.cache.reference.JournalDefaultCacheStrategy
41
	 */
42
	protected Journal(){
43
		super();
44
		cacheStrategy = JournalDefaultCacheStrategy.NewInstance();
45
	}
46
	
47

    
48
	/** 
49
	 * Creates a new empty journal instance
50
	 * only containing the {@link strategy.cache.reference.JournalDefaultCacheStrategy default cache strategy}.
51
	 * 
52
	 * @see #Journal()
53
	 * @see strategy.cache.reference.JournalDefaultCacheStrategy
54
	 */
55
	public static Journal NewInstance(){
56
		Journal result = new Journal();
57
		return result;
58
	}
59
	
60
	/**
61
	 * Returns the string representing the ISSN (International Standard Serial
62
	 * Number, a unique eight-digit number used to identify a periodical
63
	 * publication) of <i>this</i> journal.
64
	 * 
65
	 * @return  the string representing the ISSN
66
	 */
67
	public String getIssn(){
68
		return this.issn;
69
	}
70

    
71
	/**
72
	 * @see #getSeries()
73
	 */
74
	public void setIssn(String issn){
75
		this.issn = issn;
76
	}
77

    
78
	/**
79
	 * Generates, according to the {@link strategy.cache.reference.JournalDefaultCacheStrategy default cache strategy}
80
	 * assigned to <i>this</i> journal, a string that identifies <i>this</i>
81
	 * journal and returns it. This string may be stored in the inherited
82
	 * {@link common.IdentifiableEntity#getTitleCache() titleCache} attribute.<BR>
83
	 * This method overrides the generic and inherited
84
	 * ReferenceBase#generateTitle() method.
85
	 *
86
	 * @return  the string identifying <i>this</i> journal
87
	 * @see  	ReferenceBase#generateTitle()
88
	 * @see  	NomenclaturalReferenceHelper#generateTitle()
89
	 * @see  	common.IdentifiableEntity#getTitleCache()
90
	 * @see  	common.IdentifiableEntity#generateTitle()
91
	 */
92
	@Override
93
	public String generateTitle(){
94
		//FIXME implement
95
		//only dummy
96
		return this.getTitle();
97
	}
98
	
99
	
100
//*********** CLONE **********************************/	
101
	
102
	/** 
103
	 * Clones <i>this</i> journal instance. This is a shortcut that enables to
104
	 * create a new instance that differs only slightly from <i>this</i>
105
	 * journal instance by modifying only some of the attributes.<BR>
106
	 * This method overrides the {@link PublicationBase#clone() method} from PublicationBase.
107
	 * 
108
	 * @see PublicationBase#clone()
109
	 * @see media.IdentifyableMediaEntity#clone()
110
	 * @see java.lang.Object#clone()
111
	 */
112
	public Journal clone(){
113
		return (Journal)super.clone();
114
	}
115

    
116
}
(12-12/27)