| /** |
| * 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.oodt.cas.workflow.repository; |
| |
| //OODT imports |
| import org.apache.oodt.cas.workflow.structs.Workflow; |
| import org.apache.oodt.cas.workflow.structs.WorkflowTask; |
| import org.apache.oodt.cas.workflow.structs.WorkflowCondition; |
| import org.apache.oodt.cas.workflow.structs.WorkflowTaskConfiguration; |
| import org.apache.oodt.cas.workflow.structs.exceptions.RepositoryException; |
| |
| //JDK imports |
| import java.util.List; |
| |
| /** |
| * |
| * A repository interface for obtaining {@link Workflow}s, and managing the |
| * information about their {@link WorkflowTask}s. |
| * |
| * @author mattmann |
| * @version $Revision$ |
| * |
| */ |
| public interface WorkflowRepository { |
| |
| /** |
| * <p> |
| * Returns a {@link Workflow} with the given <code>workflowName</code>. |
| * </p> |
| * |
| * @param workflowName |
| * The name of the {@link Workflow} to obtain. |
| * @return A {@link Workflow} with the specified name. |
| * @throws RepositoryException |
| * If any error occurs. |
| */ |
| public Workflow getWorkflowByName(String workflowName) |
| throws RepositoryException; |
| |
| /** |
| * <p> |
| * Returns a {@link Workflow} with the given <code>workflowId</code>. |
| * </p> |
| * |
| * @param workflowId |
| * The ID of the {@link Workflow} to obtain. |
| * @return A {@link Workflow} with the given ID. |
| * @throws RepositoryException |
| * If any error occurs. |
| */ |
| public Workflow getWorkflowById(String workflowId) throws RepositoryException; |
| |
| /** |
| * <p> |
| * Gets all {@link Workflow}s from the repository. |
| * </p> |
| * |
| * @return A {@link List} of all {@link Workflow}s in the repository. |
| * @throws RepositoryException |
| * If any error occurs. |
| */ |
| public List getWorkflows() throws RepositoryException; |
| |
| /** |
| * <p> |
| * Returns a {@link List} of {@link WorkflowTask}s associated with the |
| * specified {@link Workflow} identified by its <code>workflowId</code>. |
| * </p> |
| * |
| * @param workflowId |
| * The ID of the {@link Workflow} to obtain the {@link List} of |
| * {@link WorkflowTask}s for. |
| * @return A {@link List} of {@link WorkflowTask}s associated with the |
| * specified Workflow. |
| * @throws RepositoryException |
| * If any error occurs. |
| */ |
| public List getTasksByWorkflowId(String workflowId) |
| throws RepositoryException; |
| |
| /** |
| * <p> |
| * Returns a {@link List} of {@link WorkflowTask}s associated with the |
| * specified {@link Workflow} identified by its <code>workflowName</code>. |
| * </p> |
| * |
| * @param workflowName |
| * The Name of the {@link Workflow} to obtain the {@link List} of |
| * {@link WorkflowTask}s for. |
| * @return A {@link List} of {@link WorkflowTask}s associated with the |
| * specified Workflow. |
| * @throws RepositoryException |
| * If any error occurs. |
| */ |
| public List getTasksByWorkflowName(String workflowName) |
| throws RepositoryException; |
| |
| /** |
| * <p> |
| * Returns a {@link List} of {@link Workflow}s associated with the specified |
| * <code>eventName</code>. |
| * </p> |
| * |
| * @param eventName |
| * The name of the event to search for workflows for. </p> |
| * @return A {@link List} of {@link Workflow}s associated with the specified |
| * event. |
| * @throws RepositoryException |
| * If any error occurs. |
| */ |
| public List getWorkflowsForEvent(String eventName) throws RepositoryException; |
| |
| /** |
| * <p> |
| * Returns an ordered {@link List} of {@link WorkflowCondition}s associated |
| * with the given <code>taskName</code>. |
| * </p> |
| * |
| * @param taskName |
| * The taskName to obtain the conditions for. |
| * @return Returns a {@link List} of {@link WorkflowCondition}s associated |
| * with the given <code>taskName</code> |
| * @throws RepositoryException |
| * If any error occurs. |
| */ |
| public List getConditionsByTaskName(String taskName) |
| throws RepositoryException; |
| |
| /** |
| * <p> |
| * Returns an ordered {@link List} of {@link WorkflowCondition}s associated |
| * with the given <code>taskId</code>. |
| * </p> |
| * |
| * @param taskId |
| * The ID of the task to obtain the conditions for. |
| * @return Returns a {@link List} of {@link WorkflowCondition}s associated |
| * with the given <code>taskId</code> |
| * @throws RepositoryException |
| * If any error occurs. |
| */ |
| public List getConditionsByTaskId(String taskId) throws RepositoryException; |
| |
| /** |
| * <p> |
| * Gets the {@link WorkflowTaskConfiguration} metadata for the |
| * {@link WorkflowTask} with the given <code>taskId</code>. |
| * </p> |
| * |
| * @param taskId |
| * The ID of the {@link WorkflowTask} to get the |
| * {@link WorkflowTaskConfiguration} metadata for. |
| * @return The {@link WorkflowTaskConfiguration} metadata for the |
| * {@link WorkflowTask} with the given <code>taskId</code>. |
| * @throws RepositoryException |
| * If any error occurs. |
| */ |
| public WorkflowTaskConfiguration getConfigurationByTaskId(String taskId) |
| throws RepositoryException; |
| |
| /** |
| * <p> |
| * Returns the {@link WorkflowTask} with the given <code>taskId</code>. |
| * </p> |
| * |
| * @param taskId |
| * The ID of the WorkflowTask to return. |
| * @return the {@link WorkflowTask} with the given <code>taskId</code>. |
| * @throws RepositoryException |
| * If any error occurs. |
| */ |
| public WorkflowTask getWorkflowTaskById(String taskId) |
| throws RepositoryException; |
| |
| /** |
| * <p> |
| * Returns the {@link WorkflowCondition} with the given |
| * <code>conditionId</code>. |
| * </p> |
| * |
| * @param conditionId |
| * The ID of the WorkflowCondition to return. |
| * @return the {@link WorkflowCondition} with the given |
| * <code>conditionId</code>. |
| * @throws RepositoryException |
| * If any error occurs. |
| */ |
| public WorkflowCondition getWorkflowConditionById(String conditionId) |
| throws RepositoryException; |
| |
| /** |
| * <p> |
| * Gets a {@link List} of <code>Event</code>s that are registered in the |
| * Workflow Manager as having valid {@link Workflow}s mapped to their names. |
| * </p> |
| * |
| * @return a {@link List} of <code>Event</code>s that are registered in the |
| * Workflow Manager as having valid {@link Workflow}s mapped to their |
| * names. |
| * @throws RepositoryException |
| * If any error occurs. |
| */ |
| public List getRegisteredEvents() throws RepositoryException; |
| |
| /** |
| * Adds the specified new {@link Workflow} to this Repository. |
| * |
| * @param workflow |
| * The {@link Workflow} to add. |
| * @return The identifier of the new {@link Workflow} as defined by this |
| * repository. |
| * @throws RepositoryException |
| * If any error occurs. |
| */ |
| public String addWorkflow(Workflow workflow) throws RepositoryException; |
| |
| /** |
| * |
| * Gets the associated {@link WorkflowCondition}s for this {@link Workflow} |
| * specified by its <code>workflowId</code>. |
| * |
| * @param workflowId |
| * The Identifier of the {@link Workflow} to get the |
| * {@link WorkflowCondition}s for. |
| * |
| * @return A {@link List} of {@link WorkflowCondition}s for this |
| * {@link Workflow}. |
| * @throws RepositoryException |
| * If any error occurs. |
| */ |
| public List<WorkflowCondition> getConditionsByWorkflowId(String workflowId) |
| throws RepositoryException; |
| |
| |
| /** |
| * Adds the provided new {@link WorkflowTask} to the model repository. |
| * |
| * @param task The new {@link WorkflowTask} to add. |
| * @return The identifier of the new {@link WorkflowTask}. Calling this |
| * function and providing a task with its identifier already set will cause |
| * this function to return that same identifier back. |
| * @throws RepositoryException If any error occurs. |
| */ |
| public String addTask(WorkflowTask task) throws RepositoryException; |
| |
| /** |
| * Returns the {@link WorkflowTask} identified by the given taskId. |
| * |
| * @param taskId The identifier for the {@link WorkflowTask} to return. |
| * @return The {@link WorkflowTask} identified by the given taskId. |
| * @throws RepositoryException If any error occurs. |
| */ |
| public WorkflowTask getTaskById(String taskId) throws RepositoryException; |
| |
| } |