blob: 0632ae8f832a6052eb53620db5c3e77f2078079a [file] [log] [blame]
/* *******************************************************************
* 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;
}
}
}