package org.signalml.plugin.newstager.logic.book.tag;
import java.util.Collection;
import java.util.LinkedList;
import org.signalml.plugin.data.tag.IPluginTagDef;
import org.signalml.plugin.domain.montage.PluginChannel;
import org.signalml.plugin.domain.montage.PluginChannelAccessHelper;
import org.signalml.plugin.exception.PluginAlgorithmDataException;
import org.signalml.plugin.newstager.data.book.NewStagerBookSample;
import org.signalml.plugin.newstager.data.tag.NewStagerBookAtomTagBuilderData;
import org.signalml.plugin.newstager.data.tag.NewStagerHelperTagSample;
import org.signalml.plugin.newstager.logic.book.tag.helper.INewStagerBookAtomPrimaryTagHelper;
public abstract class NewStagerPrimaryTagBuilder extends NewStagerAbstractTagBuilder {
private INewStagerBookAtomPrimaryTagHelper helper;
private int channel;
public NewStagerPrimaryTagBuilder(NewStagerBookAtomTagBuilderData data) {
super(data);
this.tags = new LinkedList<IPluginTagDef>();
this.helper = this.getConverter();
try {
this.channel = PluginChannelAccessHelper.GetChannelNumber(data.channelMap, PluginChannel.C3, null);
} catch (PluginAlgorithmDataException e) {
this.channel = -1;
}
}
@Override
public boolean process(NewStagerBookSample sample) {
if (this.channel == -1) {
return false;
}
Collection<NewStagerHelperTagSample> tagSamples = this.helper.convertToTagSamples(sample);
NewStagerBookAtomTagCreator tagCreator = data.tagCreator;
for (NewStagerHelperTagSample tagSample : tagSamples) {
this.tags.add(tagCreator.createChannelTag(tagSample.offset, tagSample.length, this.channel)); //TODO
}
return true; //TODO
}
protected abstract INewStagerBookAtomPrimaryTagHelper getConverter();
}