2 * Copyright (C) 2009 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.cdm
.model
.reference
;
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
;
20 public interface IReferenceBase
extends IIdentifiableEntity
, IParsable
, IMergable
, IMatchable
{
23 * Returns the reference type
25 public ReferenceType
getType() ;
28 * Sets the reference type
31 public void setType(ReferenceType type
) ;
34 * Returns true if the type of the reference is the same as the passed parameter
38 public boolean isOfType(ReferenceType type
);
41 * Returns the references author(s)
43 public TeamOrPersonBase
getAuthorTeam();
46 * Sets the references author(s)
48 public void setAuthorTeam(TeamOrPersonBase authorTeam
);
51 * Returns the references title
53 public String
getTitle();
56 * Sets the references title
59 public void setTitle(String title
);
62 * Returns the date when the reference was published as a {@link TimePeriod}
64 public TimePeriod
getDatePublished();
67 * Sets the date when the reference was published.
69 public void setDatePublished(TimePeriod datePublished
);
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
76 * @return the URI of <i>this</i> reference
78 public String
getUri();
82 public void setUri(String uri
);
86 * Returns the references abstract which is a summary of the content
88 public String
getReferenceAbstract();
91 * Sets the references abstract which is a summary of the content
92 * @param referenceAbstract
94 public void setReferenceAbstract(String referenceAbstract
);
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, ...
103 public String
getNomenclaturalCitation(String microReference
);
106 * Sets the cache strategy for this reference
107 * @param cacheStrategy
109 void setCacheStrategy(IReferenceBaseCacheStrategy cacheStrategy
);