13141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch/*
23141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch * Copyright (C) 2010 The Android Open Source Project
33141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch *
43141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch * Licensed under the Apache License, Version 2.0 (the "License");
53141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch * you may not use this file except in compliance with the License.
63141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch * You may obtain a copy of the License at
73141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch *
83141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch *      http://www.apache.org/licenses/LICENSE-2.0
93141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch *
103141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch * Unless required by applicable law or agreed to in writing, software
113141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch * distributed under the License is distributed on an "AS IS" BASIS,
123141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch * See the License for the specific language governing permissions and
143141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch * limitations under the License.
153141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch */
163141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch
173141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdochpackage android.webkit;
183141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch
193141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch/**
203141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch * Public class representing a JavaScript console message from WebCore. This could be a issued
213141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch * by a call to one of the <code>console</code> logging functions (e.g.
223141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch * <code>console.log('...')</code>) or a JavaScript error on the  page. To receive notifications
233141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch * of these messages, override the
243141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch * {@link WebChromeClient#onConsoleMessage(ConsoleMessage)} function.
253141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch */
263141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdochpublic class ConsoleMessage {
273141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch
283141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    // This must be kept in sync with the WebCore enum in WebCore/page/Console.h
293141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    public enum MessageLevel {
303141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch        TIP,
313141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch        LOG,
323141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch        WARNING,
333141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch        ERROR,
343141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch        DEBUG
353141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    };
363141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch
373141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    private MessageLevel mLevel;
383141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    private String mMessage;
393141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    private String mSourceId;
403141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    private int mLineNumber;
413141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch
423141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    public ConsoleMessage(String message, String sourceId, int lineNumber, MessageLevel msgLevel) {
433141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch        mMessage = message;
443141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch        mSourceId = sourceId;
453141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch        mLineNumber = lineNumber;
463141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch        mLevel = msgLevel;
473141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    }
483141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch
493141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    public MessageLevel messageLevel() {
503141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch        return mLevel;
513141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    }
523141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch
533141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    public String message() {
543141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch        return mMessage;
553141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    }
563141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch
573141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    public String sourceId() {
583141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch        return mSourceId;
593141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    }
603141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch
613141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    public int lineNumber() {
623141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch        return mLineNumber;
633141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch    }
643141e0a62abe57e93e5d716895a2a57cc052bb50Ben Murdoch};
65