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());
+ }
}
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.