| /* |
| * 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.enhancer.servicesapi; |
| |
| import java.util.List; |
| |
| /** |
| * Accept requests for enhancing ContentItems, and processes them either |
| * synchronously or asynchronously (as decided by the enhancement engines, |
| * the job manager implementation, the execution plan provided by the |
| * {@link Chain} or by some additional configurations). |
| * <p> |
| * The progress of the enhancement process should be made accessible in the |
| * ContentItem's metadata. |
| */ |
| public interface EnhancementJobManager { |
| |
| /** |
| * Enhances the parsed contentItem by using the default enhancement |
| * Chain. |
| * Create relevant asynchronous requests or enhance content immediately. The |
| * result is not persisted right now. The caller is responsible for calling the |
| * {@link Store#put(ContentItem)} afterwards in case persistence is |
| * required. |
| * <p> |
| * TODO: define the expected semantics if asynchronous enhancements were to |
| * get implemented. |
| * @throws EnhancementException if the enhancement process failed |
| */ |
| void enhanceContent(ContentItem ci) throws EnhancementException; |
| |
| /** |
| * Processes the parsed {@link ContentItem} by using the |
| * {@link Chain#getExecutionPlan() execution plan} provided by the |
| * {@link Chain}. |
| * @param ci : ContentItem to be enhanced |
| * @param chain : The enhancement Chain used to process the content item |
| * @throws EnhancementException : if an Engine required by the Chain fails to |
| * process the ContentItem |
| * @throws ChainException : if the enhancement process failed |
| */ |
| void enhanceContent(ContentItem ci, Chain chain) throws EnhancementException; |
| |
| /** |
| * Return the unmodifiable list of active registered engine instance that |
| * can be used by the manager. |
| * @deprecated use the {@link EnhancementEngineManager} to get information |
| * about currently active Engines and the {@link ChainManager} to get active |
| * chains. This method will now return active engines of the default chain. |
| */ |
| @Deprecated |
| List<EnhancementEngine> getActiveEngines(); |
| |
| } |