/** * Licensed to The Apereo Foundation under one or more contributor license * agreements. See the NOTICE file distributed with this work for additional * information regarding copyright ownership. * * * The Apereo Foundation licenses this file to you under the Educational * Community 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://opensource.org/licenses/ecl2.txt * * 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.opencastproject.workflow.api; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** * Describes an operation or action to be performed as part of a workflow. */ @XmlJavaTypeAdapter(WorkflowOperationDefinitionImpl.Adapter.class) public interface WorkflowOperationDefinition extends Configurable { String getId(); String getDescription(); /** The workflow to run if an exception is thrown while this operation is running. */ String getExceptionHandlingWorkflow(); /** * If true, this workflow will be put into a failed (or failing, if getExceptionHandlingWorkflow() is not null) state * when exceptions are thrown during an operation. */ boolean isFailWorkflowOnException(); /** * Returns either <code>null</code> or <code>true</code> to have the operation executed. Any other value is * interpreted as <code>false</code> and will skip the operation. * <p> * Usually, this will be a variable name such as <code>${foo}</code>, which will be replaced with its acutal value * once the workflow is executed. * <p> * If both <code>getExecuteCondition()</code> and <code>getSkipCondition</code> return a non-null value, the execute * condition takes precedence. * * @return the excecution condition. */ String getExecutionCondition(); /** * Returns either <code>null</code> or <code>true</code> to have the operation skipped. Any other value is interpreted * as <code>false</code> and will execute the operation. * <p> * Usually, this will be a variable name such as <code>${foo}</code>, which will be replaced with its actual value * once the workflow is executed. * <p> * If both <code>getExecuteCondition()</code> and <code>getSkipCondition</code> return a non-null value, the execute * condition takes precedence. * * @return the excecution condition. */ String getSkipCondition(); /** * Return the retry strategy * * @return the retry strategy */ RetryStrategy getRetryStrategy(); /** * Returns the number of attempts the workflow service will make to execute this operation. * * @return the maximum number of retries before failing */ int getMaxAttempts(); }