当前位置: 首页>>代码示例>>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;未经允许,请勿转载。