Project

General

Profile

Download (3.05 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 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.common.IIdentifiableEntity;
13
import eu.etaxonomy.cdm.model.name.TaxonName;
14

    
15

    
16
 /**
17
 * Interface providing methods for nomenclatural references.
18
 *
19
 * @author m.doering
20
 * @since 08-Nov-2007 13:06:29
21
 */
22
public interface INomenclaturalReference  extends IReference, IWithAuthorAndDate{
23

    
24
	/**
25
     * Returns the citation string including the details (micro reference) information
26
     * from {@link TaxonName taxon name}.
27
     * E.g. if the references title cache is <i>L., Sp. Pl. 3. 1757</i> the nomenclatural citation
28
     * may be something like <i>L., Sp. Pl. 3: 45. 1757</i>
29
     *
30
     * @param microReference the detail, e.g. a page number, a figure, ...
31
     * @return String
32
     */
33
    public String getNomenclaturalCitation(String microReference);
34

    
35
	/**
36
	 * Returns a string representation for the year of publication / creation
37
	 * of a reference.
38
	 */
39
	public String getYear();
40

    
41

    
42

    
43
	/**
44
	 * Returns the cached value for the abbreviated representation of this reference.
45
	 * The abbreviated representation will normally use the {@link #getAbbrevTitle()
46
	 * abbreviated title } instead of the {@link Reference#getTitle() full title}.
47
	 * The cache may be protected.
48
	 * @see #getAbbrevTitle()
49
	 * @see #getTitle()
50
	 * @see #isProtectedAbbrevTitleCache()
51
	 * @return the abbreviated representation of this reference
52
	 */
53
	//TODO discuss if we move all the abbreviated title methods to another interface, e.g. IReference
54
	public String getAbbrevTitleCache();
55

    
56
	/**
57
	 * Sets the {@link #getAbbrevTitleCache() abbreviated title cache}
58
	 *
59
	 * @param abbrevTitleCache
60
	 * @deprecated this method exists only for compliance with the java bean standard.
61
	 * It usually has little effect as it will not protect the cache.
62
	 * Use {@link #setAbbrevTitleCache(String, boolean)} instead use
63
	 * {@link #setAbbrevTitleCache(String, boolean)} to protect the cache.
64
	 */
65
	@Deprecated
66
    public void setAbbrevTitleCache(String abbrevTitleCache);
67

    
68
	/**
69
	 * Sets the {@link #getAbbrevTitleCache() abbreviated title cache}.
70
	 *
71
	 * @param abbrevTitleCache
72
	 * @param isProtected wether or not the cache should be protected. Usually one may
73
	 * want to set isProtected to <code>true</code>
74
	 */
75
	public void setAbbrevTitleCache(String abbrevTitleCache, boolean isProtected);
76

    
77

    
78
	/**
79
	 * If true the {@link #getAbbrevTitleCache() abbreviated title cache} is not computed
80
	 * on the fly but set by {@link #setAbbrevTitleCache(String)}.
81
	 * @see IIdentifiableEntity#isProtectedTitleCache()
82
	 * @return true if cache is protected
83
	 */
84
	public boolean isProtectedAbbrevTitleCache();
85

    
86
	/**
87
	 * Sets the protected flag for the {@link #getAbbrevTitleCache() abbreviated title cache}.
88
	 * @param protectedAbbrevTitleCache
89
	 */
90
	public void setProtectedAbbrevTitleCache(boolean protectedAbbrevTitleCache);
91

    
92
}
(13-13/41)