org.eclipse.jdt.core.util.IStackMapFrame Maven / Gradle / Ivy
/*******************************************************************************
* Copyright (c) 2000, 2009 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.core.util;
/**
* Description of a stack map frame as specified in the JVM specifications.
*
* This interface may be implemented by clients.
*
* @since 3.2
*/
public interface IStackMapFrame {
/**
* Answer back the frame type for this entry.
*
*
* Type
* Range
*
*
* SAME
* 0-63
*
*
* SAME_LOCALS_1_STACK_ITEM
* 64-127
*
*
* SAME_LOCALS_1_STACK_ITEM_EXTENDED
* 247
*
*
* CHOP
* 248-250
*
*
* SAME_FRAME_EXTENDED
* 251
*
*
* APPEND
* 252-254
*
*
* FULL_FRAME
* 255
*
*
*
* @return the frame type for this entry
*/
int getFrameType();
/**
* Answer back the offset delta.
* This is not defined only for the frame types SAME and SAME_LOCALS_1_STACK_ITEM.
*
* @return the offset delta
*/
int getOffsetDelta();
/**
* Answer back the number of locals.
* This is defined only for the frame type FULL_FRAME.
*
* @return the number of locals
*/
int getNumberOfLocals();
/**
* Answer back verification infos for the defined locals.
* This is defined only for frame types APPEND and FULL_FRAME.
*
* @return verification infos for the defined locals
*/
IVerificationTypeInfo[] getLocals();
/**
* Answer back the number of stack items
*
This is defined only for the frame types SAME_LOCALS_1_STACK_ITEM, SAME_LOCALS_1_STACK_ITEM_EXTENDED and FULL_FRAME.
* For SAME_LOCALS_1_STACK_ITEM and SAME_LOCALS_1_STACK_ITEM_EXTENDED, the answer is implicitely 1.
*
* @return the number of stack items
*/
int getNumberOfStackItems();
/**
* Answer back the verification infos for the stack items.
*
* @return the verification infos for the stack items
*/
IVerificationTypeInfo[] getStackItems();
}