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

package io.sentry;

import io.sentry.featureflags.NoOpFeatureFlagBuffer;
import io.sentry.featureflags.IFeatureFlagBuffer;
import io.sentry.protocol.FeatureFlags;
import io.sentry.internal.eventprocessor.EventProcessorAndOrder;
import java.util.Collection;
import io.sentry.protocol.Contexts;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayDeque;
import java.util.Queue;
import java.util.ArrayList;
import java.util.List;
import io.sentry.protocol.Request;
import io.sentry.protocol.SentryId;
import org.jetbrains.annotations.ApiStatus;
import io.sentry.protocol.User;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.NotNull;
import io.sentry.util.LazyEvaluator;

public final class NoOpScope implements IScope
{
    private static final NoOpScope instance;
    @NotNull
    private final LazyEvaluator<SentryOptions> emptyOptions;
    
    private NoOpScope() {
        this.emptyOptions = new LazyEvaluator<SentryOptions>(() -> SentryOptions.empty());
    }
    
    public static NoOpScope getInstance() {
        return NoOpScope.instance;
    }
    
    @Nullable
    @Override
    public SentryLevel getLevel() {
        return null;
    }
    
    @Override
    public void setLevel(@Nullable final SentryLevel level) {
    }
    
    @Nullable
    @Override
    public String getTransactionName() {
        return null;
    }
    
    @Override
    public void setTransaction(@NotNull final String transaction) {
    }
    
    @Nullable
    @Override
    public ISpan getSpan() {
        return null;
    }
    
    @Override
    public void setActiveSpan(@Nullable final ISpan span) {
    }
    
    @Override
    public void setTransaction(@Nullable final ITransaction transaction) {
    }
    
    @Nullable
    @Override
    public User getUser() {
        return null;
    }
    
    @Override
    public void setUser(@Nullable final User user) {
    }
    
    @ApiStatus.Internal
    @Nullable
    @Override
    public String getScreen() {
        return null;
    }
    
    @ApiStatus.Internal
    @Override
    public void setScreen(@Nullable final String screen) {
    }
    
    @NotNull
    @Override
    public SentryId getReplayId() {
        return SentryId.EMPTY_ID;
    }
    
    @Override
    public void setReplayId(@Nullable final SentryId replayId) {
    }
    
    @Nullable
    @Override
    public Request getRequest() {
        return null;
    }
    
    @Override
    public void setRequest(@Nullable final Request request) {
    }
    
    @ApiStatus.Internal
    @NotNull
    @Override
    public List<String> getFingerprint() {
        return new ArrayList<String>();
    }
    
    @Override
    public void setFingerprint(@NotNull final List<String> fingerprint) {
    }
    
    @ApiStatus.Internal
    @NotNull
    @Override
    public Queue<Breadcrumb> getBreadcrumbs() {
        return new ArrayDeque<Breadcrumb>();
    }
    
    @Override
    public void addBreadcrumb(@NotNull final Breadcrumb breadcrumb, @Nullable final Hint hint) {
    }
    
    @Override
    public void addBreadcrumb(@NotNull final Breadcrumb breadcrumb) {
    }
    
    @Override
    public void clearBreadcrumbs() {
    }
    
    @Override
    public void clearTransaction() {
    }
    
    @Nullable
    @Override
    public ITransaction getTransaction() {
        return null;
    }
    
    @Override
    public void clear() {
    }
    
    @ApiStatus.Internal
    @NotNull
    @Override
    public Map<String, String> getTags() {
        return new HashMap<String, String>();
    }
    
    @Override
    public void setTag(@Nullable final String key, @Nullable final String value) {
    }
    
    @Override
    public void removeTag(@Nullable final String key) {
    }
    
    @ApiStatus.Internal
    @NotNull
    @Override
    public Map<String, Object> getExtras() {
        return new HashMap<String, Object>();
    }
    
    @Override
    public void setExtra(@Nullable final String key, @Nullable final String value) {
    }
    
    @Override
    public void removeExtra(@Nullable final String key) {
    }
    
    @NotNull
    @Override
    public Contexts getContexts() {
        return new Contexts();
    }
    
    @Override
    public void setContexts(@Nullable final String key, @Nullable final Object value) {
    }
    
