- fully implemented deep delete (child derivates)
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / ILocationService.java
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.api.service;
12
13 import java.util.List;
14
15 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
16 import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
17 import eu.etaxonomy.cdm.model.common.TermVocabulary;
18 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
19 import eu.etaxonomy.cdm.model.location.NamedArea;
20 import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
21 import eu.etaxonomy.cdm.model.location.NamedAreaType;
22
23 /**
24 * @author n.hoffman
25 * @created 08.04.2009
26 * @version 1.0
27 */
28 public interface ILocationService extends IService<DefinedTermBase> {
29
30
31 public static enum NamedAreaVocabularyType{
32 TDWG_AREA, COUNTRY, WATERBODY, CONTINENT
33 }
34
35 /**
36 * Returns a list of NamedArea Types "TDWG Areas", "ISO Country Codes"
37 *
38 * @return
39 */
40 public List<NamedAreaVocabularyType> getNamedAreaVocabularyTypes();
41
42 /**
43 * - these would be top-level areas for nested area vocabularies, e.g. North America and Europe, but NOT USA, Germany - alternatively:
44 *
45 * @param vocabularyType
46 * @return
47 * @deprecated use TermService#getVocabulary(VocabularyType) instead
48 */
49 public OrderedTermVocabulary<NamedArea> getNamedAreaVocabulary(NamedAreaVocabularyType vocabularyType);
50
51 /**
52 *
53 * @return
54 * @deprecated use TermService#getVocabulary(VocabularyType) instead
55 */
56 public TermVocabulary<NamedAreaType> getNamedAreaTypeVocabulary();
57
58 /**
59 * @return
60 * @deprecated use TermService#getVocabulary(VocabularyType) instead
61 */
62 public OrderedTermVocabulary<NamedAreaLevel> getNamedAreaLevelVocabulary();
63
64 /**
65 *
66 * @return
67 * @deprecated use TermService#getVocabulary(VocabularyType) instead
68 */
69 public OrderedTermVocabulary<PresenceAbsenceTerm> getPresenceAbsenceTermVocabulary();
70
71 /**
72 *
73 */
74 public List<NamedArea> getTopLevelNamedAreasByVocabularyType(NamedAreaVocabularyType vocabularyType);
75 }