Project

General

Profile

Download (2.29 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

    
11
package eu.etaxonomy.cdm.model.description;
12

    
13
import java.util.Set;
14

    
15
import eu.etaxonomy.cdm.model.common.DefinedTerm;
16
import eu.etaxonomy.cdm.model.location.NamedArea;
17
import eu.etaxonomy.cdm.model.taxon.Taxon;
18

    
19
/**
20
 * A common interface for all identification keys.
21
 * @author a.mueller
22
 * @created 22.07.2009
23
 */
24
public interface IIdentificationKey {
25
	
26
    /**
27
     * The geographic scope of the key. The geographic scope is defined by the areas 
28
     * covered by this key.
29
     * @return
30
     */
31
    public Set<NamedArea> getGeographicalScope();
32
    public void addGeographicalScope(NamedArea geographicalScope);
33
    public void removeGeographicalScope(NamedArea geographicalScope);
34
    
35
    /**
36
     * Taxonomic Scope is the taxon which you want the key to be attached to e.g. the genus or whatever.
37
     * In some cases you might have e.g. a key with multiple roots (i.e. three sister genera with 
38
     * no parent made explicit), which would result in more than one taxon in the taxonomic scope set. 
39
     * @return set of taxa
40
     */
41
    public Set<Taxon> getTaxonomicScope();
42
    public void addTaxonomicScope(Taxon taxon);
43
    public void removeTaxonomicScope(Taxon taxon);
44
 
45
    
46
    /**
47
     * The scope of this key, this may be the sex, stage or any other character defined via a subclass
48
     * of {@link Scope}
49
     */
50
    public Set<DefinedTerm> getScopeRestrictions();
51
    public void addScopeRestriction(DefinedTerm scope);
52
    public void removeScopeRestriction(DefinedTerm scope);
53
   
54
    
55
    /**
56
     * Covered taxa are the tips of the key. If the key is a flora key, and the genus (scope of 
57
     * the key) has species which occur elsewhere, then there would be some child taxa of the
58
     * root which are not covered. Keys in monographs would usually cover all taxa belonging 
59
     * to the root taxon.
60
     * @return set of taxa
61
     */
62
    public Set<Taxon> getCoveredTaxa();
63
    public void addCoveredTaxon(Taxon taxon);
64
    public void removeCoveredTaxon(Taxon taxon);
65
}
(12-12/36)