mdahm 2002/06/05 04:05:37
Modified: src/java/org/apache/bcel/generic Type.java
Log:
Convert class to type
Revision Changes Path
1.3 +40 -1 jakarta-bcel/src/java/org/apache/bcel/generic/Type.java
Index: Type.java
===================================================================
RCS file: /home/cvs/jakarta-bcel/src/java/org/apache/bcel/generic/Type.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Type.java 24 Apr 2002 11:01:31 -0000 1.2
+++ Type.java 5 Jun 2002 11:05:37 -0000 1.3
@@ -63,7 +63,7 @@
* Abstract super class for all possible java types, namely basic types
* such as int, object types like String and array types, e.g. int[]
*
- * @version $Id: Type.java,v 1.2 2002/04/24 11:01:31 mdahm Exp $
+ * @version $Id: Type.java,v 1.3 2002/06/05 11:05:37 mdahm Exp $
* @author <A HREF="mailto:[EMAIL PROTECTED]">M. Dahm</A>
*/
public abstract class Type {
@@ -228,5 +228,44 @@
types = new Type[vec.size()];
vec.toArray(types);
return types;
+ }
+
+ public static Type getType(Class cl) {
+ if(cl == null) {
+ throw new IllegalArgumentException("Class must not be null");
+ }
+
+ /* That's an amzingly easy case, because getName() returns
+ * the signature. That's what we would have liked anyway.
+ */
+ if(cl.isArray()) {
+ return getType(cl.getName());
+ } else if(cl.isPrimitive()) {
+ if(cl == Integer.TYPE) {
+ return INT;
+ } else if(cl == Void.TYPE) {
+ return VOID;
+ } else if(cl == Double.TYPE) {
+ return DOUBLE;
+ } else if(cl == Float.TYPE) {
+ return FLOAT;
+ } else if(cl == Boolean.TYPE) {
+ return BOOLEAN;
+ } else if(cl == Byte.TYPE) {
+ return BYTE;
+ } else if(cl == Short.TYPE) {
+ return SHORT;
+ } else if(cl == Byte.TYPE) {
+ return BYTE;
+ } else if(cl == Long.TYPE) {
+ return LONG;
+ } else if(cl == Character.TYPE) {
+ return CHAR;
+ } else {
+ throw new IllegalStateException("Ooops, what primitive type is " + cl);
+ }
+ } else { // "Real" class
+ return new ObjectType(cl.getName());
+ }
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>