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

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

?? linkchecker.java

?? 非常棒的java數據庫
?? JAVA
字號:
/*
 * Copyright 2004-2008 H2 Group. Licensed under the H2 License, Version 1.0
 * (license2)
 * Initial Developer: H2 Group
 */
package org.h2.tools.doc;

import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;

import org.h2.util.IOUtils;
import org.h2.util.StartBrowser;
import org.h2.util.StringUtils;

/**
 * The link checker makes sure that each link in the documentation
 * points to an existing target.
 */
public class LinkChecker {

    private static final boolean OPEN_EXTERNAL_LINKS = false;
    private static final String[] IGNORE_MISSING_LINKS_TO = new String[]{
        "SysProperties", "ErrorCode"
    };

    public static void main(String[] args) throws Exception {
        new LinkChecker().run(args);
    }

    private HashMap targets = new HashMap();
    private HashMap links = new HashMap();

    private void run(String[] args) throws Exception {
        String dir = "docs";
        for (int i = 0; i < args.length; i++) {
            if ("-dir".equals(args[i])) {
                dir = args[++i];
            }
        }
        process(dir);
        listExternalLinks();
        listBadLinks();
    }

    void listExternalLinks() {
        for (Iterator it = links.keySet().iterator(); it.hasNext();) {
            String link = (String) it.next();
            if (link.startsWith("http")) {
                if (link.indexOf("//localhost") > 0) {
                    continue;
                }
                if (OPEN_EXTERNAL_LINKS) {
                    StartBrowser.openURL(link);
                }
                // System.out.println("External Link: " + link);
            }
        }
    }

    void listBadLinks() throws Exception {
        ArrayList errors = new ArrayList();
        for (Iterator it = links.keySet().iterator(); it.hasNext();) {
            String link = (String) it.next();
            if (!link.startsWith("http") && !link.endsWith("h2.pdf")
                    && link.indexOf("_ja.") < 0) {
                if (targets.get(link) == null) {
                    errors.add(links.get(link) + ": missing link " + link);
                }
            }
        }
        for (Iterator it = links.keySet().iterator(); it.hasNext();) {
            String link = (String) it.next();
            if (!link.startsWith("http")) {
                targets.remove(link);
            }
        }
        for (Iterator it = targets.keySet().iterator(); it.hasNext();) {
            String name = (String) it.next();
            if (targets.get(name).equals("name")) {
                boolean ignore = false;
                for (int i = 0; i < IGNORE_MISSING_LINKS_TO.length; i++) {
                    if (name.indexOf(IGNORE_MISSING_LINKS_TO[i]) >= 0) {
                        ignore = true;
                        break;
                    }
                }
                if (!ignore) {
                    errors.add("No link to " + name);
                }
            }
        }
        Collections.sort(errors);
        for (int i = 0; i < errors.size(); i++) {
            System.out.println(errors.get(i));
        }
        if (errors.size() > 0) {
            throw new Exception("Problems where found by the Link Checker");
        }
    }

    void process(String path) throws Exception {
        if (path.endsWith("/CVS") || path.endsWith("/.svn")) {
            return;
        }
        File file = new File(path);
        if (file.isDirectory()) {
            String[] list = file.list();
            for (int i = 0; i < list.length; i++) {
                process(path + "/" + list[i]);
            }
        } else {
            processFile(path);
        }
    }

