/**************************************************************************************
 * Copyright (c) Jonas BonŽr, Alexandre Vasseur. All rights reserved.                 *
 * http://aspectwerkz.codehaus.org                                                    *
 * ---------------------------------------------------------------------------------- *
 * The software in this package is published under the terms of the LGPL license      *
 * a copy of which has been included with this distribution in the license.txt file.  *
 **************************************************************************************/
package org.codehaus.aspectwerkz.transform.inlining;

import java.util.ArrayList;
import java.util.List;

import org.codehaus.aspectwerkz.transform.TransformationUtil;

/**
 * Interface with common constants used in the transformation process.
 * 
 * @author <a href="mailto:jboner@codehaus.org">Jonas BonŽr </a>
 */
public interface TransformationConstants {
    public static final List EMTPTY_ARRAY_LIST = new ArrayList();

    // prefixes
    public static final String JOIN_POINT_BASE_CLASS_SUFFIX = TransformationUtil.ASPECTWERKZ_PREFIX + "JoinPointBase";

    public static final String JOIN_POINT_CLASS_SUFFIX = TransformationUtil.ASPECTWERKZ_PREFIX + "JoinPoint";

    public static final String CLASS_LOADER_REFLECT_CLASS_NAME = "java.lang.ClassLoader";

    public static final String DEFINE_CLASS_METHOD_NAME = "defineClass";

    // java types and signatures
    public static final String SHORT_CLASS_NAME = "java/lang/Short";

    public static final String INTEGER_CLASS_NAME = "java/lang/Integer";

    public static final String LONG_CLASS_NAME = "java/lang/Long";

    public static final String FLOAT_CLASS_NAME = "java/lang/Float";

    public static final String DOUBLE_CLASS_NAME = "java/lang/Double";

    public static final String BYTE_CLASS_NAME = "java/lang/Byte";

    public static final String BOOLEAN_CLASS_NAME = "java/lang/Boolean";

    public static final String CHARACTER_CLASS_NAME = "java/lang/Character";

    public static final String OBJECT_CLASS_SIGNATURE = "Ljava/lang/Object;";

    public static final String OBJECT_CLASS = "java/lang/Object";

    public static final String CLASS_CLASS_SIGNATURE = "Ljava/lang/Class;";

    public static final String CLASS_CLASS = "java/lang/Class";

    public static final String SHORT_VALUE_METHOD_NAME = "shortValue";

    public static final String INT_VALUE_METHOD_NAME = "intValue";

    public static final String LONG_VALUE_METHOD_NAME = "longValue";

    public static final String FLOAT_VALUE_METHOD_NAME = "floatValue";

    public static final String DOUBLE_VALUE_METHOD_NAME = "doubleValue";

    public static final String BYTE_VALUE_METHOD_NAME = "byteValue";

    public static final String BOOLEAN_VALUE_METHOD_NAME = "booleanValue";

    public static final String CHAR_VALUE_METHOD_NAME = "charValue";

    public static final String CHAR_VALUE_METHOD_SIGNATURE = "()C";

    public static final String BOOLEAN_VALUE_METHOD_SIGNATURE = "()Z";

    public static final String BYTE_VALUE_METHOD_SIGNATURE = "()B";

    public static final String DOUBLE_VALUE_METHOD_SIGNATURE = "()D";

    public static final String FLOAT_VALUE_METHOD_SIGNATURE = "()F";

    public static final String LONG_VALUE_METHOD_SIGNATURE = "()J";

    public static final String INT_VALUE_METHOD_SIGNATURE = "()I";

    public static final String SHORT_VALUE_METHOD_SIGNATURE = "()S";

    public static final String SHORT_CLASS_INIT_METHOD_SIGNATURE = "(S)V";

    public static final String INTEGER_CLASS_INIT_METHOD_SIGNATURE = "(I)V";

    public static final String LONG_CLASS_INIT_METHOD_SIGNATURE = "(J)V";

    public static final String FLOAT_CLASS_INIT_METHOD_SIGNATURE = "(F)V";

    public static final String DOUBLE_CLASS_INIT_METHOD_SIGNATURE = "(D)V";

    public static final String BYTE_CLASS_INIT_METHOD_SIGNATURE = "(B)V";

    public static final String BOOLEAN_CLASS_INIT_METHOD_SIGNATURE = "(Z)V";

    public static final String CHARACTER_CLASS_INIT_METHOD_SIGNATURE = "(C)V";

    public static final String THROWABLE_CLASS_NAME = "java/lang/Throwable";

    public static final String INIT_METHOD_NAME = "<init>";

    public static final String CLINIT_METHOD_NAME = "<clinit>";

    public static final String L = "L";

    public static final String I = "I";

    public static final String SEMICOLON = ";";

}