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

📄 utilmisc.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            if (value instanceof Double) {                return ((Double) value).doubleValue();            } else if (value instanceof String) {                return Double.parseDouble((String) value);            }        }        return 0.0;    }    /**     * Adds value to the key entry in theMap, or creates a new one if not already there     * @param theMap     * @param key     * @param value     */    public static void addToDoubleInMap(Map theMap, Object key, Double value) {        Double curValue = (Double) theMap.get(key);        if (curValue != null) {            theMap.put(key, new Double(curValue.doubleValue() + value.doubleValue()));        } else {            theMap.put(key, value);        }    }        /**     * Parse a locale string Locale object     * @param localeString The locale string (en_US)     * @return Locale The new Locale object or null if no valid locale can be interpreted     */    public static Locale parseLocale(String localeString) {        if (localeString == null || localeString.length() == 0) {            return null;        }        Locale locale = null;        if (localeString.length() == 2) {            // two letter language code            locale = new Locale(localeString);        } else if (localeString.length() == 5) {            // positions 0-1 language, 3-4 are country            String language = localeString.substring(0, 2);            String country = localeString.substring(3, 5);            locale = new Locale(language, country);        } else if (localeString.length() > 6) {            // positions 0-1 language, 3-4 are country, 6 and on are special extensions            String language = localeString.substring(0, 2);            String country = localeString.substring(3, 5);            String extension = localeString.substring(6);            locale = new Locale(language, country, extension);        } else {            Debug.logWarning("Do not know what to do with the localeString [" + localeString + "], should be length 2, 5, or greater than 6, returning null", module);        }        return locale;    }    /** The input can be a String, Locale, or even null and a valid Locale will always be returned; if nothing else works, returns the default locale.     * @param localeObject An Object representing the locale     */    public static Locale ensureLocale(Object localeObject) {        if (localeObject != null && localeObject instanceof String) {            localeObject = UtilMisc.parseLocale((String) localeObject);        }        if (localeObject != null && localeObject instanceof Locale) {            return (Locale) localeObject;        }        return Locale.getDefault();    }    public static List availableLocaleList = null;    /** Returns a List of available locales sorted by display name */    public static List availableLocales() {        if (availableLocaleList == null) {            synchronized(UtilMisc.class) {                if (availableLocaleList == null) {                    TreeMap localeMap = new TreeMap();                    Locale[] locales = Locale.getAvailableLocales();                    for (int i = 0; i < locales.length; i++) {                        localeMap.put(locales[i].getDisplayName(), locales[i]);                    }                    availableLocaleList = new LinkedList(localeMap.values());                }            }        }        return availableLocaleList;    }    /** This is meant to be very quick to create and use for small sized maps, perfect for how we usually use UtilMisc.toMap */    protected static class SimpleMap implements Map, java.io.Serializable {        protected Map realMapIfNeeded = null;        String[] names;        Object[] values;        public SimpleMap() {            names = new String[0];            values = new Object[0];        }        public SimpleMap(String name1, Object value1) {            names = new String[1];            values = new Object[1];            this.names[0] = name1;            this.values[0] = value1;        }        public SimpleMap(String name1, Object value1, String name2, Object value2) {            names = new String[2];            values = new Object[2];            this.names[0] = name1;            this.values[0] = value1;            this.names[1] = name2;            this.values[1] = value2;        }        public SimpleMap(String name1, Object value1, String name2, Object value2, String name3, Object value3) {            names = new String[3];            values = new Object[3];            this.names[0] = name1;            this.values[0] = value1;            this.names[1] = name2;            this.values[1] = value2;            this.names[2] = name3;            this.values[2] = value3;        }        public SimpleMap(String name1, Object value1, String name2, Object value2, String name3, Object value3, String name4, Object value4) {            names = new String[4];            values = new Object[4];            this.names[0] = name1;            this.values[0] = value1;            this.names[1] = name2;            this.values[1] = value2;            this.names[2] = name3;            this.values[2] = value3;            this.names[3] = name4;            this.values[3] = value4;        }        protected void makeRealMap() {            realMapIfNeeded = FastMap.newInstance();            for (int i = 0; i < names.length; i++) {                realMapIfNeeded.put(names[i], values[i]);            }            this.names = null;            this.values = null;        }        public void clear() {            if (realMapIfNeeded != null) {                realMapIfNeeded.clear();            } else {                realMapIfNeeded = FastMap.newInstance();                names = null;                values = null;            }        }        public boolean containsKey(Object obj) {            if (realMapIfNeeded != null) {                return realMapIfNeeded.containsKey(obj);            } else {                for (int i = 0; i < names.length; i++) {                    if (obj == null && names[i] == null) return true;                    if (names[i] != null && names[i].equals(obj)) return true;                }                return false;            }        }        public boolean containsValue(Object obj) {            if (realMapIfNeeded != null) {                return realMapIfNeeded.containsValue(obj);            } else {                for (int i = 0; i < names.length; i++) {                    if (obj == null && values[i] == null) return true;                    if (values[i] != null && values[i].equals(obj)) return true;                }                return false;            }        }        public java.util.Set entrySet() {            if (realMapIfNeeded != null) {                return realMapIfNeeded.entrySet();            } else {                this.makeRealMap();                return realMapIfNeeded.entrySet();            }        }        public Object get(Object obj) {            if (realMapIfNeeded != null) {                return realMapIfNeeded.get(obj);            } else {                for (int i = 0; i < names.length; i++) {                    if (obj == null && names[i] == null) return values[i];                    if (names[i] != null && names[i].equals(obj)) return values[i];                }                return null;            }        }        public boolean isEmpty() {            if (realMapIfNeeded != null) {                return realMapIfNeeded.isEmpty();            } else {                if (this.names.length == 0) return true;                return false;            }        }        public java.util.Set keySet() {            if (realMapIfNeeded != null) {                return realMapIfNeeded.keySet();            } else {                this.makeRealMap();                return realMapIfNeeded.keySet();            }        }        public Object put(Object obj, Object obj1) {            if (realMapIfNeeded != null) {                return realMapIfNeeded.put(obj, obj1);            } else {                this.makeRealMap();                return realMapIfNeeded.put(obj, obj1);            }        }        public void putAll(java.util.Map map) {            if (realMapIfNeeded != null) {                realMapIfNeeded.putAll(map);            } else {                this.makeRealMap();                realMapIfNeeded.putAll(map);            }        }        public Object remove(Object obj) {            if (realMapIfNeeded != null) {                return realMapIfNeeded.remove(obj);            } else {                this.makeRealMap();                return realMapIfNeeded.remove(obj);            }        }        public int size() {            if (realMapIfNeeded != null) {                return realMapIfNeeded.size();            } else {                return this.names.length;            }        }        public java.util.Collection values() {            if (realMapIfNeeded != null) {                return realMapIfNeeded.values();            } else {                this.makeRealMap();                return realMapIfNeeded.values();            }        }        public String toString() {            if (realMapIfNeeded != null) {                return realMapIfNeeded.toString();            } else {                StringBuffer outString = new StringBuffer("{");                for (int i = 0; i < names.length; i++) {                    if (i > 0) outString.append(',');                    outString.append('{');                    outString.append(names[i]);                    outString.append(',');                    outString.append(values[i]);                    outString.append('}');                }                outString.append('}');                return outString.toString();            }        }        public int hashCode() {            if (realMapIfNeeded != null) {                return realMapIfNeeded.hashCode();            } else {                int hashCode = 0;                for (int i = 0; i < names.length; i++) {                    //note that this calculation is done based on the calc specified in the Java java.util.Map interface                    int tempNum = (names[i] == null   ? 0 : names[i].hashCode()) ^                            (values[i] == null ? 0 : values[i].hashCode());                    hashCode += tempNum;                }                return hashCode;            }        }        public boolean equals(Object obj) {            if (realMapIfNeeded != null) {                return realMapIfNeeded.equals(obj);            } else {                Map mapObj = (Map) obj;                //first check the size                if (mapObj.size() != names.length) return false;                //okay, same size, now check each entry                for (int i = 0; i < names.length; i++) {                    //first check the name                    if (!mapObj.containsKey(names[i])) return false;                    //if that passes, check the value                    Object mapValue = mapObj.get(names[i]);                    if (mapValue == null) {                        if (values[i] != null) return false;                    } else {                        if (!mapValue.equals(values[i])) return false;                    }                }                return true;            }        }    }}

⌨️ 快捷键说明

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