/** Converts the context to a Span object after decorating it for propagation */ public Span toSpan(TraceContext context) { if (context == null) throw new NullPointerException("context == null"); if (alwaysSampleLocal) { int flags = InternalPropagation.instance.flags(context); if ((flags & FLAG_SAMPLED_LOCAL) != FLAG_SAMPLED_LOCAL) { context = InternalPropagation.instance.withFlags(context, flags | FLAG_SAMPLED_LOCAL); } } // decorating here addresses join, new traces or children and ad-hoc trace contexts return _toSpan(propagationFactory.decorate(context)); }
TraceContextOrSamplingFlags withFlags(int flags) { switch (type) { case 1: TraceContext context = InternalPropagation.instance.withFlags((TraceContext) value, flags); return new TraceContextOrSamplingFlags(type, context, extra); case 2: TraceIdContext traceIdContext = idContextWithFlags(flags); return new TraceContextOrSamplingFlags(type, traceIdContext, extra); case 3: SamplingFlags samplingFlags = SamplingFlags.toSamplingFlags(flags); if (extra.isEmpty()) return create(samplingFlags); return new TraceContextOrSamplingFlags(type, samplingFlags, extra); } throw new AssertionError("programming error"); }
/** Converts the context to a Span object after decorating it for propagation */ public Span toSpan(TraceContext context) { if (context == null) throw new NullPointerException("context == null"); if (alwaysSampleLocal) { int flags = InternalPropagation.instance.flags(context); if ((flags & FLAG_SAMPLED_LOCAL) != FLAG_SAMPLED_LOCAL) { context = InternalPropagation.instance.withFlags(context, flags | FLAG_SAMPLED_LOCAL); } } // decorating here addresses join, new traces or children and ad-hoc trace contexts return _toSpan(propagationFactory.decorate(context)); }
TraceContextOrSamplingFlags withFlags(int flags) { switch (type) { case 1: TraceContext context = InternalPropagation.instance.withFlags((TraceContext) value, flags); return new TraceContextOrSamplingFlags(type, context, extra); case 2: TraceIdContext traceIdContext = idContextWithFlags(flags); return new TraceContextOrSamplingFlags(type, traceIdContext, extra); case 3: SamplingFlags samplingFlags = SamplingFlags.toSamplingFlags(flags); if (extra.isEmpty()) return create(samplingFlags); return new TraceContextOrSamplingFlags(type, samplingFlags, extra); } throw new AssertionError("programming error"); }