Logo Search packages:      
Sourcecode: aspectj version File versions  Download package

AnnotationValue.java

/* *******************************************************************
 * Copyright (c) 2006 Contributors
 * 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: 
 *     Andy Clement IBM     initial implementation 
 * ******************************************************************/
package org.aspectj.weaver;

public abstract class AnnotationValue {

      protected int valueKind;

      public static final int STRING = 's';
      public static final int ENUM_CONSTANT = 'e';
      public static final int CLASS = 'c';
      public static final int ANNOTATION = '@';
      public static final int ARRAY = '[';

      public static final int PRIMITIVE_INT = 'I';
      public static final int PRIMITIVE_BYTE = 'B';
      public static final int PRIMITIVE_CHAR = 'C';
      public static final int PRIMITIVE_DOUBLE = 'D';
      public static final int PRIMITIVE_FLOAT = 'F';
      public static final int PRIMITIVE_LONG = 'J';
      public static final int PRIMITIVE_SHORT = 'S';
      public static final int PRIMITIVE_BOOLEAN = 'Z';

      public abstract String stringify();

      public AnnotationValue(int kind) {
            valueKind = kind;
      }

      public static String whatKindIsThis(int kind) {
            switch (kind) {
            case PRIMITIVE_BYTE: // byte
                  return "byte";
            case PRIMITIVE_CHAR: // char
                  return "char";
            case PRIMITIVE_DOUBLE: // double
                  return "double";
            case PRIMITIVE_FLOAT: // float
                  return "float";
            case PRIMITIVE_INT: // int
                  return "int";
            case PRIMITIVE_LONG: // long
                  return "long";
            case PRIMITIVE_SHORT: // short
                  return "short";
            case PRIMITIVE_BOOLEAN: // boolean
                  return "boolean";
            case 's': // String
                  return "string";
            case 'e': // Enum constant
                  return "enum";
            case 'c': // Class
                  return "class";
            case '@': // Annotation
                  return "annotation";
            case '[': // Array
                  return "array";
            default:
                  throw new RuntimeException("Dont know what this is : " + kind);
            }
      }
}

Generated by  Doxygen 1.6.0   Back to index