當前位置: 首頁>>代碼示例>>Java>>正文


Java DataTypeUtil類代碼示例

本文整理匯總了Java中com.taobao.tddl.optimizer.core.datatype.DataTypeUtil的典型用法代碼示例。如果您正苦於以下問題:Java DataTypeUtil類的具體用法?Java DataTypeUtil怎麽用?Java DataTypeUtil使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


DataTypeUtil類屬於com.taobao.tddl.optimizer.core.datatype包,在下文中一共展示了DataTypeUtil類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: doMin

import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //導入依賴的package包/類
private void doMin(Object[] args) {
    Object o = args[0];

    DataType type = this.getReturnType();
    if (type == null) {
        if (o != null) {
            type = DataTypeUtil.getTypeOfObject(o);
        }
    }

    if (o != null) {
        if (result == null) {
            result = o;
        }

        if (type.compare(o, result) < 0) {
            result = o;
        }
    }
}
 
開發者ID:loye168,項目名稱:tddl5,代碼行數:21,代碼來源:Min.java

示例2: doMax

import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //導入依賴的package包/類
private void doMax(Object[] args) {
    Object o = args[0];
    DataType type = this.getReturnType();

    if (type == null) {
        if (o != null) {
            type = DataTypeUtil.getTypeOfObject(o);
        }
    }
    if (o != null) {
        if (result == null) {
            result = o;
        }
        if (type.compare(o, result) > 0) {
            result = o;
        }

    }
}
 
開發者ID:loye168,項目名稱:tddl5,代碼行數:20,代碼來源:Max.java

示例3: compute

import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //導入依賴的package包/類
@Override
public Object compute(Object[] args, ExecutionContext ec) {
    if (ExecUtils.isNull(args[0])) {
        return null;
    }

    DataType type = DataTypeUtil.getTypeOfObject(args[0]);
    if (type == DataType.StringType) {
        String strVal = DataType.StringType.convertFrom(args[0]);
        StringBuilder sb = new StringBuilder();
        for (Byte b : strVal.getBytes()) {
            sb.append(Integer.toHexString(b & 0xff));
        }
        return sb.toString();
    } else {
        BigInteger intVal = DataType.BigIntegerType.convertFrom(args[0]);
        return intVal.toString(16).toUpperCase();
    }
}
 
開發者ID:loye168,項目名稱:tddl5,代碼行數:20,代碼來源:Hex.java

示例4: comp

import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //導入依賴的package包/類
public static int comp(Object c1, Object c2, IOrderBy order) {
    DataType type = order.getColumn().getDataType();
    if (type == null) {
        type = DataTypeUtil.getTypeOfObject(c1);
    }

    int n = type.compare(c1, c2);
    if (n == 0) {
        return n;
    }
    boolean isAsc = order.getDirection();
    if (isAsc) {
        return n;
    } else {
        return n < 0 ? 1 : -1;
    }
}
 
開發者ID:loye168,項目名稱:tddl5,代碼行數:18,代碼來源:ExecUtils.java

示例5: convertType

import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //導入依賴的package包/類
public static Object convertType(Object value, DataType type) {
    if (value == null) {
        return null;
    }

    if (type == null || value instanceof BindVal || value instanceof IFunction || value instanceof NullValue) {
        return value;
    }

    if (DataTypeUtil.isDateType(type)) {
        // 針對時間類型,不做轉換
        // 針對where date < '2014-05-23 00:00:01',如果按照date類型進行轉換,會丟失秒精度,導致結果出錯
        return value;
    } else {
        return type.convertFrom(value);
    }
}
 
開發者ID:loye168,項目名稱:tddl5,代碼行數:18,代碼來源:OptimizerUtils.java

示例6: getMapReturnType

import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //導入依賴的package包/類
@Override
public DataType getMapReturnType() {
    Object[] args = function.getArgs().toArray();
    DataType type = null;
    if (args[0] instanceof ISelectable) {
        type = ((ISelectable) args[0]).getDataType();
    }

    if (type == null) {
        type = DataTypeUtil.getTypeOfObject(args[0]);
    }

    if (type == DataType.BigIntegerType) {
        // 如果是大整數,返回bigDecimal
        return DataType.BigDecimalType;
    } else {
        // 盡可能都返回為BigDecimalType,double類型容易出現精度問題,會和mysql出現誤差
        // [zhuoxue.yll, 2516885.8000]
        // [zhuoxue.yll, 2516885.799999999813735485076904296875]
        // return DataType.DoubleType;
        return DataType.BigDecimalType;
    }
}
 
開發者ID:beebeandwer,項目名稱:TDDL,代碼行數:24,代碼來源:Avg.java

示例7: getSumType

import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //導入依賴的package包/類
public DataType getSumType() {
    Object[] args = function.getArgs().toArray();
    DataType type = null;
    if (args[0] instanceof ISelectable) {
        type = ((ISelectable) args[0]).getDataType();
    }

    if (type == null) {
        type = DataTypeUtil.getTypeOfObject(args[0]);
    }
    if (type == DataType.IntegerType || type == DataType.ShortType) {
        return DataType.LongType;
    } else {
        return type;
    }
}
 
開發者ID:beebeandwer,項目名稱:TDDL,代碼行數:17,代碼來源:Avg.java

示例8: getMapReturnType

