package org.signalml.domain.signal;
import static org.signalml.app.util.i18n.SvarogI18n._;
import org.apache.log4j.Logger;
import org.signalml.domain.signal.export.ISignalWriter;
import org.signalml.domain.signal.export.ascii.ASCIISignalWriter;
import org.signalml.domain.signal.export.eeglab.EEGLabSignalWriter;
import org.signalml.domain.signal.export.eeglab.MatlabSignalWriter;
import org.signalml.domain.signal.raw.RawSignalWriter;
public enum ExportFormatType {
RAW(_("RAW"), "bin", RawSignalWriter.class),
ASCII(_("ASCII"), "ascii", ASCIISignalWriter.class),
MATLAB(_("MATLAB"), "mat", MatlabSignalWriter.class),
EEGLab(_("EEGLab"), "set", EEGLabSignalWriter.class);
protected static final Logger logger = Logger.getLogger(ExportFormatType.class);
/**
* Value which is displayed in GUI when
* the user needs to choose one of these
* export types.
*/
private String displayValue;
/**
* The default extension used by the files that are exported to a specific format.
*/
private String defaultExtension;
/**
* The class of the signal writer that will be used to export a given format.
*/
private Class<? extends ISignalWriter> signalWriterClass;
private ExportFormatType(String displayValue, String defaultExtension, Class<? extends ISignalWriter> signalWriterClass) {
this.displayValue = displayValue;
this.defaultExtension = defaultExtension;
this.signalWriterClass = signalWriterClass;
}
public String getDefaultExtension() {
return defaultExtension;
}
public ISignalWriter getSignalWriter() {
try {
return signalWriterClass.getConstructor(null).newInstance();
} catch (Exception e) {
logger.error("", e);
}
return null;
}
@Override
public String toString() {
return displayValue;
}
}