throw new NullPointerException("No ROI at: "+i+".");
throw new NullPointerException("No ROI at: "+i+"."); this.rois = rois;
    public ROIAnalyzer(ROI5D[] rois, DataSink source, PixelsDimensions dims)    {        //Fail-fast checks.  Failing in the middle of an analysis is generally        //very expensive.  (Think of rois[0]!=null and rois[1]==null and a        //200 timepoints image; assume rois[0] defines at least one 2D selection        //per timepoint...)        if (rois == null) throw new NullPointerException("No rois.");        if (rois.length == 0)             throw new IllegalArgumentException("No ROI defined.");        for (int i = 0; i < rois.length; ++i)             if (rois[i] == null)                throw new NullPointerException("No ROI at: "+i+".");                    //Constructor will check source and dims.        runner = new PointIterator(source, dims);    }