package com.yammer.telemetry.tracing; public abstract class Sampling { public static final Sampling ON = new SamplingOn(); public static final Sampling OFF = new SamplingOff(); public abstract boolean trace(); public static Sampling valueOf(String samplerName) { if ("off".equalsIgnoreCase(samplerName)) return OFF; if ("on".equalsIgnoreCase(samplerName)) return ON; return null; } private static class SamplingOff extends Sampling { @Override public boolean trace() { return false; } } private static class SamplingOn extends Sampling { @Override public boolean trace() { return true; } } }