⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 discoverymanager.java

📁 xbrlapi的源码
💻 JAVA
字号:
package org.xbrlapi.loader.discoverer;import java.net.URL;import java.util.LinkedList;import java.util.List;import org.apache.log4j.Logger;import org.xbrlapi.data.Store;import org.xbrlapi.loader.Loader;import org.xbrlapi.utilities.XBRLException;public class DiscoveryManager implements Runnable {    static Logger logger = Logger.getLogger(DiscoveryManager.class);        private Loader loader = null;    private long interval = 600000;        public DiscoveryManager(Loader loader) {        try {            if (loader == null) throw new XBRLException("The loader is null.");            this.loader = loader;        } catch (XBRLException e) {            e.printStackTrace();            logger.error(Thread.currentThread().getName() + ": The discoverer could not be instantiated.");        }    }    public DiscoveryManager(Loader loader, long interval) {        this(loader);        this.interval = interval;    }        List<URL> resources = new LinkedList<URL>();        /**     * @param loader The loader to do the discovery with.     * @param resources The URLs to discover.     */    public DiscoveryManager(Loader loader, List<URL> resources) {        this(loader);        if (resources != null) {            this.resources = resources;        }    }        public DiscoveryManager(Loader loader, List<URL> resources, long interval) {        this(loader,interval);        if (resources != null) {            this.resources = resources;        }    }            public void run() {        try {            logger.info(Thread.currentThread().getName() + ": Successfully began.");                        if (loader == null) {                logger.error(Thread.currentThread().getName() + ": Discovery failed because the discoverer does not have a loader.");            } else {                                for (URL resource: resources) {                    loader.stashURL(resource);                }                                Store store = loader.getStore();                Discoverer discoverer = new Discoverer(loader);                Thread thread = new Thread(discoverer);                thread.start();                                while (thread.isAlive()) {                                        int sleptTime = 0;                    while (sleptTime < interval) {                        Thread.sleep(1000);                        sleptTime = sleptTime + 1000;                        if (! thread.isAlive()) {                            break;                        }                    }                                        if (thread.isAlive()) {                        loader.requestInterrupt();                        while (thread.isAlive()) {                            Thread.sleep(1000);                        }                        discoverer = new Discoverer(loader);                        thread = new Thread(discoverer);                        thread.start();                    }                }                            }            logger.info(Thread.currentThread().getName() + ": Successfully exited.");                     } catch (Exception e) {            e.printStackTrace();            logger.error(Thread.currentThread().getName() + ": The discovery manager experienced an Exception.");        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -