亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? debug.java

?? openmap java寫的開源數字地圖程序. 用applet實現,可以像google map 那樣放大縮小地圖.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
// **********************************************************************// // <copyright>// //  BBN Technologies//  10 Moulton Street//  Cambridge, MA 02138//  (617) 873-8000// //  Copyright (C) BBNT Solutions LLC. All rights reserved.// // </copyright>// **********************************************************************// // $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/util/Debug.java,v $// $RCSfile: Debug.java,v $// $Revision: 1.4.2.2 $// $Date: 2004/12/08 01:45:43 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.util;import java.applet.Applet;import java.io.DataOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.io.PrintStream;import java.util.Enumeration;import java.util.Hashtable;import java.util.Properties;/** * An abstract class that presents a static interface for debugging * output. It also provides a way to direct output into a log. There * are two types of output - the regular output information, and the * error information, and they can be handled separately. There are * two differences between the two - the error file only gets created * if there is an error, and the error messages have a header and a * tail surrounding the messages, making them easier to spot. If the * output and error file are set to be the same (setLogFile()), then * that file is created automatically, regardless of anything being * put into it. * <p> * Debugging output is turned on or off by system properties for * applications, or parameters for applets. * <p> * A programmer can use code like the following: * <p> * <code><pre> * if (Debug.debugging(&quot;foo&quot;)) { *     System.out.println(&quot;Got &quot; + nbytes + &quot; bytes of data.&quot;); * } * </pre></code> * <p> * The message gets printed when the application is run with * <code>-Ddebug.foo</code> or when the applet gets run with: * <p> * <code>&lt;param name=debug.foo value=&gt;</code> * <p> * The special token <code>debug.all</code> turns on all debugging * for both applets and applications. *  * @author Tom Mitchell (tmitchell@bbn.com) * @author $Author: dietrick $ * @version $Revision: 1.4.2.2 $, $Date: 2004/12/08 01:45:43 $ */public abstract class Debug {    public static String ERROR_HEADER = "\n*** ERROR ***";    public static String ERROR_TAIL = "*************";    /**     * Don't allow construction, all methods are static.     */    private Debug() {}    /**     * Globally enable or disable debugging.     */    public static final boolean On = true;    /**     * The stream where debugging output should go. Default is     * System.out.     */    public static PrintStream out = System.out;    /**     * The stream where debugging error messages should go. Default is     * System.err. Use the function Debug.error to write to it, in     * case you also want to direct output to a file.     */    protected static PrintStream err = System.err;    /**     * The File for logging errors.     */    protected static File errorFile = null;    /**     * The flag for whether the output stream should still be notified     * if logging output.     */    protected static boolean notifyOut = true;    /**     * The flag for whether the err stream should still be notified if     * logging errors.     */    protected static boolean notifyErr = true;    /**     * The DataOutputStream for logging output.     */    protected static DataOutputStream outputLog = null;    /**     * The DataOutputStream for logging errors.     */    protected static DataOutputStream errorLog = null;    /**     * Flag to have the errors appended to the error log.     */    protected static boolean errorAppend = false;    /**     * Flag to indicate whether all debug messages should get printed.     * This is shorthand for defining all the debug symbols.     */    public static boolean debugAll = false;    /**     * The user specified flag to indicate all debugging is on.     * Default is "all".     */    public static String debugAllToken = "all";    private static Hashtable dbgTable = new Hashtable();    private static String debugTokenHeader = "debug.";    /**     * Initialize debugging for the given applet. Applets must pass an     * array of parameters because the applet Parameters list cannot     * be accessed in whole, only queried. The parameters list looks     * something like this:     * <p>     *      * <pre><code>     * String[] debugTokens = { &quot;debug.debug&quot;, // com.bbn.openmap.Debug     *         &quot;debug.openmap&quot;, // com.bbn.openmap.client.OpenMap     *         &quot;debug.mappanel&quot;, // com.bbn.openmap.awt.MapPanel     *         &quot;debug.awt&quot;, // com.bbn.openmap.awt.*     *         &quot;debug.map&quot;, // com.bbn.openmap.Map     *         &quot;debug.layer&quot;, // com.bbn.openmap.Layer     *         &quot;debug.proj&quot;, // com.bbn.openmap.proj.*     *         &quot;debug.spec&quot;, // com.bbn.openmap.spec.*     *         &quot;debug.env&quot; // com.bbn.openmap.Environment     * };     * </code></pre>     *      * @param applet The applet     * @param parameters The debugging flags to look for in the     *        applet's parameters list     */    public static void init(Applet applet, String[] parameters) {        if (applet == null) {            // handle a SecurityException in case we are an applet            // but no applet was passed as an argument.            try {                init(System.getProperties());            } catch (SecurityException e) {            }        } else if (parameters != null) {            try {                for (int i = 0; i < parameters.length; i++) {                    String pname = parameters[i];                    if (pname.startsWith(debugTokenHeader)                            && (applet.getParameter(parameters[i]) != null)) {                        String token = pname.substring(debugTokenHeader.length());                        dbgTable.put(token, Boolean.TRUE);                    }                }                // look for special debug.all token!                if (applet.getParameter(debugTokenHeader + debugAllToken) != null) {                    dbgTable.put(debugAllToken, Boolean.TRUE);                }            } catch (NullPointerException npe) {            }        }        Debug.postInit();    }    /**     * Initialize debugging for an application. Debugging symbols are     * detected in the given properties list, and must have the form     * "debug.X", where X is a debug token used in the application.     *      * @param p A properties list, usually System.getProperties()     */    public static void init(Properties p) {        Enumeration e = p.propertyNames();        while (e.hasMoreElements()) {            String name = e.nextElement().toString();            if (name.startsWith(debugTokenHeader)) {                String token = name.substring(debugTokenHeader.length());                dbgTable.put(token, Boolean.TRUE);            }        }        Debug.postInit();    }    /**     * Initialize debugging from the system properties.     */    public static void init() {        Properties p;        try {            p = System.getProperties();        } catch (java.security.AccessControlException ace) {            p = new Properties();        }        init(p);    }    /**     * Common inits, regardless of applet or application.     */    private static void postInit() {        debugAll = dbgTable.containsKey(debugAllToken);    }    /**     * Indicates if the debugging for the named token is on or off.     *      * @param token a candidate token     * @return true if debugging is on, false otherwise.     */    public static boolean debugging(String token) {        return Debug.On && (debugAll || dbgTable.containsKey(token));    }    /**     * Installs a new debug token     *      * @param dbgToken token name     */    public static void put(String dbgToken) {        dbgTable.put(dbgToken, Boolean.TRUE);    }    /**     * Rremoves a debug token     *      * @param dbgToken token name     */    public static void remove(String dbgToken) {        dbgTable.remove(dbgToken);    }    /**     * Prints <code>message</code> if <code>dbgToken</code>     * debugging is on. NOTE, WARNING!: this is a potentially     * expensive method if you pass a message String composed of many     * concatenated pairs. For example, like: <br>     * `onceStr+" "+uponStr+" a "+timeStr+", "+ ... +"\nThe end."'     * <br>     * Instead you should do: <code><pre>     *      *   if (Debug.debugging(dbgToken)) {     *       Debug.output(onceStr+&quot; &quot;+uponStr+&quot; a &quot;+timeStr+&quot;, &quot;+ ... +&quot;\nThe end.&quot;);     *   }     *       * </pre></code>     *      * @param dbgToken a token to be tested by debugging()     * @param message a message to be printed     */    public static void message(String dbgToken, String message) {        if (Debug.On && Debug.debugging(dbgToken)) {            Debug.output(message);        }    }    /**     * Sets the debugging output stream to the named stream.     *      * @param out the desired debugging output stream     */    public static void setPrintStream(PrintStream out) {        Debug.out = out;    }    /**     * Accessor for the current debugging output stream.     *      * @return the current debugging output stream.     */    public static PrintStream getPrintStream() {        return out;    }    /**     * Provide a file to log output. This can be in conjunction with     * the ouput stream, or instead of it. Will overwrite the file, if     * it exists.     *      * @param file the file to use for the error log.     * @param alsoToOutStream true if the out stream should still     *        provide output, in addition to logging the ouput.     */    public static void directOutput(File file, boolean alsoToOutStream) {        try {            directOutput(new FileOutputStream(file), alsoToOutStream);        } catch (IOException ioe) {            // If something goes wrong, set the output to the            // System.out only, and hope someone sees it.            notifyOut = true;            out = System.out;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品视频在线观看免费| 视频一区视频二区中文| 国产精品一二三四五| 欧美xxxxxxxx| 国产一区二区三区久久悠悠色av| 久久综合成人精品亚洲另类欧美| 蜜乳av一区二区三区| 26uuu亚洲综合色欧美| 国产综合色在线视频区| 日本一区二区免费在线观看视频| 成人黄色免费短视频| 一区二区三区视频在线观看| 欧美电影影音先锋| 激情图区综合网| 国产亚洲精品精华液| 99re亚洲国产精品| 一区二区三区色| 日韩色在线观看| 国产成人免费av在线| 最新日韩在线视频| 欧美群妇大交群中文字幕| 免费日本视频一区| 久久久精品免费观看| 99re视频精品| 久久99久久精品欧美| 国产精品三级av在线播放| 91视频com| 久久国内精品自在自线400部| 中文字幕不卡一区| 欧美亚州韩日在线看免费版国语版| 日本欧美一区二区三区乱码| 亚洲永久精品大片| 日韩一级黄色大片| av男人天堂一区| 毛片不卡一区二区| 亚洲丝袜精品丝袜在线| 欧美成人三级电影在线| 色天使久久综合网天天| 国产美女视频91| 亚洲二区视频在线| 日本一区二区免费在线 | 国产精品资源在线看| 亚洲女与黑人做爰| 精品少妇一区二区三区视频免付费 | 色欧美日韩亚洲| 国产乱码精品一品二品| 天堂av在线一区| 亚洲欧洲综合另类在线 | 久久久综合激的五月天| 在线看日韩精品电影| 国产成人亚洲综合a∨婷婷| 爽好多水快深点欧美视频| 欧美激情资源网| 欧美不卡一区二区三区四区| 欧美系列在线观看| 成人免费看黄yyy456| 久久99精品国产.久久久久| 亚洲综合av网| 亚洲欧美精品午睡沙发| 亚洲国产精品成人久久综合一区 | 色又黄又爽网站www久久| 国产东北露脸精品视频| 久久精品免费看| 日韩制服丝袜先锋影音| 一区二区三区欧美亚洲| 国产精品日日摸夜夜摸av| 亚洲精品一区二区精华| 在线成人av影院| 欧美日韩一二三区| 一本色道亚洲精品aⅴ| zzijzzij亚洲日本少妇熟睡| 国产成人精品亚洲日本在线桃色| 久久成人免费网| 全部av―极品视觉盛宴亚洲| 日韩av一级电影| 免费观看久久久4p| 青青草伊人久久| 成人激情动漫在线观看| 成人免费毛片app| 成人视屏免费看| 91麻豆国产福利在线观看| jlzzjlzz欧美大全| 99热在这里有精品免费| 91视视频在线观看入口直接观看www| 成人午夜视频在线| thepron国产精品| 99re这里都是精品| 欧美曰成人黄网| 91精品欧美福利在线观看| 3d成人h动漫网站入口| 欧美一级片在线看| 精品盗摄一区二区三区| 国产亚洲一区字幕| 国产精品美女久久久久久久网站| 国产精品二三区| 亚洲日本一区二区| 亚洲一区二区三区免费视频| 天天做天天摸天天爽国产一区| 日本中文在线一区| 国产在线视频一区二区三区| 国产成人亚洲综合a∨婷婷| www.亚洲色图.com| 欧美亚洲动漫制服丝袜| 91精品国产麻豆国产自产在线| 欧美精品一区二区久久婷婷| 久久精品一区二区三区四区| 18涩涩午夜精品.www| 亚洲一区中文日韩| 麻豆成人久久精品二区三区红 | 亚洲视频免费在线| 亚洲午夜一区二区| 久久成人av少妇免费| 大白屁股一区二区视频| 欧美在线观看视频一区二区三区| 国产精品女主播在线观看| 亚洲综合色自拍一区| 久久成人免费网站| 91丨九色porny丨蝌蚪| 91精品欧美综合在线观看最新| 中国色在线观看另类| 亚洲一区日韩精品中文字幕| 国产在线一区观看| 欧美日韩中文一区| 国产亚洲精久久久久久| 亚洲电影在线免费观看| 国产成人日日夜夜| 欧美日韩成人综合| 中文字幕免费观看一区| 日本不卡123| 在线影视一区二区三区| 久久久久九九视频| 亚洲国产婷婷综合在线精品| 国产盗摄女厕一区二区三区| 欧美丝袜自拍制服另类| 国产丝袜美腿一区二区三区| 五月综合激情婷婷六月色窝| 成人a级免费电影| 欧美电视剧免费全集观看| 一区二区三区中文字幕| 国产另类ts人妖一区二区| 91精品国产一区二区| 亚洲欧美电影一区二区| 国产精品综合一区二区| 欧美一级黄色片| 亚洲国产精品久久艾草纯爱| 成人精品国产福利| 精品国产乱码久久久久久蜜臀 | 美女视频免费一区| 欧美日韩一区国产| 亚洲特黄一级片| 国产成人在线视频播放| 精品国产三级电影在线观看| 午夜精品免费在线观看| 91色porny在线视频| 亚洲国产精品激情在线观看| 国产一区二区影院| 欧美一区二区视频在线观看| 一区二区不卡在线播放| 99精品国产热久久91蜜凸| 国产精品无人区| 国产成人鲁色资源国产91色综| www国产精品av| 久久99精品国产麻豆婷婷洗澡| 日韩欧美激情四射| 天堂久久一区二区三区| 欧美日韩一区二区在线视频| 亚洲成人精品一区二区| 久久久久久9999| 国产精品一区二区黑丝| 久久综合久久久久88| 精品一区二区三区在线播放| 欧美v亚洲v综合ⅴ国产v| 麻豆成人免费电影| 久久毛片高清国产| 成人黄色网址在线观看| 国产精品久久久久久久久图文区| 9色porny自拍视频一区二区| 中文字幕在线不卡视频| 91免费版pro下载短视频| 亚洲欧美二区三区| 欧美日本视频在线| 麻豆精品视频在线观看视频| 精品久久免费看| 国产成人免费在线观看| 中文字幕在线不卡视频| 欧美午夜精品免费| 免费在线视频一区| 久久亚洲精品国产精品紫薇| 国产99精品国产| 伊人夜夜躁av伊人久久| 欧美老年两性高潮| 精品一区二区在线观看| 国产精品国产三级国产aⅴ中文| 91视频免费看| 日韩二区三区在线观看| 久久久久国产成人精品亚洲午夜| 不卡的电视剧免费网站有什么| 亚洲精品久久久蜜桃| 欧美一区二区三区免费大片| 国产精品一卡二卡在线观看|