/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.stanbol.entityhub.servicesapi.site; import java.io.InputStream; import java.util.Collection; import java.util.Dictionary; import org.apache.stanbol.entityhub.servicesapi.model.Representation; import org.apache.stanbol.entityhub.servicesapi.model.Entity; import org.apache.stanbol.entityhub.servicesapi.query.FieldQuery; import org.apache.stanbol.entityhub.servicesapi.query.QueryResultList; public interface SiteManager { /** * Returns if a site with the parsed id is referenced * @param baseUri the base URI * @return <code>true</code> if a site with the parsed ID is present. * Otherwise <code>false</code>. */ boolean isReferred(String id); /** * Getter for the referenced site based on the id * @param baseUri the base URI of the referred Site * @return the {@link Site} or <code>null</code> if no site is * present for the parsed base ID. */ Site getSite(String id); /** * Getter for Sites that manages entities with the given ID. A Site can * define a list of prefixes of Entities ID it manages. This method can * be used to retrieve all the Site that may be able to dereference the * parsed entity id * @param entityUri the ID of the entity * @return A list of referenced sites that may manage the entity in question. */ Collection<Site> getSitesByEntityPrefix(String entityUri); /** * Getter for the Entity referenced by the parsed ID. This method will search * all referenced sites * @param id the id of the entity * @return the Sign or <code>null</code> if not found */ Entity getEntity(String reference); /** * Returns the Entities that confirm to the parsed Query * @param query the query * @return the id's of Entities */ QueryResultList<Entity> findEntities(FieldQuery query); /** * Searches for Entities based on the parsed query and returns representations * including the selected fields and filtered values * @param query The query * @return The representations including selected fields/values */ QueryResultList<Representation> find(FieldQuery query); /** * Searches for Entities based on the parsed query and returns the ids. * @param query The query * @return the ids of the selected entities */ QueryResultList<String> findIds(FieldQuery query); /** * Getter for the content of the entity * @param entity the id of the entity * @param contentType the content type * @return the content as {@link InputStream} or <code>null</code> if no * entity with this ID is known by the Entityhub or no representation for * the requested entity is available for the parsed content type */ InputStream getContent(String entity,String contentType); /** * Getter for the Id's of all active referenced sites * @return Unmodifiable collections of the id#s of all referenced sites */ Collection<String> getSiteIds(); }