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 Kiezatlas criteria existing in the DB. ### Experimental 029 * A Kiezatlas criteria is a topic type whose URI starts with <code>ka2.criteria.</code> 030 * but does not end with <code>.facet</code>. 031 */ 032 List<Topic> getAllCriteria(); 033 034 /** 035 * Returns all Geo Objects assigned to the given geomap. 036 */ 037 List<Topic> getGeoObjects(long geomapId); 038 039 /** 040 * Returns all Geo Objects assigned to the given category. 041 */ 042 List<RelatedTopic> getGeoObjectsByCategory(long categoryId); 043 044 /** 045 * Searches for Geo Objects whose name match the search term (case-insensitive substring search). 046 * 047 * @param clock The logical clock value send back to the client (contained in GeoObjects). 048 * Allows the client to order asynchronous responses. 049 */ 050 GeoObjects searchGeoObjects(String searchTerm, long clock); 051 052 /** 053 * Searches for categories that match the search term (case-insensitive substring search) 054 * and returns all Geo Objects of those categories, grouped by category. 055 * 056 * @param clock The logical clock value send back to the client (contained in GroupedGeoObjects). 057 * Allows the client to order asynchronous responses. 058 */ 059 GroupedGeoObjects searchCategories(String searchTerm, long clock); 060 }