    void processFile(String path) throws Exception {
        targets.put(path, "file");
        String lower = StringUtils.toLowerEnglish(path);
        if (!lower.endsWith(".html") && !lower.endsWith(".htm")) {
            return;
        }
        String fileName = new File(path).getName();
        String parent = path.substring(0, path.lastIndexOf('/'));
        String html = IOUtils.readStringAndClose(new FileReader(path), -1);
        int idx = -1;
        while (true) {
            idx = html.indexOf(" id=\"", idx + 1);
            if (idx < 0) {
                break;
            }
            int start = idx + 4;
            int end = html.indexOf("\"", start + 1);
            if (end < 0) {
                error(fileName, "expected \" after id= " + html.substring(idx, idx + 100));
            }
            String ref = html.substring(start + 1, end);
            targets.put(path + "#" + ref, "id");
        }
        idx = -1;
        while (true) {
            idx = html.indexOf("<a ", idx + 1);
            if (idx < 0) {
                break;
            }
            int equals = html.indexOf("=", idx);
            if (equals < 0) {
                error(fileName, "expected = after <a at " + html.substring(idx, idx + 100));
            }
            String type = html.substring(idx + 2, equals).trim();
            int start = html.indexOf("\"", idx);
            if (start < 0) {
                error(fileName, "expected \" after <a at " + html.substring(idx, idx + 100));
            }
            int end = html.indexOf("\"", start + 1);
            if (end < 0) {
                error(fileName, "expected \" after <a at " + html.substring(idx, idx + 100));
            }
            String ref = html.substring(start + 1, end);
            if (type.equals("href")) {
                if (ref.startsWith("http:") || ref.startsWith("https:")) {
                    // ok
                } else if (ref.startsWith("javascript:")) {
                    ref = null;
                    // ok
                } else if (ref.length() == 0) {
                    ref = null;
                    // ok
                } else if (ref.startsWith("#")) {
                    ref = path + ref;
                } else {
                    String p = parent;
                    while (ref.startsWith(".")) {
                        if (ref.startsWith("./")) {
                            ref = ref.substring(2);
                        } else if (ref.startsWith("../")) {
                            ref = ref.substring(3);
                            p = p.substring(0, p.lastIndexOf('/'));
                        }
                    }
                    ref = p + "/" + ref;
                }
                if (ref != null) {
                    links.put(ref, path);
                }
            } else if (type.equals("name")) {
                targets.put(path + "#" + ref, "name");
            } else {
                error(fileName, "unsupported <a ?: " + html.substring(idx, idx + 100));
            }
        }
    }

