comments for IReferenceBase
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / model / reference / IReferenceBase.java
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 eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
13 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
14 import eu.etaxonomy.cdm.model.common.IParsable;
15 import eu.etaxonomy.cdm.model.common.TimePeriod;
16 import eu.etaxonomy.cdm.strategy.cache.reference.IReferenceBaseCacheStrategy;
17 import eu.etaxonomy.cdm.strategy.match.IMatchable;
18 import eu.etaxonomy.cdm.strategy.merge.IMergable;
19
20 public interface IReferenceBase extends IIdentifiableEntity, IParsable, IMergable, IMatchable{
21
22 /**
23 * Returns the reference type
24 */
25 public ReferenceType getType() ;
26
27 /**
28 * Sets the reference type
29 * @param type
30 */
31 public void setType(ReferenceType type) ;
32
33 /**
34 * Returns true if the type of the reference is the same as the passed parameter
35 * @param type
36 * @return boolean
37 */
38 public boolean isOfType(ReferenceType type);
39
40 /**
41 * Returns the references author(s)
42 */
43 public TeamOrPersonBase getAuthorTeam();
44
45 /**
46 * Sets the references author(s)
47 */
48 public void setAuthorTeam(TeamOrPersonBase authorTeam);
49
50 /**
51 * Returns the references title
52 */
53 public String getTitle();
54
55 /**
56 * Sets the references title
57 * @param title
58 */
59 public void setTitle(String title);
60
61 /**
62 * Returns the date when the reference was published as a {@link TimePeriod}
63 */
64 public TimePeriod getDatePublished();
65
66 /**
67 * Sets the date when the reference was published.
68 */
69 public void setDatePublished(TimePeriod datePublished);
70
71 /**
72 * Returns the Uniform Resource Identifier (URI) corresponding to <i>this</i>
73 * reference. An URI is a string of characters used to identify a resource
74 * on the Internet.
75 *
76 * @return the URI of <i>this</i> reference
77 */
78 public String getUri();
79 /**
80 * @see #getUri()
81 */
82 public void setUri(String uri);
83
84
85 /**
86 * Returns the references abstract which is a summary of the content
87 */
88 public String getReferenceAbstract();
89
90 /**
91 * Sets the references abstract which is a summary of the content
92 * @param referenceAbstract
93 */
94 public void setReferenceAbstract(String referenceAbstract);
95
96 /**
97 * Returns the citation string including the detail (micro reference) information.
98 * E.g. if the references title cache is <i>L., Sp. Pl. 3. 1757</i> the nomenclatural citation
99 * may be something like <i>L., Sp. Pl. 3: 45. 1757</i>
100 * @param microReference the detail, e.g. a page number, a figure, ...
101 * @return String
102 */
103 public String getNomenclaturalCitation(String microReference);
104
105 /**
106 * Sets the cache strategy for this reference
107 * @param cacheStrategy
108 */
109 void setCacheStrategy(IReferenceBaseCacheStrategy cacheStrategy);
110
111
112 }