001 package de.deepamehta.plugins.facets.service; 002 003 import de.deepamehta.core.DeepaMehtaObject; 004 import de.deepamehta.core.RelatedTopic; 005 import de.deepamehta.core.Topic; 006 import de.deepamehta.core.model.TopicModel; 007 import de.deepamehta.core.service.ClientState; 008 import de.deepamehta.core.service.Directives; 009 import de.deepamehta.core.service.PluginService; 010 011 import java.util.List; 012 013 014 015 public interface FacetsService extends PluginService { 016 017 Topic getFacet(long topicId, String facetTypeUri); 018 019 /** 020 * Retrieves a facet. 021 * 022 * @param object The facetted object: a topic, association, a type ... 023 * @param facetTypeUri URI of the facet type. 024 * 025 * @return The retrieved facet. 026 */ 027 Topic getFacet(DeepaMehtaObject object, String facetTypeUri); 028 029 // --- 030 031 /** 032 * Retrieves a multi-facet. 033 * 034 * @param object The facetted object: a topic, association, a type ... 035 * @param facetTypeUri URI of the facet type. 036 * 037 * @return The retrieved multi-facet. 038 */ 039 List<RelatedTopic> getFacets(DeepaMehtaObject object, String facetTypeUri); 040 041 // --- 042 043 void addFacetTypeToTopic(long topicId, String facetTypeUri); 044 045 // --- 046 047 /** 048 * Updates a facet. 049 * 050 * @param object The facetted object: a topic, association, a type ... 051 * @param facetTypeUri URI of the facet type. 052 * @param facetValue The new facet value. 053 * @param directives Must be not null at least for aggregated facets ### FIXME: directives are ignored 054 */ 055 void updateFacet(DeepaMehtaObject object, String facetTypeUri, TopicModel facetValue, 056 ClientState clientState, Directives directives); 057 058 /** 059 * Updates a multi-facet. 060 * 061 * @param object The facetted object: a topic, association, a type ... 062 * @param facetTypeUri URI of the facet type. 063 * @param facetValues The new facet values. 064 * @param directives Must be not null at least for aggregated facets ### FIXME: directives are ignored 065 */ 066 void updateFacets(DeepaMehtaObject object, String facetTypeUri, List<? extends TopicModel> facetValues, 067 ClientState clientState, Directives directives); 068 069 // --- 070 071 boolean hasFacet(long topicId, String facetTypeUri, long facetTopicId); 072 }