import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //導入依賴的package包/類
@Override
public DataType getMapReturnType() {
    Object[] args = function.getArgs().toArray();
    DataType type = null;
    if (args[0] instanceof ISelectable) {
        type = ((ISelectable) args[0]).getDataType();
    }
    if (type == null) {
        type = DataTypeUtil.getTypeOfObject(args[0]);
    }
    if (type == DataType.IntegerType || type == DataType.ShortType) {
        return DataType.LongType;
    } else {
        return type;
    }
}
 
開發者ID:beebeandwer,項目名稱:TDDL,代碼行數:17,代碼來源:Sum.java

示例9: getReturnType

import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //導入依賴的package包/類
@Override
public DataType getReturnType() {
    Object[] args = function.getArgs().toArray();
    DataType type = null;
    if (args[0] instanceof ISelectable) {
        type = ((ISelectable) args[0]).getDataType();
    }
    if (type == null) {
        type = DataTypeUtil.getTypeOfObject(args[0]);
    }

    if (type == DataType.BigIntegerType || type == DataType.BigDecimalType) {
        return DataType.BigIntegerType;
    } else {
        return DataType.LongType;
    }
}
 
開發者ID:beebeandwer,項目名稱:TDDL,代碼行數:18,代碼來源:BitXor.java

示例10: getReturnType

import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //導入依賴的package包/類
@Override
public DataType getReturnType() {
    Object[] args = function.getArgs().toArray();
    DataType type = null;
    if (args[0] instanceof ISelectable) {
        type = ((ISelectable) args[0]).getDataType();
    }
    if (type == null) {
        type = DataTypeUtil.getTypeOfObject(args[0]);
    }
    if (type == DataType.BooleanType) {
        return DataType.BooleanType;
    } else {
        return DataType.IntegerType;
    }
}
 
開發者ID:beebeandwer,項目名稱:TDDL,代碼行數:17,代碼來源:Not.java

示例11: getReturnType

import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //導入依賴的package包/類
@Override
public DataType getReturnType() {
    Object[] args = function.getArgs().toArray();
    DataType type = null;
    if (args[0] instanceof ISelectable) {
        type = ((ISelectable) args[0]).getDataType();
    }
    if (type == null) {
        type = DataTypeUtil.getTypeOfObject(args[0]);
    }
    if (type == DataType.BigIntegerType) {
        // 如果是大整數,返回bigDecimal
        return DataType.BigDecimalType;
    } else {
        // 盡可能都返回為BigDecimalType,double類型容易出現精度問題,會和mysql出現誤差
        // [zhuoxue.yll, 2516885.8000]
        // [zhuoxue.yll, 2516885.799999999813735485076904296875]
        // return DataType.DoubleType;
        return DataType.BigDecimalType;
    }
}
 
開發者ID:beebeandwer,項目名稱:TDDL,代碼行數:22,代碼來源:Division.java

示例12: getReturnType

import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //導入依賴的package包/類
@Override
public DataType getReturnType() {
    Object[] args = function.getArgs().toArray();
    DataType type = null;
    if (args[0] instanceof ISelectable) {
        type = ((ISelectable) args[0]).getDataType();
    }
    if (type == null) {
        type = DataTypeUtil.getTypeOfObject(args[0]);
    }
    if (type == DataType.IntegerType || type == DataType.ShortType) {
        return DataType.LongType;
    } else {
        return type;
    }
}
 
開發者ID:beebeandwer,項目名稱:TDDL,代碼行數:17,代碼來源:Multiply.java

示例13: comp

import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //導入依賴的package包/類
public static int comp(Comparable c1, Comparable c2, IOrderBy order) {
    DataType type = order.getColumn().getDataType();
    if (type == null) {
        type = DataTypeUtil.getTypeOfObject(c1);
    }

    int n = type.compare(c1, c2);
    if (n == 0) {
        return n;
    }
    boolean isAsc = order.getDirection();
    if (isAsc) {
        return n;
    } else {
        return n < 0 ? 1 : -1;
    }
}
 
開發者ID:beebeandwer,項目名稱:TDDL,代碼行數:18,代碼來源:ExecUtils.java

示例14: getRange

import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //導入依賴的package包/類
/**
 * 構造Range對象
 * 
 * @param f
 * @return
 */
protected Range getRange(IBooleanFilter f) {
    DataType type = getColumn(f).getDataType();

    if (type == null) {
        type = DataTypeUtil.getTypeOfObject(f.getValue());
    }

    switch (f.getOperation()) {
        case EQ:
            return new Range(null, type, getValue(f), getValue(f));
        case GT:
            return new Range(null, type, getValue(f), false, null, true);
        case GT_EQ:
            return new Range(null, type, getValue(f), true, null, true);
        case LT:
            return new Range(null, type, null, true, getValue(f), false);
        case LT_EQ:
            return new Range(null, type, null, true, getValue(f), true);
        default:
            return null;
    }

}
 
開發者ID:beebeandwer,項目名稱:TDDL,代碼行數:30,代碼來源:AbstractRangeProcessor.java

示例15: getArgType

import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //導入依賴的package包/類
/**
 * 返回對應類型的DataType
 */
protected DataType getArgType(Object arg) {
    DataType type = null;
    if (arg instanceof ISelectable) {
        type = ((ISelectable) arg).getDataType();
    }
    if (type == null) {
        type = DataTypeUtil.getTypeOfObject(arg);
    }
    return type;
}
 
開發者ID:loye168,項目名稱:tddl5,代碼行數:14,代碼來源:ExtraFunction.java


注:本文中的com.taobao.tddl.optimizer.core.datatype.DataTypeUtil類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。