package org.kisst.gft.task;
import java.lang.reflect.Constructor;
import org.kisst.flow4j.BasicLinearFlow;
import org.kisst.gft.GftContainer;
import org.kisst.gft.action.Action;
import org.kisst.props4j.Props;
import org.kisst.util.ReflectionUtil;
public class BasicGftFlow extends BasicLinearFlow implements Action {
private final GftContainer gft;
public BasicGftFlow(GftContainer gft, Props props) {
super(props);
this.gft=gft;
}
//public BasicTaskDefinition getTaskDef() { return taskdef; }
public GftContainer getGft() { return gft; }
@Override protected Action myCreateAction(Class<?> clz, Props props) {
//Constructor<?> c=ReflectionUtil.getFirstCompatibleConstructor(clz, new Class<?>[] {BasicTaskDefinition.class, Props.class} );
//if (c!=null)
// return (Action) ReflectionUtil.createObject(c, new Object[] {taskdef, props} );
Constructor<?> c=ReflectionUtil.getConstructor(clz, new Class<?>[] {GftContainer.class, Props.class} );
if (c!=null)
return (Action) ReflectionUtil.createObject(c, new Object[] {gft, props} );
return super.myCreateAction(clz, props);
}
}