/*******************************************************************************
 * Copyright (c) 2009,2010 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.stem.analysis.automaticexperiment;

import org.eclipse.stem.analysis.ErrorResult;

public class ErrorAnalysisAlgorithmEvent {
	public ErrorResult result;
	public ALGORITHM_STATUS status;
	public String [] parameterNames;
	public double [] parameterValues;
	
	public ErrorAnalysisAlgorithmEvent(ErrorResult res, ALGORITHM_STATUS status) {
		this.result = res;
		this.status = status;
	}
}
