package org.signalml.domain.signal.raw; import org.signalml.domain.signal.samplesource.SampleSource; import org.signalml.domain.signal.samplesource.SampleSourceEngine; import org.signalml.math.ArrayOperations; public class ReversedSampleSource extends SampleSourceEngine { public ReversedSampleSource(SampleSource source) { super(source); } @Override public void getSamples(double[] target, int signalOffset, int count, int arrayOffset) { int newSignalOffset = source.getSampleCount() - signalOffset - count; double[] temporaryTarget = new double[count]; source.getSamples(temporaryTarget, newSignalOffset, count, 0); double[] reversedTempTarget = ArrayOperations.reverse(temporaryTarget); System.arraycopy(reversedTempTarget, 0, target, arrayOffset, count); } }