UNPKG

@moonset/executor

Version:
51 lines (50 loc) 1.69 kB
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[]; }