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

📄 rtkey.java

📁 Open DMT GPS server source code
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    public static boolean hasDefault(String key)    {        return (RTKey.getRuntimeEntry(key) != null);    }    public static Object getDefaultProperty(String key, Object dft)    {        Entry rtKey = RTKey.getRuntimeEntry(key);        return (rtKey != null)? rtKey.getDefault() : dft;    }        public static void setDefaultProperty(String key, Object val)    {        Entry rtKey = RTKey.getRuntimeEntry(key);        if (rtKey != null) {            rtKey.setDefault(val);        } else {            RTKey.addRuntimeEntry(new Entry(key,val));        }    }    public static RTProperties getDefaultProperties()    {        if (defaultProperties == null) {            RTProperties rtp = new RTProperties();            rtp.setCheckEnvProperties(true);            for (Iterator<Entry> v = RTKey.getRuntimeEntryMap().values().iterator(); v.hasNext();) {                Entry rtk = (Entry)v.next();                if (!rtk.isHelp()) {                    String key = rtk.getKey();                    Object val = rtk.getDefault();                    rtp.setProperty(key, val);                }            }            defaultProperties = rtp;        }        return defaultProperties;    }    // ------------------------------------------------------------------------    public static class Entry    {        private String key  = null;        private Object dft  = null;        private String hlp  = null;        private int    ref  = 0;    // cyclical reference test        public Entry(String key, Object dft, String help) {            this.key = key;            this.dft = dft;            this.hlp = help;        }        public Entry(String key, Object dft) {            this(key, dft, null);        }        public Entry(String help) {            this(null, null, help);        }        public Entry(String key, int dft, String help) {            this(key, new Integer(dft), help);        }        public Entry(String key, int dft) {            this(key, dft, null);        }        public Entry(String key, long dft, String help) {            this(key, new Long(dft), help);        }        public Entry(String key, long dft) {            this(key, dft, null);        }        public Entry(String key, double dft, String help) {            this(key, new Double(dft), help);        }        public Entry(String key, double dft) {            this(key, dft, null);        }        public Entry(String key, float dft, String help) {            this(key, new Float(dft), help);        }        public Entry(String key, float dft) {            this(key, dft, null);        }        public Entry(String key, boolean dft, String help) {            this(key, new Boolean(dft), help);        }        public Entry(String key, boolean dft) {            this(key, dft, null);        }        public Entry getRealEntry() {            if (this.dft instanceof EntryReference) {                Entry entry = null;                if (this.ref > 0) {                    Print.logStackTrace("Cyclical EntryReference: " + this.getKey());                    entry = NullEntry;                } else {                    this.ref++;                    try {                        EntryReference entryRef = (EntryReference)this.dft;                        Entry nextEntry = entryRef.getReferencedEntry(); // <-- will display error, if not found                        entry = (nextEntry != null)? nextEntry.getRealEntry() : NullEntry;                    } finally {                        this.ref--;                    }                }                return entry;            } else {                return this;            }        }        public boolean isReference() {            return (this.dft instanceof EntryReference);        }        public String getKey() {            return this.key;        }        public Object getDefault() {            return this.isReference()? this.getRealEntry().getDefault() : this.dft;        }        public void setDefault(Object val) {            this.dft = val;        }        public boolean isHelp() {            return (this.key == null);        }        public String getHelp() {            return (this.hlp != null)? this.hlp : "";        }        public String toString(Object v) {            StringBuffer sb = new StringBuffer();            if (this.isHelp()) {                sb.append("# --- ").append(this.getHelp());            } else {                sb.append(this.getKey()).append("=");                sb.append((v != null)? v : NULL_VALUE);            }            return sb.toString();        }        public String toString() {            return this.toString(this.getDefault());        }    }    public static class EntryReference    {        private String refKey = null;        public EntryReference(String key) {            this.refKey = key;        }        public String getKey() {            return this.refKey;        }        public Entry getReferencedEntry() {            Entry entry = getRuntimeEntry(this.getKey());            if (entry == null) {                Print.logStackTrace("Entry reference not found: " + this.getKey());            }            return entry;        }        public String toString() {            String k = this.getKey();            return (k != null)? k : "";        }        public boolean equals(Object other) {            if (other instanceof EntryReference) {                return this.toString().equals(other.toString());            } else {                return false;            }        }    }    // ------------------------------------------------------------------------    public static void printDefaults(PrintStream out)    {        /* print standard runtime entries */        Set<String> keyList = new OrderedSet<String>();        String keyGrp = null;        for (Iterator<Entry> v = RTKey.getRuntimeEntryMap().values().iterator(); v.hasNext();) {            Entry rtk = (Entry)v.next();            if (rtk.isHelp()) {                out.println("");                out.println("# ===== " + rtk.getHelp());            } else {                Object dft = rtk.getDefault();                out.println("# --- " + rtk.getHelp());                out.println("# " + rtk.toString(dft));                String key = rtk.getKey();                keyList.add(key);                if (!key.equals(CONFIG_FILE) && RTConfig.hasProperty(key)) {                    String val = RTConfig.getString(key, null);                    //if ((val != null) && ((dft == null) || !val.equals(dft.toString()))) {                        out.println(rtk.toString(val));                    //}                }            }        }        /* orphaned entries */        RTProperties cmdLineProps = RTConfig.getConfigFileProperties();        if (cmdLineProps != null) {            boolean orphanHeader = false;            for (Iterator i = cmdLineProps.keyIterator(); i.hasNext();) {                Object k = i.next();                if (!k.equals(COMMAND_LINE_CONF) && !keyList.contains(k)) {                    if (!orphanHeader) {                        out.println("");                        out.println("# ===== Other entries");                        orphanHeader = true;                    }                    Object v = cmdLineProps.getProperty(k, null);                    out.println(k + "=" + ((v != null)? v : NULL_VALUE));                }            }        }        /* final blank line */        out.println("");    }    // ------------------------------------------------------------------------    // ------------------------------------------------------------------------    public static void main(String argv[])    {        RTConfig.setCommandLineArgs(argv);        printDefaults(System.out);    }    // ------------------------------------------------------------------------}

⌨️ 快捷键说明

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