Project

General

Profile

Download (3.54 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2009 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
import java.net.URI;
13

    
14
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
15
import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
16
import eu.etaxonomy.cdm.model.common.IParsable;
17
import eu.etaxonomy.cdm.model.common.TimePeriod;
18
import eu.etaxonomy.cdm.strategy.cache.reference.IReferenceCacheStrategy;
19
import eu.etaxonomy.cdm.strategy.match.IMatchable;
20
import eu.etaxonomy.cdm.strategy.merge.IMergable;
21

    
22

    
23
/**
24
 * The upmost interface for references (information sources). 
25
 * <P>
26
 * This class corresponds to: <ul>
27
 * <li> PublicationCitation according to the TDWG ontology
28
 * <li> Publication according to the TCS
29
 * <li> Reference according to the ABCD schema
30
 * </ul>
31
 */
32
public interface IReference extends IIdentifiableEntity, IParsable, IMergable, IMatchable, Cloneable {
33

    
34
	/**
35
	 * Returns the reference type
36
	 */
37
	public ReferenceType getType() ;
38
	
39
	/**
40
	 * Sets the reference type
41
	 * @param type
42
	 */
43
	public void setType(ReferenceType type) ;
44
	
45
	/**
46
	 * Returns true if the type of the reference is the same as the passed parameter
47
	 * @param type
48
	 * @return boolean
49
	 */
50
	public boolean isOfType(ReferenceType type);
51
	
52
	/**
53
	 * Returns the references author(s)
54
	 */
55
	public TeamOrPersonBase getAuthorship();
56
	
57
	/**
58
	 * Sets the references author(s)
59
	 */
60
	public void setAuthorship(TeamOrPersonBase authorship);
61
	
62
	/**
63
	 * Returns the references title
64
	 */
65
	public String getTitle();
66
	
67
	
68
	/**
69
	 * Returns the references title
70
	 */
71
	public String getAbbrevTitle();
72
		
73
	/**
74
	 * Sets the references title
75
	 * @param title
76
	 */
77
	public void setTitle(String title);
78

    
79
	
80
	/**
81
	 * Sets the references abbreviated title
82
	 * @param title
83
	 */
84
	public void setAbbrevTitle(String abbrevTitle);
85

    
86
	
87
	/**
88
	 * Returns the date when the reference was published as a {@link TimePeriod}
89
	 */
90
	public TimePeriod getDatePublished();
91
	
92
	/**
93
	 * Sets the date when the reference was published.
94
	 */
95
	public void setDatePublished(TimePeriod datePublished);
96
	
97
	/**
98
	 * Returns the Uniform Resource Identifier (URI) corresponding to <i>this</i>
99
	 * reference. An URI is a string of characters used to identify a resource
100
	 * on the Internet.
101
	 * 
102
	 * @return  the URI of <i>this</i> reference
103
	 */
104
	public URI getUri();
105
	/**
106
	 * @see #getUri()
107
	 */
108
	public void setUri(URI uri);
109

    
110
	
111
	/**
112
	 * Returns the references abstract which is a summary of the content
113
	 */
114
	public String getReferenceAbstract();
115
	
116
	/**
117
	 * Sets the references abstract which is a summary of the content
118
	 * @param referenceAbstract
119
	 */
120
	public void setReferenceAbstract(String referenceAbstract);
121
		
122
	/**
123
	 * Returns the citation string including the detail (micro reference) information.
124
	 * E.g. if the references title cache is <i>L., Sp. Pl. 3. 1757</i> the nomenclatural citation
125
	 * may be something like <i>L., Sp. Pl. 3: 45. 1757</i>
126
	 * @param microReference the detail, e.g. a page number, a figure, ...
127
	 * @return String
128
	 */
129
	public String getNomenclaturalCitation(String microReference);
130
	
131
	/**
132
	 * Sets the cache strategy for this reference
133
	 * @param cacheStrategy
134
	 */
135
	void setCacheStrategy(IReferenceCacheStrategy cacheStrategy);
136
	
137
	/**
138
	 * @see Cloneable
139
	 * @return
140
	 */
141
	public Object clone();
142

    
143
}
(17-17/27)