Project

General

Profile

Download (3.33 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
33
            extends IIdentifiableEntity,
34
                   IParsable, IMergable, IMatchable, Cloneable {
35

    
36
	/**
37
	 * Returns the reference type
38
	 */
39
	public ReferenceType getType() ;
40

    
41
	/**
42
	 * Sets the reference type
43
	 * @param type
44
	 */
45
	public void setType(ReferenceType type) ;
46

    
47
	/**
48
	 * Returns true if the type of the reference is the same as the passed parameter
49
	 * @param type
50
	 * @return boolean
51
	 */
52
	public boolean isOfType(ReferenceType type);
53

    
54
	/**
55
	 * Returns the references author(s)
56
	 */
57
	public TeamOrPersonBase getAuthorship();
58

    
59
	/**
60
	 * Sets the references author(s)
61
	 */
62
	public void setAuthorship(TeamOrPersonBase authorship);
63

    
64
	/**
65
	 * Returns the references title
66
	 */
67
	public String getTitle();
68

    
69
	/**
70
	 * Sets the references title
71
	 * @param title
72
	 */
73
	public void setTitle(String title);
74

    
75

    
76

    
77
    /**
78
     * The abbreviated title is the short form for the titlle. It is usually used
79
     * as a representation of the title of references used in a nomenclatural
80
     * context.
81
     * @return
82
     */
83
    public String getAbbrevTitle();
84

    
85
    /**
86
     * Sets the {@link #getAbbrevTitle() abbreviated title}.
87
     * @param abbrevTitle
88
     */
89
    public void setAbbrevTitle(String abbrevTitle);
90

    
91

    
92
	/**
93
	 * Returns the date when the reference was published as a {@link TimePeriod}
94
	 */
95
	public TimePeriod getDatePublished();
96

    
97
	/**
98
	 * Sets the date when the reference was published.
99
	 */
100
    public void setDatePublished(TimePeriod datePublished);
101

    
102
	/**
103
	 * Returns the Uniform Resource Identifier (URI) corresponding to <i>this</i>
104
	 * reference. An URI is a string of characters used to identify a resource
105
	 * on the Internet.
106
	 *
107
	 * @return  the URI of <i>this</i> reference
108
	 */
109
	public URI getUri();
110
	/**
111
	 * @see #getUri()
112
	 */
113
	public void setUri(URI uri);
114

    
115

    
116
	/**
117
	 * Returns the references abstract which is a summary of the content
118
	 */
119
	public String getReferenceAbstract();
120

    
121
	/**
122
	 * Sets the references abstract which is a summary of the content
123
	 * @param referenceAbstract
124
	 */
125
	public void setReferenceAbstract(String referenceAbstract);
126

    
127
    /**
128
     * @param defaultStrategy
129
     */
130
    public void setCacheStrategy(IReferenceCacheStrategy defaultStrategy);
131

    
132
	/**
133
	 * @see Cloneable
134
	 * @return
135
	 */
136
	public Object clone();
137

    
138
}
(17-17/27)