    @Override
    public void setContexts(@Nullable final String key, @Nullable final Boolean value) {
    }
    
    @Override
    public void setContexts(@Nullable final String key, @Nullable final String value) {
    }
    
    @Override
    public void setContexts(@Nullable final String key, @Nullable final Number value) {
    }
    
    @Override
    public void setContexts(@Nullable final String key, @Nullable final Collection<?> value) {
    }
    
    @Override
    public void setContexts(@Nullable final String key, @Nullable final Object[] value) {
    }
    
    @Override
    public void setContexts(@Nullable final String key, @Nullable final Character value) {
    }
    
    @Override
    public void removeContexts(@Nullable final String key) {
    }
    
    @ApiStatus.Internal
    @NotNull
    @Override
    public List<Attachment> getAttachments() {
        return new ArrayList<Attachment>();
    }
    
    @Override
    public void addAttachment(@NotNull final Attachment attachment) {
    }
    
    @Override
    public void clearAttachments() {
    }
    
    @ApiStatus.Internal
    @NotNull
    @Override
    public List<EventProcessor> getEventProcessors() {
        return new ArrayList<EventProcessor>();
    }
    
    @ApiStatus.Internal
    @NotNull
    @Override
    public List<EventProcessorAndOrder> getEventProcessorsWithOrder() {
        return new ArrayList<EventProcessorAndOrder>();
    }
    
    @Override
    public void addEventProcessor(@NotNull final EventProcessor eventProcessor) {
    }
    
    @ApiStatus.Internal
    @Nullable
    @Override
    public Session withSession(final Scope.IWithSession sessionCallback) {
        return null;
    }
    
    @ApiStatus.Internal
    @Nullable
    @Override
    public Scope.SessionPair startSession() {
        return null;
    }
    
    @ApiStatus.Internal
    @Nullable
    @Override
    public Session endSession() {
        return null;
    }
    
    @ApiStatus.Internal
    @Override
    public void withTransaction(final Scope.IWithTransaction callback) {
    }
    
    @ApiStatus.Internal
    @NotNull
    @Override
    public SentryOptions getOptions() {
        return this.emptyOptions.getValue();
    }
    
    @ApiStatus.Internal
    @Nullable
    @Override
    public Session getSession() {
        return null;
    }
    
    @ApiStatus.Internal
    @Override
    public void clearSession() {
    }
    
    @ApiStatus.Internal
    @Override
    public void setPropagationContext(@NotNull final PropagationContext propagationContext) {
    }
    
    @ApiStatus.Internal
    @NotNull
    @Override
    public PropagationContext getPropagationContext() {
        return new PropagationContext();
    }
    
    @ApiStatus.Internal
    @NotNull
    @Override
    public PropagationContext withPropagationContext(final Scope.IWithPropagationContext callback) {
        return new PropagationContext();
    }
    
    @Override
    public void setLastEventId(@NotNull final SentryId lastEventId) {
    }
    
    @NotNull
    @Override
    public IScope clone() {
        return getInstance();
    }
    
    @NotNull
    @Override
    public SentryId getLastEventId() {
        return SentryId.EMPTY_ID;
    }
    
    @Override
    public void bindClient(@NotNull final ISentryClient client) {
    }
    
    @NotNull
    @Override
    public ISentryClient getClient() {
        return NoOpSentryClient.getInstance();
    }
    
    @Override
    public void assignTraceContext(@NotNull final SentryEvent event) {
    }
    
    @Override
    public void setSpanContext(@NotNull final Throwable throwable, @NotNull final ISpan span, @NotNull final String transactionName) {
    }
    
    @Override
    public void replaceOptions(@NotNull final SentryOptions options) {
    }
    
    @Override
    public void addFeatureFlag(@Nullable final String flag, @Nullable final Boolean result) {
    }
    
    @Nullable
    @Override
    public FeatureFlags getFeatureFlags() {
        return null;
    }
    
    @NotNull
    @Override
    public IFeatureFlagBuffer getFeatureFlagBuffer() {
        return NoOpFeatureFlagBuffer.getInstance();
    }
    
    static {
        instance = new NoOpScope();
    }
}
