All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scouter.util.CastUtil Maven / Gradle / Ivy

/*
 *  Copyright 2015 the original author or authors. 
 *  @https://github.com/scouter-project/scouter
 *
 *  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 scouter.util;

import java.text.DecimalFormat;

import scouter.lang.value.BooleanValue;

public class CastUtil {
	public static int cint(Object value) {
		if (value == null) {
			return 0;
		} else if (value instanceof Number) {
			return ((Number) value).intValue();
		} else {
			try {
				return Integer.parseInt(toString(value));
			} catch (Exception e) {
				return 0;
			}
		}
	}

	public static Integer cInteger(Object value) {
		return cint(value);
	}

	public static long clong(Object value) {
		if (value == null) {
			return 0;
		} else if (value instanceof Number) {
			return ((Number) value).longValue();
		} else {
			try {
				return Long.parseLong(toString(value));
			} catch (Exception e) {
				return 0L;
			}
		}

	}

	public static Long cLong(Object value) {
		return clong(value);
	}

	public static float cfloat(Object value) {
		if (value == null) {
			return 0f;
		} else if (value instanceof Number) {
			return ((Number) value).floatValue();
		} else {
			try {
				return Float.parseFloat(toString(value));
			} catch (Exception e) {
				return 0f;
			}
		}

	}

	public static Float cFloat(Object value) {
		return cfloat(value);
	}

	public static double cdouble(Object value) {
		if (value == null) {
			return 0;
		} else if (value instanceof Number) {
			return ((Number) value).doubleValue();
		} else {
			try {
				return Double.parseDouble(toString(value));
			} catch (Exception e) {
				return 0;
			}
		}
	}

	public static Double cDouble(Object value) {
		return cdouble(value);
	}

	private static String toString(Object value) {
		if (value instanceof String)
			return (String) value;
		return value.toString();
	}

	public static String cString(Object value) {
		if (value == null) {
			return "";
		} else if (value instanceof Number) {
			if (value instanceof Double || value instanceof Float) {
				return new DecimalFormat("#0.0#######").format(value);
			} else {
				return new DecimalFormat("#0").format(value);
			}
		} else {
			return toString(value);
		}
	}

	public static boolean cboolean(Object value) {
		if (value == null) {
			return false;
		} else if (value instanceof Boolean) {
			return ((Boolean) value).booleanValue();
		} else if (value instanceof BooleanValue) {
			return ((BooleanValue) value).value;
		} else {
			return "true".equalsIgnoreCase(toString(value));
		}
	}

	public static Boolean cBoolean(Object value) {
		return cboolean(value);
	}

	public static void main(String[] args) {
		System.out.println((long) CastUtil.cdouble("9876544321.0"));
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy