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]>

Reply via email to