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

package io.sentry;

import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.NotNull;

public final class SentryAttribute
{
    @NotNull
    private final String name;
    @Nullable
    private final SentryAttributeType type;
    @Nullable
    private final Object value;
    
    private SentryAttribute(@NotNull final String name, @Nullable final SentryAttributeType type, @Nullable final Object value) {
        this.name = name;
        this.type = type;
        this.value = value;
    }
    
    @NotNull
    public String getName() {
        return this.name;
    }
    
    @Nullable
    public SentryAttributeType getType() {
        return this.type;
    }
    
    @Nullable
    public Object getValue() {
        return this.value;
    }
    
    @NotNull
    public static SentryAttribute named(@NotNull final String name, @Nullable final Object value) {
        return new SentryAttribute(name, null, value);
    }
    
    @NotNull
    public static SentryAttribute booleanAttribute(@NotNull final String name, @Nullable final Boolean value) {
        return new SentryAttribute(name, SentryAttributeType.BOOLEAN, value);
    }
    
    @NotNull
    public static SentryAttribute integerAttribute(@NotNull final String name, @Nullable final Integer value) {
        return new SentryAttribute(name, SentryAttributeType.INTEGER, value);
    }
    
    @NotNull
    public static SentryAttribute doubleAttribute(@NotNull final String name, @Nullable final Double value) {
        return new SentryAttribute(name, SentryAttributeType.DOUBLE, value);
    }
    
    @NotNull
    public static SentryAttribute stringAttribute(@NotNull final String name, @Nullable final String value) {
        return new SentryAttribute(name, SentryAttributeType.STRING, value);
    }
}
