package jas2.job;

import java.util.Observer;
import java.io.*;
import jas2.util.tree.TreeItem;
import jas2.plugin.RunListener;

import jas2.jds.module.ModuleException;

/**
 * Basic job is implemented by AbstractJob, and extended by jas2.swingstudio.Job
 */
public interface BasicJob
{
	boolean			isChanged();
	void			close();
	//TreeItem[]		listItems(); // only needed by remote jobs.
	Object			getItem(TreeItem item);
	boolean			isRunnable();
	boolean			isRunning();
	boolean			isAtEndOfData();
	boolean			isAtStartOfData();
	boolean			isPersistent();
	int				eventsAnalyzed();
	int				eventsTotal();
	String			getName();

	// Note opening jobs is done by the JobWizard in different ways for local and remote jobs
	void closeDataset(TreeItem item);
	void setEventSource(TreeItem item);
	Class getEventDataClass(TreeItem item);
	
	void receiveMessage(Object message);

	// command processor methods:
	void			go(int i);
	/*
	 * go(0) is equivalent to run()
	 * go(1) is equivalent to step()
	 */
	void			kill();
	void			stop();
	void			rewind();
	void			loadObject(String name) throws LoaderException;
	void			unloadAll();
	void			setPersistent(boolean persist);

	hepjas.analysis.EventData getEvent();

	// This mask indicates that an item should become the "current item".
	final static int SHOWNOW     = 1<<19;
	// These masks are set in tree items describing job
	final static int DATASET     = 1<<16;
	final static int EVENTSOURCE = 1<<17;
	final static int CURRENTEVENTSOURCE = 1<<18;
	// This flag indicates the node ahs been changed
	final static int RESET = 1<<20;
}

 

Ads help maintain this website.