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

📄 objecttype.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
            List list = (List) obj;            if ("List".equals(type) || "java.util.List".equals(type)) {                return list;            } else if ("String".equals(type) || "java.lang.String".equals(type)) {                return list.toString();            } else {                throw new GeneralException("Conversion from " + fromType + " to " + type + " not currently supported");                        }        } else {            // we can pretty much always do a conversion to a String, so do that here            if ("String".equals(type) || "java.lang.String".equals(type)) {                Debug.logWarning("No special conversion available for " + obj.getClass().getName() + " to String, returning object.toString().", module);                return obj.toString();            }                        if (noTypeFail) {                throw new GeneralException("Conversion from " + obj.getClass().getName() + " to " + type + " not currently supported");            } else {                Debug.logWarning("No type conversion available for " + obj.getClass().getName() + " to " + type + ", returning original object.", module);                return obj;            }        }    }    public static Object simpleTypeConvert(Object obj, String type, String format, Locale locale) throws GeneralException {        return simpleTypeConvert(obj, type, format, locale, true);    }    public static Boolean doRealCompare(Object value1, Object value2, String operator, String type, String format,        List messages, Locale locale, ClassLoader loader) {        boolean verboseOn = Debug.verboseOn();        if (verboseOn) Debug.logVerbose("Comparing value1: \"" + value1 + "\" " + operator + " value2:\"" + value2 + "\"", module);        try {            if (!"PlainString".equals(type)) {                Class clz = ObjectType.loadClass(type, loader);                type = clz.getName();            }        } catch (ClassNotFoundException e) {            Debug.logWarning("The specified type [" + type + "] is not a valid class or a known special type, may see more errors later because of this: " + e.getMessage(), module);        }        // some default behavior for null values, results in a bit cleaner operation        if ("is-null".equals(operator) && value1 == null) {            return Boolean.TRUE;        } else if ("is-not-null".equals(operator) && value1 == null) {            return Boolean.FALSE;        } else if ("is-empty".equals(operator) && value1 == null) {            return Boolean.TRUE;        } else if ("is-not-empty".equals(operator) && value1 == null) {            return Boolean.FALSE;        } else if ("contains".equals(operator) && value1 == null) {            return Boolean.FALSE;        }                int result = 0;        Object convertedValue2 = null;        if (value2 != null) {            try {                convertedValue2 = ObjectType.simpleTypeConvert(value2, type, format, locale);            } catch (GeneralException e) {                Debug.logError(e, module);                messages.add("Could not convert value2 for comparison: " + e.getMessage());                return null;            }        }        // have converted value 2, now before converting value 1 see if it is a Collection and we are doing a contains comparison        if ("contains".equals(operator) && value1 instanceof Collection) {            Collection col1 = (Collection) value1;            if (col1.contains(convertedValue2)) {                return Boolean.TRUE;            } else {                return Boolean.FALSE;            }        }        Object convertedValue1 = null;        try {            convertedValue1 = ObjectType.simpleTypeConvert(value1, type, format, locale);        } catch (GeneralException e) {            Debug.logError(e, module);            messages.add("Could not convert value1 for comparison: " + e.getMessage());            return null;        }        // handle null values...        if (convertedValue1 == null || convertedValue2 == null) {            if ("equals".equals(operator)) {                if (convertedValue1 == null && convertedValue2 == null) {                    return Boolean.TRUE;                } else {                    return Boolean.FALSE;                }            } else if ("not-equals".equals(operator)) {                if (convertedValue1 == null && convertedValue2 == null) {                    return Boolean.FALSE;                } else {                    return Boolean.TRUE;                }            } else if ("is-not-empty".equals(operator) || "is-empty".equals(operator)) {                // do nothing, handled later...            } else {                if (convertedValue1 == null) {                    messages.add("Left value is null, cannot complete compare for the operator " + operator);                    return null;                }                if (convertedValue2 == null) {                    messages.add("Right value is null, cannot complete compare for the operator " + operator);                    return null;                }            }        }        if ("contains".equals(operator)) {            if ("java.lang.String".equals(type) || "PlainString".equals(type)) {                String str1 = (String) convertedValue1;                String str2 = (String) convertedValue2;                if (str1.indexOf(str2) < 0) {                    return Boolean.FALSE;                } else {                    return Boolean.TRUE;                }            } else {                messages.add("Error in XML file: cannot do a contains compare between a String and a non-String type");                return null;            }        } else if ("is-empty".equals(operator)) {            if (convertedValue1 == null)                return Boolean.TRUE;            if (convertedValue1 instanceof String && ((String) convertedValue1).length() == 0)                return Boolean.TRUE;            if (convertedValue1 instanceof List && ((List) convertedValue1).size() == 0)                return Boolean.TRUE;            if (convertedValue1 instanceof Map && ((Map) convertedValue1).size() == 0)                return Boolean.TRUE;            return Boolean.FALSE;            } else if ("is-not-empty".equals(operator)) {            if (convertedValue1 == null)                 return Boolean.FALSE;            if (convertedValue1 instanceof String && ((String) convertedValue1).length() == 0)                return Boolean.FALSE;            if (convertedValue1 instanceof List && ((List) convertedValue1).size() == 0)                return Boolean.FALSE;            if (convertedValue1 instanceof Map && ((Map) convertedValue1).size() == 0)                return Boolean.FALSE;            return Boolean.TRUE;            }                if ("java.lang.String".equals(type) || "PlainString".equals(type)) {            String str1 = (String) convertedValue1;            String str2 = (String) convertedValue2;            if (str1.length() == 0 || str2.length() == 0) {                if ("equals".equals(operator)) {                    if (str1.length() == 0 && str2.length() == 0) {                        return Boolean.TRUE;                    } else {                        return Boolean.FALSE;                    }                } else if ("not-equals".equals(operator)) {                    if (str1.length() == 0 && str2.length() == 0) {                        return Boolean.FALSE;                    } else {                        return Boolean.TRUE;                    }                } else {                    messages.add("ERROR: Could not do a compare between strings with one empty string for the operator " + operator);                    return null;                }            }            result = str1.compareTo(str2);        } else if ("java.lang.Double".equals(type) || "java.lang.Float".equals(type) || "java.lang.Long".equals(type) || "java.lang.Integer".equals(type) || "java.math.BigDecimal".equals(type)) {            Number tempNum = (Number) convertedValue1;            double value1Double = tempNum.doubleValue();            tempNum = (Number) convertedValue2;            double value2Double = tempNum.doubleValue();            if (value1Double < value2Double)                result = -1;            else if (value1Double > value2Double)                result = 1;            else                result = 0;        } else if ("java.sql.Date".equals(type)) {            java.sql.Date value1Date = (java.sql.Date) convertedValue1;            java.sql.Date value2Date = (java.sql.Date) convertedValue2;            result = value1Date.compareTo(value2Date);        } else if ("java.sql.Time".equals(type)) {            java.sql.Time value1Time = (java.sql.Time) convertedValue1;            java.sql.Time value2Time = (java.sql.Time) convertedValue2;            result = value1Time.compareTo(value2Time);        } else if ("java.sql.Timestamp".equals(type)) {            java.sql.Timestamp value1Timestamp = (java.sql.Timestamp) convertedValue1;            java.sql.Timestamp value2Timestamp = (java.sql.Timestamp) convertedValue2;            result = value1Timestamp.compareTo(value2Timestamp);        } else if ("java.lang.Boolean".equals(type)) {            Boolean value1Boolean = (Boolean) convertedValue1;            Boolean value2Boolean = (Boolean) convertedValue2;            if ("equals".equals(operator)) {                if ((value1Boolean.booleanValue() && value2Boolean.booleanValue()) || (!value1Boolean.booleanValue() && !value2Boolean.booleanValue()))                    result = 0;                else                    result = 1;            } else if ("not-equals".equals(operator)) {                if ((!value1Boolean.booleanValue() && value2Boolean.booleanValue()) || (value1Boolean.booleanValue() && !value2Boolean.booleanValue()))                    result = 0;                else                    result = 1;            } else {                messages.add("Can only compare Booleans using the operators 'equals' or 'not-equals'");                return null;            }        } else if ("java.lang.Object".equals(type)) {            if (convertedValue1.equals(convertedValue2)) {                result = 0;            } else {                result = 1;            }        } else {            messages.add("Type \"" + type + "\" specified for compare not supported.");            return null;        }        if (verboseOn) Debug.logVerbose("Got Compare result: " + result + ", operator: " + operator, module);        if ("less".equals(operator)) {            if (result >= 0)                return Boolean.FALSE;        } else if ("greater".equals(operator)) {            if (result <= 0)                return Boolean.FALSE;        } else if ("less-equals".equals(operator)) {            if (result > 0)                return Boolean.FALSE;        } else if ("greater-equals".equals(operator)) {            if (result < 0)                return Boolean.FALSE;        } else if ("equals".equals(operator)) {            if (result != 0)                return Boolean.FALSE;        } else if ("not-equals".equals(operator)) {            if (result == 0)                return Boolean.FALSE;        } else {            messages.add("Specified compare operator \"" + operator + "\" not known.");            return null;        }        if (verboseOn) Debug.logVerbose("Returning true", module);        return Boolean.TRUE;    }        public static boolean isEmpty(Object value) {        if (value == null) return true;                if (value instanceof String) {            if (((String) value).length() == 0) {                return true;            }        } else if (value instanceof Collection) {            if (((Collection) value).size() == 0) {                return true;            }        } else if (value instanceof Map) {            if (((Map) value).size() == 0) {                return true;            }        }        return false;    }        public static final class NullObject {        public NullObject() { }                public String toString() {            return "ObjectType.NullObject";        }                public boolean equals(Object other) {            if (other instanceof NullObject) {                // should do equality of object? don't think so, just same type                return true;            } else {                return false;            }        }    }}

⌨️ 快捷键说明

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