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.
9 package eu
.etaxonomy
.cdm
.model
.reference
;
11 import java
.beans
.Transient
;
14 import eu
.etaxonomy
.cdm
.model
.common
.IIdentifiableEntity
;
15 import eu
.etaxonomy
.cdm
.model
.common
.IParsable
;
16 import eu
.etaxonomy
.cdm
.strategy
.cache
.reference
.INomenclaturalReferenceCacheStrategy
;
17 import eu
.etaxonomy
.cdm
.strategy
.match
.IMatchable
;
18 import eu
.etaxonomy
.cdm
.strategy
.merge
.IMergable
;
21 * The upmost interface for references (information sources).
23 * This class corresponds to: <ul>
24 * <li> PublicationCitation according to the TDWG ontology
25 * <li> Publication according to the TCS
26 * <li> Reference according to the ABCD schema
29 public interface IReference
30 extends IIdentifiableEntity
,
31 IParsable
, IMergable
, IMatchable
, Cloneable
{
34 * Returns the reference type
36 public ReferenceType
getType() ;
39 * Sets the reference type
42 public void setType(ReferenceType type
) ;
45 * Returns true if the type of the reference is the same as the passed parameter
49 public boolean isOfType(ReferenceType type
);
52 * Returns the references title
54 public String
getTitle();
57 * Sets the references title
60 public void setTitle(String title
);
63 * The abbreviated title is the short form for the title. It is usually used
64 * as a representation of the title of references used in a nomenclatural
68 public String
getAbbrevTitle();
71 * Sets the {@link #getAbbrevTitle() abbreviated title}.
74 public void setAbbrevTitle(String abbrevTitle
);
77 * Returns the Uniform Resource Identifier (URI) corresponding to <i>this</i>
78 * reference. An URI is a string of characters used to identify a resource
81 * @return the URI of <i>this</i> reference
87 public void setUri(URI uri
);
90 * Returns the references abstract which is a summary of the content
92 public String
getReferenceAbstract();
95 * Sets the references abstract which is a summary of the content
96 * @param referenceAbstract
98 public void setReferenceAbstract(String referenceAbstract
);
101 * @param defaultStrategy
103 public void setCacheStrategy(INomenclaturalReferenceCacheStrategy defaultStrategy
);
105 public INomenclaturalReferenceCacheStrategy
getCacheStrategy();
111 public Object
clone();
114 * Sets both caches and protects them.
115 * This is a convenience method to avoid
116 * references with only one cache protected
117 * leading to strange results in case the other
120 * https://dev.e-taxonomy.eu/redmine/issues/6449
122 * @see #setTitleCache(String)
123 * @see #setTitleCache(String, boolean)
124 * @see #setProtectedTitleCache(boolean)
125 * @see #setAbbrevTitleCache(String)
126 * @see #setAbbrevTitleCache(String, boolean)
127 * @see #setProtectedAbbrevTitleCache(boolean)
130 @javax.persistence
.Transient
131 void setTitleCaches(String cache
);