package org.signalml.plugin.bookreporter.method;
import org.apache.log4j.Logger;
import org.signalml.app.method.ApplicationIterableMethodDescriptor;
import org.signalml.app.method.ApplicationMethodManager;
import org.signalml.app.method.MethodConfigurer;
import org.signalml.app.method.MethodIterationResultConsumer;
import org.signalml.app.method.MethodPresetManager;
import org.signalml.app.method.MethodResultConsumer;
import org.signalml.method.Method;
import org.signalml.plugin.bookreporter.BookReporterPlugin;
import org.signalml.plugin.bookreporter.data.BookReporterData;
import org.signalml.plugin.bookreporter.data.BookReporterParameters;
import org.signalml.plugin.export.method.BaseMethodData;
import org.signalml.plugin.method.PluginAbstractMethodDescriptor;
import org.signalml.plugin.method.helper.PluginPresetManagerHelper;
/**
* @author piotr@develancer.pl
* (based on NewStagerMethodDescriptor)
*/
public class BookReporterMethodDescriptor extends PluginAbstractMethodDescriptor
implements ApplicationIterableMethodDescriptor {
protected static final Logger logger = Logger
.getLogger(BookReporterMethodDescriptor.class);
private BookReporterMethodConfigurer configurer;
private MethodPresetManager presetManager;
private BookReporterMethodConsumer consumer;
@Override
public MethodIterationResultConsumer getIterationConsumer(
ApplicationMethodManager methodManager) {
return null;
}
@Override
public String getIterationIconPath() {
return null;
}
@Override
public String getIterationName() {
return null;
}
@Override
public String getIconPath() {
return BookReporterPlugin.iconPath;
}
@Override
public BaseMethodData createData(ApplicationMethodManager methodManager) {
BookReporterData data = new BookReporterData();
// ConfigurationDefaults.setBookReporterParameters(data.getParameters());
// //FIXME: what's this?
return data;
}
@Override
public MethodConfigurer getConfigurer(ApplicationMethodManager methodManager) {
if (configurer == null) {
configurer = new BookReporterMethodConfigurer();
configurer.setPresetManager(getPresetManager(methodManager, false));
configurer.initialize(this.methodManager);
}
return configurer;
}
@Override
public MethodResultConsumer getConsumer(
ApplicationMethodManager methodManager) {
if (consumer == null) {
consumer = new BookReporterMethodConsumer();
consumer.initialize(this.methodManager);
}
return consumer;
}
@Override
public Method getMethod() {
return this.methodManager.getMethodConfig().getMethod();
}
@Override
public String getName() {
return "";
}
@Override
public MethodPresetManager getPresetManager(
ApplicationMethodManager methodManager, boolean existingOnly) {
if (presetManager == null && !existingOnly) {
presetManager = PluginPresetManagerHelper.GetPresetForMethod(
methodManager, this.methodManager, this.getMethod()
.getName(), BookReporterParameters.class);
}
return presetManager;
}
}