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
.common
;
14 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
17 public interface ISourceable
<T
extends IOriginalSource
> {
20 * Returns the set of original sources (citations) for this sourceable object
23 public Set
<T
> getSources();
26 * Adds a source to this object
29 public void addSource(T source
);
33 * Adds a source that is newly created by its components. If all components except for the
34 * type are <code>null</null>
36 * @param type the {@link OriginalSourceType type} of the source
37 * @param idInSource the id used in the source
38 * @param idNamespace the namespace for the id in the source
39 * @param citation the source as a {@link Reference reference}
40 * @param microReference the details (e.g. page number) in the reference
42 public T
addSource(OriginalSourceType type
, String id
, String idNamespace
, Reference citation
, String microCitation
);
46 * Removes a source from this object
49 public void removeSource(T source
);
52 * Adds a {@link IOriginalSource source} of {@link OriginalSourceType type} Import to this description element.
54 * @param idInSource the id used in the source
55 * @param idNamespace the namespace for the id in the source
56 * @param citation the source as a {@link Reference reference}
57 * @param microReference the details (e.g. page number) in the reference
58 * @param nameUsedInSource the taxon name used in the source
59 * @param originalNameString the name as text used in the source
61 public T
addImportSource(String id
, String idNamespace
, Reference
<?
> citation
, String microCitation
);