
se.l4.vibe.probes.ValueReaders Maven / Gradle / Ivy
package se.l4.vibe.probes;
import se.l4.vibe.timer.TimerSnapshot;
public class ValueReaders
{
private static final ValueReader SAME = new ValueReader()
{
@Override
public Object read(Object object)
{
return object;
}
};
private static final ValueReader TIMER_TOTAL_MS = new ValueReader()
{
@Override
public Long read(TimerSnapshot object)
{
return object.getTotalTimeInMs();
}
};
private static final ValueReader TIMER_TOTAL_NS = new ValueReader()
{
@Override
public Long read(TimerSnapshot object)
{
return object.getTotalTimeInNs();
}
};
private static final ValueReader TIMER_SAMPLES = new ValueReader()
{
@Override
public Long read(TimerSnapshot object)
{
return object.getSamples();
}
};
private ValueReaders()
{
}
public static ValueReader same()
{
return SAME;
}
public static ValueReader forTimerSnapshotTotalTimeInMs()
{
return TIMER_TOTAL_MS;
}
public static ValueReader forTimerSnapshotTotalTimeInNs()
{
return TIMER_TOTAL_NS;
}
public static ValueReader forTimerSnapshotSamples()
{
return TIMER_SAMPLES;
}
/**
* Get a {@link Probe probe} that reads a value from the given object.
*
* @param object
* @param reader
* @return
*/
public static Probe valueReaderProbe(I object, ValueReader reader)
{
return new ValueReadingProbe(object, reader);
}
/**
* Get a {@link Probe probe} that reads a value from the result of the
* given probe.
*
* @param probe
* @param reader
* @return
*/
public static Probe valueReaderProbe(Probe probe, ValueReader reader)
{
return new ValueReadingProbeViaProbe(probe, reader);
}
private static class ValueReadingProbe
implements Probe
© 2015 - 2025 Weber Informatics LLC | Privacy Policy