Skip to content
Snippets Groups Projects
Commit 34bdfc35 authored by Daniel Felipe  GONZALEZ OBANDO's avatar Daniel Felipe GONZALEZ OBANDO
Browse files

Fix for sequence region batch: null pointer exception on declare input

parent 4f921d9c
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,7 @@ import java.util.List;
import icy.plugin.interface_.PluginBundled;
import icy.plugin.interface_.PluginLibrary;
import icy.roi.ROI;
import icy.sequence.Sequence;
import icy.sequence.SequenceUtil;
import plugins.adufour.blocks.lang.Batch;
......@@ -25,35 +26,51 @@ public class SequenceRegionBatch extends Batch implements SequenceBlock, PluginL
// important to not initialize here (even with null) and create them in getBatchSource() and getBatchElement()
protected VarSequence inputSequence;
protected VarSequence element;
protected final VarROIArray rois;
protected VarROIArray rois;
protected VarROIArray currentRoi;
public SequenceRegionBatch()
{
super();
}
rois = new VarROIArray("ROI(s)");
@Override
public VarROIArray getBatchSource()
{
if (rois == null)
rois = new VarROIArray("ROI(s)");
return rois;
}
@Override
public VarSequence getBatchSource()
public void declareInput(VarList inputMap)
{
// initialize variable if needed
super.declareInput(inputMap);
if (inputSequence == null)
inputSequence = new VarSequence("Sequence", null);
return inputSequence;
inputMap.add(inputSequence.getName(), inputSequence);
}
@Override
public VarSequence getBatchElement()
{
// initialize element if needed
if (element == null)
element = new VarSequence("Channel Sequence", null);
return element;
}
@Override
public void declareOutput(VarList outputMap)
{
super.declareOutput(outputMap);
if (currentRoi == null)
currentRoi = new VarROIArray("Current ROI");
outputMap.add(currentRoi.getName(), currentRoi);
}
@Override
public void initializeLoop()
{
......@@ -70,8 +87,9 @@ public class SequenceRegionBatch extends Batch implements SequenceBlock, PluginL
public void beforeIteration()
{
// set result in element
element.setValue(SequenceUtil.getSubSequence(inputSequence.getValue(),
rois.getValue()[getIterationCounter().getValue().intValue()]));
ROI roi = rois.getValue()[getIterationCounter().getValue().intValue()];
element.setValue(SequenceUtil.getSubSequence(inputSequence.getValue(), roi));
currentRoi.setValue(new ROI[] {roi});
}
@Override
......@@ -80,20 +98,12 @@ public class SequenceRegionBatch extends Batch implements SequenceBlock, PluginL
return getIterationCounter().getValue().intValue() >= rois.getValue().length;
}
@Override
public void declareInput(VarList inputMap)
{
super.declareInput(inputMap);
inputMap.add("ROIs", rois);
}
@Override
public void declareLoopVariables(List<Var<?>> loopVariables)
{
super.declareLoopVariables(loopVariables);
loopVariables.add(rois);
loopVariables.add(inputSequence);
loopVariables.add(currentRoi);
}
@Override
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment