/* ******************************************************************* * Copyright (c) 1999-2001 Xerox Corporation, * 2002 Palo Alto Research Center, Incorporated (PARC). * All rights reserved. * This program and the accompanying materials are made available * under the terms of the Eclipse Public License v1.0 * which accompanies this distribution and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Xerox/PARC initial implementation * ******************************************************************/ package org.aspectj.runtime.internal; public final class Conversions { // Can't make instances of me private Conversions() {} // we might want to keep a cache of small integers around public static Object intObject(int i) { return new Integer(i); } public static Object shortObject(short i) { return new Short(i); } public static Object byteObject(byte i) { return new Byte(i); } public static Object charObject(char i) { return new Character(i); } public static Object longObject(long i) { return new Long(i); } public static Object floatObject(float i) { return new Float(i); } public static Object doubleObject(double i) { return new Double(i); } public static Object booleanObject(boolean i) { return new Boolean(i); } public static Object voidObject() { return null; } public static int intValue(Object o) { if (o == null) { return 0; } else if (o instanceof Number) { return ((Number)o).intValue(); } else { throw new ClassCastException(o.getClass().getName() + " can not be converted to int"); } } public static long longValue(Object o) { if (o == null) { return 0; } else if (o instanceof Number) { return ((Number)o).longValue(); } else { throw new ClassCastException(o.getClass().getName() + " can not be converted to long"); } } public static float floatValue(Object o) { if (o == null) { return 0; } else if (o instanceof Number) { return ((Number)o).floatValue(); } else { throw new ClassCastException(o.getClass().getName() + " can not be converted to float"); } } public static double doubleValue(Object o) { if (o == null) { return 0; } else if (o instanceof Number) { return ((Number)o).doubleValue(); } else { throw new ClassCastException(o.getClass().getName() + " can not be converted to double"); } } public static byte byteValue(Object o) { if (o == null) { return 0; } else if (o instanceof Number) { return ((Number)o).byteValue(); } else { throw new ClassCastException(o.getClass().getName() + " can not be converted to byte"); } } public static short shortValue(Object o) { if (o == null) { return 0; } else if (o instanceof Number) { return ((Number)o).shortValue(); } else { throw new ClassCastException(o.getClass().getName() + " can not be converted to short"); } } public static char charValue(Object o) { if (o == null) { return 0; } else if (o instanceof Character) { return ((Character)o).charValue(); } else { throw new ClassCastException(o.getClass().getName() + " can not be converted to char"); } } public static boolean booleanValue(Object o) { if (o == null) { return false; } else if (o instanceof Boolean) { return ((Boolean)o).booleanValue(); } else { throw new ClassCastException(o.getClass().getName() + " can not be converted to boolean"); } } // identity function for now. This is not typed to "void" because we happen // to know that in Java, any void context (i.e., {@link ExprStmt}) // can also handle a return value. public static Object voidValue(Object o) { if (o == null) { return o; } else { // !!! this may be an error in the future return o; } } }