org.globus.cog.karajan.workflow.nodes.user
Class UserDefinedElement

java.lang.Object
  extended byorg.globus.cog.karajan.workflow.nodes.FlowNode
      extended byorg.globus.cog.karajan.workflow.nodes.FlowContainer
          extended byorg.globus.cog.karajan.workflow.nodes.Sequential
              extended byorg.globus.cog.karajan.workflow.nodes.AbstractSequentialWithArguments
                  extended byorg.globus.cog.karajan.workflow.nodes.user.UserDefinedElement
All Implemented Interfaces:
EventListener, ExtendedFlowElement, FlowElement, LoadListener, NonCacheable
Direct Known Subclasses:
ExplicitExecutionUDE, ParallelImplicitExecutionUDE, SequentialImplicitExecutionUDE

public abstract class UserDefinedElement
extends AbstractSequentialWithArguments
implements NonCacheable


Nested Class Summary
 
Nested classes inherited from class org.globus.cog.karajan.workflow.nodes.FlowNode
FlowNode.FNTP
 
Field Summary
static String ARGUMENTS_THREAD
           
static String BODY_THREAD
           
static String FNARGS
           
static String PREFIX
           
static ControlEventType START_BODY
           
 
Fields inherited from class org.globus.cog.karajan.workflow.nodes.AbstractSequentialWithArguments
commonArguments, QUOTED
 
Fields inherited from class org.globus.cog.karajan.workflow.nodes.Sequential
INDEX
 
Fields inherited from class org.globus.cog.karajan.workflow.nodes.FlowContainer
CALLER
 
Fields inherited from class org.globus.cog.karajan.workflow.nodes.FlowNode
debug, startCount, TEXT, threadTracker
 
Constructor Summary
UserDefinedElement()
           
 
Method Summary
protected  void checkBothArgs(VariableStack stack)
           
protected  boolean checkFirstArg(VariableStack stack)
           
protected  void controlEvent(ControlEvent e)
           
protected  void executeChildren(VariableStack stack)
           
 String[] getArguments()
           
 String[] getChannels()
           
 String getElementType()
           
protected  boolean getKmode()
           
 String[] getOptargs()
           
 int getSkip()
           
 boolean hasChannels()
           
 boolean hasNamed()
           
 boolean hasNestedArgs()
           
 boolean hasVargs()
           
protected  void initializeStatic()
           
protected  boolean isArgumentsThread(VariableStack stack)
           
protected  void notificationEvent(NotificationEvent e)
           
 void post(VariableStack stack)
           
 void pre(VariableStack stack)
           
protected  void prepareInstanceArguments(VariableStack stack, Arguments fnargs)
           
 void setProperty(String name, Object value)
           
protected  void setUDEArguments(List args)
           
protected  void startArguments(VariableStack stack, UDEWrapper wrapper)
           
 void startBody(VariableStack stack, Arguments fnargs)
           
abstract  void startInstance(VariableStack stack, UDEWrapper wrapper)
           
 
Methods inherited from class org.globus.cog.karajan.workflow.nodes.AbstractSequentialWithArguments
argumentsEvaluated, checkArguments, getArgument, getArgument, getArgumentCount, getArgumentIndex, getArgumentNames, getArguments, getMaxArgIndex, getNonpropargs, getPropargs, getQuotedArgs, getSortedArgs, getVargs, getVargsAsArray, hasArgument, hasNestedArguments, hasVariableArguments, initializeArgs, newNameBindingVariableArguments, newVariableArguments, processArguments, setArguments, setArguments, setHasVargs, setNestedArgs, setNonpropargs, setQuotedArgs, setVargs
 
Methods inherited from class org.globus.cog.karajan.workflow.nodes.Sequential
executeSingle, exit, moreToExecute, startNext
 
Methods inherited from class org.globus.cog.karajan.workflow.nodes.FlowContainer
addChannel, execute, isOptimizable, setOptimize
 
