package org.jactr.eclipse.production.view;
/*
* default logging
*/
import org.antlr.runtime.tree.CommonTree;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.jactr.tools.analysis.production.ProductionAnalyzer;
public class AnalyzerJob extends Job
{
/**
* Logger definition
*/
static private final transient Log LOGGER = LogFactory
.getLog(AnalyzerJob.class);
private CommonTree _modelDescriptor;
private ProductionAnalyzer _analyzer;
private ProductionSequenceView _view;
public AnalyzerJob(ProductionSequenceView view, CommonTree modelDescriptor)
{
super("Production Sequence Analyzer");
_modelDescriptor = modelDescriptor;
_analyzer = new ProductionAnalyzer();
_view = view;
}
@Override
protected IStatus run(IProgressMonitor monitor)
{
if (LOGGER.isDebugEnabled()) LOGGER.debug("Analzing " + _modelDescriptor);
_analyzer.setModelDescriptor(_modelDescriptor);
if (monitor.isCanceled()) return Status.CANCEL_STATUS;
_view.setProductionRelationships(_analyzer.getAnalyzer()
.getAllRelationships());
return Status.OK_STATUS;
}
}