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 set of original sources (citations) for this sourceable object
29 public void addSources(Set
<T
> sources
);
31 * Adds a source to this object
34 public void addSource(T source
);
38 * Adds a source that is newly created by its components. If all components except for the
39 * type are <code>null</null>
41 * @param type the {@link OriginalSourceType type} of the source
42 * @param idInSource the id used in the source
43 * @param idNamespace the namespace for the id in the source
44 * @param citation the source as a {@link Reference reference}
45 * @param microReference the details (e.g. page number) in the reference
47 public T
addSource(OriginalSourceType type
, String id
, String idNamespace
, Reference citation
, String microCitation
);
51 * Removes a source from this object
54 public void removeSource(T source
);
57 * Adds a {@link IOriginalSource source} of {@link OriginalSourceType type} Import to this description element.
59 * @param idInSource the id used in the source
60 * @param idNamespace the namespace for the id in the source
61 * @param citation the source as a {@link Reference reference}
62 * @param microReference the details (e.g. page number) in the reference
64 public T
addImportSource(String id
, String idNamespace
, Reference
<?
> citation
, String microCitation
);