// 
// Decompiled by Procyon v0.6.0
// 

package io.sentry.opentelemetry;

import io.sentry.util.SpanUtils;
import java.util.Collections;
import io.sentry.SentryLevel;
import io.sentry.ILogger;
import io.sentry.NoOpLogger;
import io.sentry.SentryOpenTelemetryMode;
import io.sentry.util.LoadClass;
import java.util.Iterator;
import java.util.List;
import io.sentry.util.Platform;
import org.jetbrains.annotations.NotNull;
import io.sentry.SentryOptions;
import org.jetbrains.annotations.ApiStatus;

@ApiStatus.Internal
public final class OpenTelemetryUtil
{
    @ApiStatus.Internal
    public static void applyIgnoredSpanOrigins(@NotNull final SentryOptions options) {
        if (Platform.isJvm()) {
            final List<String> ignored = ignoredSpanOrigins(options);
            for (final String origin : ignored) {
                options.addIgnoredSpanOrigin(origin);
            }
        }
    }
    
    @ApiStatus.Internal
    public static void updateOpenTelemetryModeIfAuto(@NotNull final SentryOptions options, @NotNull final LoadClass loadClass) {
        if (!Platform.isJvm()) {
            return;
        }
        final SentryOpenTelemetryMode openTelemetryMode = options.getOpenTelemetryMode();
        if (SentryOpenTelemetryMode.AUTO.equals(openTelemetryMode)) {
            if (loadClass.isClassAvailable("io.sentry.opentelemetry.agent.AgentMarker", NoOpLogger.getInstance())) {
                options.getLogger().log(SentryLevel.DEBUG, "openTelemetryMode has been inferred from AUTO to AGENT", new Object[0]);
                options.setOpenTelemetryMode(SentryOpenTelemetryMode.AGENT);
                return;
            }
            if (loadClass.isClassAvailable("io.sentry.opentelemetry.agent.AgentlessMarker", NoOpLogger.getInstance())) {
                options.getLogger().log(SentryLevel.DEBUG, "openTelemetryMode has been inferred from AUTO to AGENTLESS", new Object[0]);
                options.setOpenTelemetryMode(SentryOpenTelemetryMode.AGENTLESS);
                return;
            }
            if (loadClass.isClassAvailable("io.sentry.opentelemetry.agent.AgentlessSpringMarker", NoOpLogger.getInstance())) {
                options.getLogger().log(SentryLevel.DEBUG, "openTelemetryMode has been inferred from AUTO to AGENTLESS_SPRING", new Object[0]);
                options.setOpenTelemetryMode(SentryOpenTelemetryMode.AGENTLESS_SPRING);
            }
        }
    }
    
    @NotNull
    private static List<String> ignoredSpanOrigins(@NotNull final SentryOptions options) {
        final SentryOpenTelemetryMode openTelemetryMode = options.getOpenTelemetryMode();
        if (SentryOpenTelemetryMode.OFF.equals(openTelemetryMode)) {
            return Collections.emptyList();
        }
        return SpanUtils.ignoredSpanOriginsForOpenTelemetry(openTelemetryMode);
    }
}