    private void error(String fileName, String string) {
        System.out.println("ERROR with " + fileName + ": " + string);
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产**网站演员| 久久99精品国产麻豆婷婷 | 白白色 亚洲乱淫| 欧美亚洲免费在线一区| 久久影视一区二区| 午夜精品久久久久久久久久| 北岛玲一区二区三区四区| 精品日韩一区二区三区| 性久久久久久久久久久久| 不卡的看片网站| 久久嫩草精品久久久精品| 日韩**一区毛片| 国产精品少妇自拍| 久久99精品国产91久久来源| 欧美日韩亚洲丝袜制服| 自拍av一区二区三区| 国产福利视频一区二区三区| 日韩一卡二卡三卡四卡| 亚洲福中文字幕伊人影院| 91视频在线观看免费| 国产精品欧美一区喷水| 国产精一区二区三区| 精品国产亚洲在线| 老司机一区二区| 日韩欧美成人午夜| 美女脱光内衣内裤视频久久网站| 欧美日韩精品电影| 亚洲综合偷拍欧美一区色| 91色九色蝌蚪| 亚洲色图在线视频| 色狠狠av一区二区三区| 亚洲综合在线电影| 欧美日韩在线播放三区四区| 亚洲精品国产高清久久伦理二区| 色综合久久久久| 亚洲欧美福利一区二区| 91蝌蚪porny| 亚洲午夜久久久久久久久久久| 在线视频国内一区二区| caoporn国产精品| 亚洲视频在线观看三级| 在线免费观看日韩欧美| 爽好久久久欧美精品| 日韩视频在线永久播放| 国产一区二区三区四区五区入口 | 亚洲三级在线播放| 91麻豆.com| 亚洲国产欧美在线| 在线播放一区二区三区| 久久精品国产精品亚洲综合| 久久九九久久九九| 97超碰欧美中文字幕| 亚洲午夜在线观看视频在线| 日韩女优制服丝袜电影| 成人免费毛片app| 亚洲线精品一区二区三区八戒| 日韩午夜中文字幕| 成人午夜激情视频| 亚洲电影欧美电影有声小说| 日韩欧美电影一二三| zzijzzij亚洲日本少妇熟睡| 丝袜美腿亚洲色图| 中文字幕精品一区二区精品绿巨人| 91美女福利视频| 麻豆高清免费国产一区| 亚洲欧美日韩国产一区二区三区| 欧美精品日日鲁夜夜添| 国产91精品一区二区麻豆亚洲| 亚洲一区二区五区| 国产亚洲女人久久久久毛片| 91欧美一区二区| 国产美女娇喘av呻吟久久| 亚洲欧美日韩一区| 精品免费99久久| 欧美又粗又大又爽| 国产91精品免费| 蜜桃一区二区三区在线| 韩国午夜理伦三级不卡影院| 亚洲激情在线播放| 国产日韩欧美电影| 欧美一区中文字幕| 99精品一区二区三区| 久久99久久精品欧美| 一区二区三区毛片| 欧美国产禁国产网站cc| 91精品国产综合久久婷婷香蕉| 成人av在线资源网站| 久久99国产精品麻豆| 亚洲福利视频导航| 亚洲猫色日本管| 中文字幕在线观看一区| 久久精品一二三| 欧美不卡一二三| 国产激情一区二区三区桃花岛亚洲 | av高清久久久| 国产精品综合一区二区| 日韩成人一级片| 一区二区三区日韩精品| 国产日韩亚洲欧美综合| 久久夜色精品国产噜噜av| 制服.丝袜.亚洲.另类.中文| 欧美艳星brazzers| 91视频在线观看| 91无套直看片红桃| 成人激情午夜影院| 成人av网站在线观看| 国产激情视频一区二区三区欧美 | 亚洲午夜免费电影| 亚洲色图欧美在线| 亚洲欧美激情在线| 国产一区在线观看视频| 中文在线资源观看网站视频免费不卡| 在线综合视频播放| 91麻豆精品久久久久蜜臀| 欧美日韩一级片在线观看| 色综合天天综合网国产成人综合天| 国产999精品久久久久久绿帽| 激情伊人五月天久久综合| 经典三级在线一区| 国产精品自拍三区| 成人毛片视频在线观看| jvid福利写真一区二区三区| aaa亚洲精品一二三区| 色综合中文字幕| 欧美色综合影院| 欧美一区二区视频网站| 久久综合久久久久88| 国产偷国产偷亚洲高清人白洁 | 国产乱妇无码大片在线观看| 粉嫩av一区二区三区在线播放| 丁香啪啪综合成人亚洲小说| 99国产精品视频免费观看| 欧洲精品在线观看| 在线播放欧美女士性生活| 欧美精品一区二区久久婷婷| 中文字幕精品综合| 亚洲激情自拍视频| 麻豆精品久久精品色综合| 国产精品123| 在线精品视频免费观看| 欧美一区二区三区电影| 国产欧美一区二区精品性色| 有坂深雪av一区二区精品| 免费成人在线播放| 白白色亚洲国产精品| 欧美另类高清zo欧美| 久久女同精品一区二区| 一区二区三区精品| 国产专区欧美精品| 在线观看视频一区二区欧美日韩| 3d成人h动漫网站入口| 中文字幕成人av| 日韩精品91亚洲二区在线观看| 国产成人亚洲综合色影视| 欧美日精品一区视频| 久久久久国产精品麻豆| 香蕉久久一区二区不卡无毒影院 | 国产亚洲精品精华液| 亚洲靠逼com| 韩国精品在线观看| 欧洲另类一二三四区| 国产日韩欧美麻豆| 日本va欧美va瓶| 一本在线高清不卡dvd| 日韩女优av电影| 亚洲午夜精品一区二区三区他趣| 国产精品一线二线三线精华| 在线观看亚洲精品| 国产精品大尺度| 国内外成人在线视频| 欧美精品18+| 亚洲乱码一区二区三区在线观看| 国产精一区二区三区| 日韩一区二区三区视频在线| 一区二区欧美在线观看| 成人黄色免费短视频| 精品1区2区在线观看| 日本美女视频一区二区| 91福利区一区二区三区| 国产精品久久三| 国产精品2024| www激情久久| 精品一区二区av| 日韩视频不卡中文| 日本女人一区二区三区| 欧美人牲a欧美精品| 一区二区三区.www| 色综合久久综合网欧美综合网| 国产精品嫩草影院av蜜臀| 国产电影精品久久禁18| 一区二区三区不卡视频| 日韩欧美视频在线| 亚洲国产成人tv| 99精品久久只有精品| 亚洲国产经典视频| 国产精品99久久久| 久久久电影一区二区三区| 国产一区二区三区四| 精品欧美一区二区在线观看| 精油按摩中文字幕久久|