Methods inherited from class org.globus.cog.karajan.workflow.nodes.FlowNode
abort, acceptsInlineText, addElement, checkClass, checkCompleted, checkFailed, complete, copy, echo, echo, elementCount, elements, end, event, executeErrorHandler, executeSimple, expandProperty, expandProperty, expandPropertyAsString, fail, fail, failIfNotDefined, failIfNull, failIfNull, failImmediately, failImmediately, failImmediately, fireControlEvent, fireMonitoringEvent, fireNotificationEvent, fireStatusMonitoringEvent, get_locator, getBooleanProperty, getBooleanProperty, getCanonicalType, getElement, getIntProperty, getIntProperty, getParent, getProjectNode, getProperty, getStringProperty, getTreeProperty, getVar, hasFrame, hashCode, hasProperty, isCheckpointable, isSimple, isSystemProperty, loadComplete, loadStarted, monitoringEvent, propertyNames, removeProperty, restart, restartElement, ret, ret, set_locator, setAcceptsInlineText, setCheckpointable, setElementType, setFrame, setParent, setProperty, setProperty, start, startElement, startElement, toString, verify
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

START_BODY

public static final ControlEventType START_BODY

FNARGS

public static final String FNARGS
See Also:
Constant Field Values

PREFIX

public static final String PREFIX
See Also:
Constant Field Values

ARGUMENTS_THREAD

public static final String ARGUMENTS_THREAD
See Also:
Constant Field Values

BODY_THREAD

public static final String BODY_THREAD
See Also:
Constant Field Values
Constructor Detail

UserDefinedElement

public UserDefinedElement()
Method Detail

initializeStatic

protected void initializeStatic()
Overrides:
initializeStatic in class AbstractSequentialWithArguments

pre

public void pre(VariableStack stack)
         throws ExecutionException
Overrides:
pre in class AbstractSequentialWithArguments
Throws:
ExecutionException

startInstance

public abstract void startInstance(VariableStack stack,
                                   UDEWrapper wrapper)
                            throws ExecutionException
Throws:
ExecutionException

startBody

public void startBody(VariableStack stack,
                      Arguments fnargs)
               throws ExecutionException
Throws:
ExecutionException

post

public void post(VariableStack stack)
          throws ExecutionException
Overrides:
post in class FlowContainer
Throws:
ExecutionException

prepareInstanceArguments

protected void prepareInstanceArguments(VariableStack stack,
                                        Arguments fnargs)
                                 throws ExecutionException
Throws:
ExecutionException

controlEvent

protected void controlEvent(ControlEvent e)
                     throws ExecutionException
Overrides:
controlEvent in class FlowNode
Throws:
ExecutionException

notificationEvent

protected void notificationEvent(NotificationEvent e)
                          throws ExecutionException
Overrides:
notificationEvent in class AbstractSequentialWithArguments
Throws:
ExecutionException

checkFirstArg

protected boolean checkFirstArg(VariableStack stack)
                         throws ExecutionException
Throws:
ExecutionException

checkBothArgs

protected void checkBothArgs(VariableStack stack)
                      throws ExecutionException
Throws:
ExecutionException

startArguments

protected void startArguments(VariableStack stack,
                              UDEWrapper wrapper)
                       throws ExecutionException
Throws:
ExecutionException

isArgumentsThread

protected boolean isArgumentsThread(VariableStack stack)

executeChildren

protected void executeChildren(VariableStack stack)
                        throws ExecutionException
Overrides:
executeChildren in class Sequential
Throws:
ExecutionException

setUDEArguments

protected void setUDEArguments(List args)

getElementType

public String getElementType()
Specified by:
getElementType in interface FlowElement
Overrides:
getElementType in class FlowNode

getArguments

public String[] getArguments()

getOptargs

public String[] getOptargs()

hasNamed

public boolean hasNamed()

hasNestedArgs

public boolean hasNestedArgs()

hasVargs

public boolean hasVargs()

getChannels

public String[] getChannels()

hasChannels

public boolean hasChannels()

getKmode

protected boolean getKmode()

getSkip

public int getSkip()

setProperty

public void setProperty(String name,
                        Object value)
Specified by:
setProperty in interface FlowElement
Overrides:
setProperty in class FlowNode