class ProbabilisticSamplingPreExecutionInterceptor extends PreExecutionSpanInterceptor {

	@Override
	public void interceptReport(PreExecutionInterceptorContext context) {
		final SpanContextInformation spanContext = context.getSpanContext();
		final BitSet sampleDecisions;
		final String operationType = spanContext.getOperationType();
		if (sampleDecisionsByType.containsKey(operationType)) {
			sampleDecisions = sampleDecisionsByType.get(operationType);
		} else if (isRoot(context.getSpanContext().getSpanWrapper())) {
			sampleDecisions = defaultSampleDecisions;
		} else {
			return;
		}
		if (sampleDecisions != null && !isSampled(sampleDecisions, spanCounter)) {
			context.shouldNotReport(getClass());
		}
	}

}