001 package de.kiezatlas.service;
002
003 import de.kiezatlas.GeoObjects;
004 import de.kiezatlas.GroupedGeoObjects;
005
006 import de.deepamehta.core.RelatedTopic;
007 import de.deepamehta.core.Topic;
008 import de.deepamehta.core.service.PluginService;
009 import de.deepamehta.core.service.ResultList;
010
011 import java.util.List;
012
013
014
015 public interface KiezatlasService extends PluginService {
016
017 /**
018 * Returns the "Kiezatlas Website" topic the given geomap is assigned to.
019 */
020 Topic getWebsite(long geomapId);
021
022 /**
023 * Returns the facet types assigned to the given Kiezatlas Website.
024 */
025 ResultList<RelatedTopic> getFacetTypes(long websiteId);
026
027 /**
028 * Returns all Geo Objects assigned to the given geomap.
029 */
030 List<Topic> getGeoObjects(long geomapId);
031
032 /**
033 * Returns all Geo Objects assigned to the given category.
034 */
035 List<RelatedTopic> getGeoObjectsByCategory(long categoryId);
036
037 /**
038 * Searches for Geo Objects whose name match the search term (case-insensitive substring search).
039 *
040 * @param clock The logical clock value send back to the client (contained in GeoObjects).
041 * Allows the client to order asynchronous responses.
042 */
043 GeoObjects searchGeoObjects(String searchTerm, long clock);
044
045 /**
046 * Searches for categories that match the search term (case-insensitive substring search)
047 * and returns all Geo Objects of those categories, grouped by category.
048 *
049 * @param clock The logical clock value send back to the client (contained in GroupedGeoObjects).
050 * Allows the client to order asynchronous responses.
051 */
052 GroupedGeoObjects searchCategories(String searchTerm, long clock);
053 }