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

package com.google.common.flogger.util;

import org.checkerframework.checker.nullness.compatqual.NullableDecl;
import com.google.errorprone.annotations.CheckReturnValue;
import com.google.common.flogger.LogSite;

@CheckReturnValue
public final class StackBasedLogSite extends LogSite
{
    private final StackTraceElement stackElement;
    
    public StackBasedLogSite(final StackTraceElement stackElement) {
        this.stackElement = Checks.checkNotNull(stackElement, "stack element");
    }
    
    @Override
    public String getClassName() {
        return this.stackElement.getClassName();
    }
    
    @Override
    public String getMethodName() {
        return this.stackElement.getMethodName();
    }
    
    @Override
    public int getLineNumber() {
        return Math.max(this.stackElement.getLineNumber(), 0);
    }
    
    @Override
    public String getFileName() {
        return this.stackElement.getFileName();
    }
    
    @Override
    public boolean equals(@NullableDecl final Object obj) {
        return obj instanceof StackBasedLogSite && this.stackElement.equals(((StackBasedLogSite)obj).stackElement);
    }
    
    @Override
    public int hashCode() {
        return this.stackElement.hashCode();
    }
}
