001 /*
002 * Copyright 1999-2001,2004 The Apache Software Foundation.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016
017 package org.apache.commons.workflow;
018
019
020 /**
021 * <p><strong>Owner</strong> represents the common characteristics of Activities
022 * and Blocks (that is, Steps that allow nested Steps, such as those that
023 * implementat conditionals and iteration).</p>
024 *
025 * @version $Revision: 155475 $ $Date: 2005-02-26 13:31:11 +0000 (Sat, 26 Feb 2005) $
026 * @author Craig R. McClanahan
027 */
028
029 public interface Owner {
030
031
032 // ------------------------------------------------------------- Properties
033
034
035 /**
036 * Return the first Step associated with this Activity or Block.
037 */
038 public Step getFirstStep();
039
040
041 /**
042 * Return the last Step associated with this Activity or Block.
043 */
044 public Step getLastStep();
045
046
047 // --------------------------------------------------------- Public Methods
048
049
050 /**
051 * Add a new Step to the end of the sequence of Steps associated with
052 * this Activity or Block.
053 *
054 * @param step The new step to be added
055 */
056 public void addStep(Step step);
057
058
059 /**
060 * Clear any existing Steps associated with this Activity or Block.
061 */
062 public void clearSteps();
063
064
065 /**
066 * Return the identified Step from our current Activity or Block,
067 * if it exists. Otherwise, return <code>null</code>.
068 *
069 * @param id Identifier of the desired Step
070 */
071 public Step findStep(String id);
072
073
074 /**
075 * Return the set of Steps associated with this Activity or Block.
076 */
077 public Step[] getSteps();
078
079
080 /**
081 * Set the set of Steps associated with this Activity or Block,
082 * replacing any existing ones.
083 *
084 * @param steps The new set of steps.
085 */
086 public void setSteps(Step steps[]);
087
088
089 }