// Copyright 2008-2021 Jacky Zong . All rights reserved.
// 金鳞岂是池中物
// 一遇風雲变化龍
package com.alibaba.jvm.sandbox.api.event;
/**
* 调用事件
* JVM方法调用事件
*
*
*/
public abstract class Event {
/**
* 事件类型
*/
public final Type type;
/**
* 构造调用事件
*
* @param type 事件类型
*/
protected Event(Type type) {
this.type = type;
}
/**
* 事件枚举类型
*/
public enum Type {
/**
* 调用:BEFORE
*/
BEFORE,
/**
* 调用:RETURN
*/
RETURN,
/**
* 调用:THROWS
*/
THROWS,
/**
* 调用:LINE
* 一行被调用了
*/
LINE,
/**
* 调用:CALL_BEFORE
* 一个方法被调用之前
*/
CALL_BEFORE,
/**
* 调用:CALL_RETURN
* 一个方法被调用正常返回之后
*/
CALL_RETURN,
/**
* 调用:CALL_THROWS
* 一个方法被调用抛出异常之后
*/
CALL_THROWS,
/**
* 立即调用:RETURN
* 由{@link com.alibaba.jvm.sandbox.api.ProcessControlException#throwReturnImmediately(Object)}触发
*/
IMMEDIATELY_RETURN,
/**
* 立即调用:THROWS
* 由{@link com.alibaba.jvm.sandbox.api.ProcessControlException#throwThrowsImmediately(Throwable)}触发
*/
IMMEDIATELY_THROWS;
/**
* 空类型
*
* @since {@code sandbox-api:1.3.0}
*/
public static final Event.Type[] EMPTY = new Event.Type[0];
}
}