/** * * Copyright 2014 The Darks ORM Project (Liu lihua) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package darks.orm.util; public final class DataTypeHelper { private DataTypeHelper() { } public static Object longToOther(Object val, Class<?> dest) { if (val instanceof Long) { Long l = (Long)val; if (dest.equals(Integer.class) || dest.equals(int.class)) { return l.intValue(); } else if (dest.equals(Float.class) || dest.equals(float.class)) { return l.floatValue(); } else if (dest.equals(Double.class) || dest.equals(double.class)) { return l.doubleValue(); } else if (dest.equals(Byte.class) || dest.equals(byte.class)) { return l.byteValue(); } else if (dest.equals(Short.class) || dest.equals(short.class)) { return l.shortValue(); } else if (dest.equals(long.class)) { return l.longValue(); } else if (dest.equals(String.class)) { return String.valueOf(l); } } return val; } /** * �������������͵�ֵ�Ƿ�Ϊ�� * * @param pkclass �� * @param val ֵ * @return */ public static boolean checkValueIsNull(Class<?> pkclass, Object val) { if (val == null) return true; if ((pkclass.equals(int.class) || pkclass.equals(Integer.class)) && (Integer)val <= 0) { return true; } else if ((pkclass.equals(short.class) || pkclass.equals(Short.class)) && (Short)val <= 0) { return true; } else if (pkclass.equals(char.class) && (Integer)val <= 0) { return true; } else if ((pkclass.equals(long.class) || pkclass.equals(Long.class)) && (Long)val <= 0) { return true; } else if ((pkclass.equals(double.class) || pkclass.equals(Double.class)) && (Double)val <= 0) { return true; } else if ((pkclass.equals(float.class) || pkclass.equals(Float.class)) && (Float)val <= 0) { return true; } else if ((pkclass.equals(byte.class) || pkclass.equals(Byte.class)) && (Byte)val <= 0) { return true; } return false; } /** * ������Ƿ�Ϊ������������ * * @param cls �� * @return true �� :false ���� */ public static boolean checkClassIsBasicDataType(Class<?> cls) { if (cls == null) return false; if (cls.equals(int.class) || cls.equals(Integer.class)) { return true; } else if (cls.equals(short.class) || cls.equals(Short.class)) { return true; } else if (cls.equals(long.class) || cls.equals(Long.class)) { return true; } else if (cls.equals(double.class) || cls.equals(Double.class)) { return true; } else if (cls.equals(float.class) || cls.equals(Float.class)) { return true; } else if (cls.equals(byte.class) || cls.equals(Byte.class)) { return true; } return false; } /** * ������Ƿ�Ϊ������������ * * @param cls �� * @return true �� :false ���� */ public static boolean checkClassIsNumberBasicDataType(Class<?> cls) { if (cls == null) return false; if (cls.equals(int.class) || cls.equals(short.class) || cls.equals(long.class) || cls.equals(double.class) || cls.equals(float.class) || cls.equals(byte.class)) { return true; } return false; } }