package com.isti.traceview.transformations;
import java.util.List;
import javax.swing.JFrame;
import com.isti.traceview.common.TimeInterval;
import com.isti.traceview.data.PlotDataProvider;
import com.isti.traceview.filters.IFilter;
/**
* Interface to represent abstract transformation. Transformation accepts list
* of traces and creates a new data product (for example PSD, Spectra) and
* passes the output for the display or storage
*
* @author Max Kokoulin
*/
public interface ITransformation {
/**
* Performs transformations
*
* @param input
* List of traces to process
* @param ti
* Time interval to define processed range
* @param filter
* Filter applied before transformation
* @param parentFrame
* Host frame
*/
public void transform(List<PlotDataProvider> input, TimeInterval ti, IFilter filter, Object configiration,
JFrame parentFrame);
/**
* Sets maximum amount of processed data
*/
public void setMaxDataLength(int dataLength);
/**
* Return name of transformation
*/
public String getName();
}