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 }