001 /**
002 * Copyright (c) 2010 Yahoo! Inc. All rights reserved.
003 * Licensed under the Apache License, Version 2.0 (the "License");
004 * you may not use this file except in compliance with the License.
005 * You may obtain a copy of the License at
006 *
007 * http://www.apache.org/licenses/LICENSE-2.0
008 *
009 * Unless required by applicable law or agreed to in writing, software
010 * distributed under the License is distributed on an "AS IS" BASIS,
011 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012 * See the License for the specific language governing permissions and
013 * limitations under the License. See accompanying LICENSE file.
014 */
015 package org.apache.oozie.workflow.lite;
016
017 import org.apache.oozie.workflow.WorkflowException;
018 import org.apache.oozie.ErrorCode;
019
020
021 //TODO javadoc
022 public abstract class DecisionNodeHandler extends NodeHandler {
023
024 @Override
025 public final boolean enter(Context context) throws WorkflowException {
026 start(context);
027 return false;
028 }
029
030 @Override
031 public final String exit(Context context) throws WorkflowException {
032 end(context);
033 String signalValue = context.getSignalValue();
034 if (context.getNodeDef().getTransitions().contains(signalValue)) {
035 return signalValue;
036 }
037 else {
038 throw new WorkflowException(ErrorCode.E0721, context.getNodeDef().getName(), signalValue);
039 }
040 }
041
042 public abstract void start(Context context) throws WorkflowException;
043
044 public abstract void end(Context context) throws WorkflowException;
045
046 }