Project

General

Profile

Download (3.23 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.common.TimePeriod;
14

    
15

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

    
24
	public final String MICRO_REFERENCE_TOKEN = "@@MicroReference";
25
	
26
	/**
27
	 * Returns a formatted string containing the reference citation excluding
28
	 * authors but including the details as used in a {@link TaxonNameBase taxon name}.
29
	 */
30
	public String getNomenclaturalCitation(String  microReference);
31

    
32
	/**
33
	 * Returns a string representation for the year of publication / creation
34
	 * of a reference.
35
	 */
36
	public String getYear();
37

    
38
	public void setDatePublished(TimePeriod datePublished);
39
	
40
	
41
	/**
42
	 * Returns the cached value for the abbreviated representation of this reference.
43
	 * The abbreviated representation will normally use the {@link #getAbbrevTitle() 
44
	 * abbreviated title } instead of the {@link Reference#getTitle() full title}.
45
	 * The cache may be protected.
46
	 * @see #getAbbrevTitle()
47
	 * @see #getTitle()
48
	 * @see #isProtectedAbbrevTitleCache()
49
	 * @return the abbreviated representation of this reference
50
	 */
51
	//TODO discuss if we move all the abbreviated title methods to another interface, e.g. IReference 
52
	public String getAbbrevTitleCache();
53
	
54
	/**
55
	 * Sets the {@link #getAbbrevTitleCache() abbreviated title cache}
56
	 * 
57
	 * @param abbrevTitleCache
58
	 * @deprecated this method exists only for compliance with the java bean standard.
59
	 * It usually has little effect as it will not protect the cache. 
60
	 * Use {@link #setAbbrevTitleCache(String, boolean)} instead to protect the cache.
61
	 */
62
	public void setAbbrevTitleCache(String abbrevTitleCache);
63

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

    
73
	
74
	/**
75
	 * If true the {@link #getAbbrevTitleCache() abbreviated title cache} is not computed 
76
	 * on the fly but set by {@link #setAbbrevTitleCache(String)}.
77
	 * @see IIdentifiableEntity#isProtectedTitleCache()
78
	 * @return true if cache is protected
79
	 */
80
	public boolean isProtectedAbbrevTitleCache();
81
	
82
	/**
83
	 * Sets the protected flag for the {@link #getAbbrevTitleCache() abbreviated title cache}.
84
	 * @param protectedAbbrevTitleCache
85
	 */
86
	public void setProtectedAbbrevTitleCache(boolean protectedAbbrevTitleCache);
87
	
88

    
89
	/**
90
	 * The abbreviated title is the short form for the titlle. It is usually used
91
	 * as a representation of the title of references used in a nomenclatural 
92
	 * context.  
93
	 * @return
94
	 */
95
	public String getAbbrevTitle();
96

    
97
	/**
98
	 * Sets the {@link #getAbbrevTitle() abbreviated title}.
99
	 * @param abbrevTitle
100
	 */
101
	public void setAbbrevTitle(String abbrevTitle);
102
}
(10-10/28)