/*
* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the Classpath exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.sun.btrace.runtime;
import java.util.regex.Pattern;
import com.sun.btrace.annotations.BTrace;
import com.sun.btrace.annotations.Kind;
import com.sun.btrace.annotations.Level;
import com.sun.btrace.annotations.Location;
import com.sun.btrace.annotations.OnMethod;
import com.sun.btrace.annotations.OnProbe;
import com.sun.btrace.annotations.Where;
import com.sun.btrace.AnyType;
import com.sun.btrace.BTraceRuntime;
import com.sun.btrace.BTraceUtils;
import com.sun.btrace.annotations.*;
import com.sun.btrace.org.objectweb.asm.Type;
import com.sun.btrace.services.api.Service;
/**
* Constants shared by few classes.
*
* @author A. Sundararajan
*/
public abstract class Constants {
public static final String BTRACE_METHOD_PREFIX =
"$btrace$";
public static final String CONSTRUCTOR = "<init>";
public static final String CLASS_INITIALIZER = "<clinit>";
public static final Type VOIDREF_TYPE = Type.getType("Ljava/lang/Void;");
public static final String OBJECT_INTERNAL = "java/lang/Object";
public static final String OBJECT_DESC = "L" + OBJECT_INTERNAL + ";";
public static final Type OBJECT_TYPE = Type.getType(OBJECT_DESC);
public static final String ANYTYPE_INTERNAL = "com/sun/btrace/AnyType";
public static final String ANYTYPE_DESC = "L" + ANYTYPE_INTERNAL + ";";
public static final Type ANYTYPE_TYPE = Type.getType(ANYTYPE_DESC);
public static final String CLASS_DESC = "Ljava/lang/Class;";
public static final Type CLASS_TYPE = Type.getType(CLASS_DESC);
public static final String STRING_INTERNAL = "java/lang/String";
public static final String STRING_DESC = "L" + STRING_INTERNAL + ";";
public static final Type STRING_TYPE = Type.getType(STRING_DESC);
public static final String VOID_DESC = "V";
public static final String BOOLEAN_DESC = "Z";
public static final String INT_DESC = "I";
public static final String THROWABLE_INTERNAL = "java/lang/Throwable";
public static final String THROWABLE_DESC = "L" + THROWABLE_INTERNAL + ";";
public static final Type THROWABLE_TYPE = Type.getType(THROWABLE_DESC);
public static final String BTRACERT_INTERNAL = "com/sun/btrace/BTraceRuntime";
public static final String BTRACERT_DESC = "L" + BTRACERT_INTERNAL + ";";
public static final Type BTRACERT_TYPE = Type.getType(BTRACERT_DESC);
public static final String THREAD_LOCAL_INTERNAL = "java/lang/ThreadLocal";
public static final String THREAD_LOCAL_DESC = "L" + THREAD_LOCAL_INTERNAL + ";";
public static final Type THREAD_LOCAL_TYPE = Type.getType(ThreadLocal.class);
// BTrace specific stuff
public static final String BTRACE_UTILS =
Type.getInternalName(BTraceUtils.class);
public static final String SERVICE =
Type.getInternalName(Service.class);
public static final String BTRACE_DESC =
Type.getDescriptor(BTrace.class);
public static final String ONMETHOD_DESC =
Type.getDescriptor(OnMethod.class);
public static final String BTRACE_PROBECLASSNAME_DESC =
Type.getDescriptor(ProbeClassName.class);
public static final String BTRACE_PROBEMETHODNAME_DESC =
Type.getDescriptor(ProbeMethodName.class);
public static final String ONTIMER_DESC =
Type.getDescriptor(OnTimer.class);
public static final String ONEVENT_DESC =
Type.getDescriptor(OnEvent.class);
public static final String ONEXIT_DESC =
Type.getDescriptor(OnExit.class);
public static final String ONERROR_DESC =
Type.getDescriptor(OnError.class);
public static final String SAMPLED_DESC =
Type.getDescriptor(Sampled.class);
public static final String SAMPLER_DESC =
Type.getDescriptor(Sampled.Sampler.class);
public static final String ONPROBE_DESC =
Type.getDescriptor(OnProbe.class);
public static final String LOCATION_DESC =
Type.getDescriptor(Location.class);
public static final String LEVEL_DESC =
Type.getDescriptor(Level.class);
public static final String WHERE_DESC =
Type.getDescriptor(Where.class);
public static final String KIND_DESC =
Type.getDescriptor(Kind.class);
public static final String INJECTED_DESC =
Type.getDescriptor(Injected.class);
public static final String RETURN_DESC =
Type.getDescriptor(Return.class);
public static final String SELF_DESC =
Type.getDescriptor(Self.class);
public static final String TARGETMETHOD_DESC =
Type.getDescriptor(TargetMethodOrField.class);
public static final String TARGETINSTANCE_DESC =
Type.getDescriptor(TargetInstance.class);
public static final String DURATION_DESC =
Type.getDescriptor(Duration.class);
// class name pattern is specified with this pattern
public static final Pattern REGEX_SPECIFIER = Pattern.compile("/.+/");
public static final String JAVA_LANG_THREAD_LOCAL =
Type.getInternalName(ThreadLocal.class);
public static final String JAVA_LANG_THREAD_LOCAL_GET = "get";
public static final String JAVA_LANG_THREAD_LOCAL_GET_DESC = "()Ljava/lang/Object;";
public static final String JAVA_LANG_THREAD_LOCAL_SET = "set";
public static final String JAVA_LANG_THREAD_LOCAL_SET_DESC = "(Ljava/lang/Object;)V";
public static final String NUMBER_INTERNAL = "java/lang/Number";
public static final String INTEGER_BOXED_INTERNAL = "java/lang/Integer";
public static final String INTEGER_BOXED_DESC = "L" + INTEGER_BOXED_INTERNAL + ";";
public static final String SHORT_BOXED_INTERNAL = "java/lang/Short";
public static final String SHORT_BOXED_DESC = "L" + SHORT_BOXED_INTERNAL + ";";
public static final String LONG_BOXED_INTERNAL = "java/lang/Long";
public static final String LONG_BOXED_DESC = "L" + LONG_BOXED_INTERNAL + ";";
public static final String FLOAT_BOXED_INTERNAL = "java/lang/Float";
public static final String FLOAT_BOXED_DESC = "L" + FLOAT_BOXED_INTERNAL + ";";
public static final String DOUBLE_BOXED_INTERNAL = "java/lang/Double";
public static final String DOUBLE_BOXED_DESC = "L" + DOUBLE_BOXED_INTERNAL + ";";
public static final String BYTE_BOXED_INTERNAL = "java/lang/Byte";
public static final String BYTE_BOXED_DESC = "L" + BYTE_BOXED_INTERNAL + ";";
public static final String BOOLEAN_BOXED_INTERNAL = "java/lang/Boolean";
public static final String BOOLEAN_BOXED_DESC = "L" + BOOLEAN_BOXED_INTERNAL + ";";
public static final String CHARACTER_BOXED_INTERNAL = "java/lang/Character";
public static final String CHARACTER_BOXED_DESC = "L" + CHARACTER_BOXED_INTERNAL + ";";
public static final String BOX_VALUEOF = "valueOf";
public static final String BOX_BOOLEAN_DESC = "(" + BOOLEAN_DESC + ")" + BOOLEAN_BOXED_DESC;
public static final String BOX_CHARACTER_DESC = "(C)Ljava/lang/Character;";
public static final String BOX_BYTE_DESC = "(B)Ljava/lang/Byte;";
public static final String BOX_SHORT_DESC = "(S)Ljava/lang/Short;";
public static final String BOX_INTEGER_DESC = "(I)Ljava/lang/Integer;";
public static final String BOX_LONG_DESC = "(J)Ljava/lang/Long;";
public static final String BOX_FLOAT_DESC = "(F)Ljava/lang/Float;";
public static final String BOX_DOUBLE_DESC = "(D)Ljava/lang/Double;";
public static final String BOOLEAN_VALUE = "booleanValue";
public static final String CHAR_VALUE = "charValue";
public static final String BYTE_VALUE = "byteValue";
public static final String SHORT_VALUE = "shortValue";
public static final String INT_VALUE = "intValue";
public static final String LONG_VALUE = "longValue";
public static final String FLOAT_VALUE = "floatValue";
public static final String DOUBLE_VALUE = "doubleValue";
public static final String BOOLEAN_VALUE_DESC= "()Z";
public static final String CHAR_VALUE_DESC= "()C";
public static final String BYTE_VALUE_DESC= "()B";
public static final String SHORT_VALUE_DESC= "()S";
public static final String INT_VALUE_DESC= "()I";
public static final String LONG_VALUE_DESC= "()J";
public static final String FLOAT_VALUE_DESC= "()F";
public static final String DOUBLE_VALUE_DESC= "()D";
public static final String EMBEDDED_BTRACE_SECTION_HEADER = "META-INF/btrace/";
public static final String BTRACE_LEVEL_FLD = "$btrace$$level";
}