@moonset/executor
Version:
The Moonset Executor
51 lines (50 loc) • 1.69 kB
TypeScript
import * as model from '@moonset/model';
export declare abstract class Visitor<R, C> {
abstract visit(node: Node, context: C): R;
visitRoot(root: RootNode, context: C): R;
visitJob(job: JobNode, context: C): R;
visitInput(input: InputNode, context: C): R;
visitOutput(output: OutputNode, context: C): R;
visitTask(task: TaskNode, context: C): R;
}
export declare class SimpleVisitor<C> extends Visitor<void, C> {
visit(node: Node, context: C): void;
}
export declare abstract class Node {
accept<R, C>(visitor: Visitor<R, C>, context: C): R;
abstract getChildren(): Node[];
}
export declare class RootNode extends Node {
jobs: model.IJob[];
nodes: Node[];
constructor(properties: model.IJob[]);
accept<R, C>(visitor: Visitor<R, C>, context: C): R;
getChildren(): Node[];
}
export declare class JobNode extends Node {
job: model.IJob;
inputs: Node[];
outputs: Node[];
tasks: Node[];
constructor(properties: model.IJob);
accept<R, C>(visitor: Visitor<R, C>, context: C): R;
getChildren(): Node[];
}
export declare class InputNode extends Node {
dataset: model.IDataSet;
constructor(properties: model.IDataSet);
accept<R, C>(visitor: Visitor<R, C>, context: C): R;
getChildren(): Node[];
}
export declare class OutputNode extends Node {
dataset: model.IDataSet;
constructor(properties: model.IDataSet);
accept<R, C>(visitor: Visitor<R, C>, context: C): R;
getChildren(): Node[];
}
export declare class TaskNode extends Node {
task: model.ITask;
constructor(properties: model.ITask);
accept<R, C>(visitor: Visitor<R, C>, context: C): R;
getChildren(): Node[];
}