chromium/android_webview/java/src/org/chromium/android_webview/AwConsoleMessage.java

// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.android_webview;

import androidx.annotation.IntDef;

import org.chromium.android_webview.common.Lifetime;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 *
 * See {@link android.webkit.ConsoleMessage}. */
@Lifetime.Temporary
public class AwConsoleMessage {
    @Retention(RetentionPolicy.SOURCE)
    @IntDef({
        MESSAGE_LEVEL_TIP,
        MESSAGE_LEVEL_LOG,
        MESSAGE_LEVEL_WARNING,
        MESSAGE_LEVEL_ERROR,
        MESSAGE_LEVEL_DEBUG
    })
    public @interface MessageLevel {}

    public static final int MESSAGE_LEVEL_TIP = 0;
    public static final int MESSAGE_LEVEL_LOG = 1;
    public static final int MESSAGE_LEVEL_WARNING = 2;
    public static final int MESSAGE_LEVEL_ERROR = 3;
    public static final int MESSAGE_LEVEL_DEBUG = 4;

    @MessageLevel private int mLevel;
    private String mMessage;
    private String mSourceId;
    private int mLineNumber;

    public AwConsoleMessage(
            String message, String sourceId, int lineNumber, @MessageLevel int msgLevel) {
        mMessage = message;
        mSourceId = sourceId;
        mLineNumber = lineNumber;
        mLevel = msgLevel;
    }

    @MessageLevel
    public int messageLevel() {
        return mLevel;
    }

    public String message() {
        return mMessage;
    }

    public String sourceId() {
        return mSourceId;
    }

    public int lineNumber() {
        return mLineNumber;
    }
}