Package org.jibx.binding.classes
Class ExceptionMethodBuilder
- java.lang.Object
-
- org.jibx.binding.classes.BindingMethod
-
- org.jibx.binding.classes.MethodBuilder
-
- org.jibx.binding.classes.ExceptionMethodBuilder
-
- Direct Known Subclasses:
ContextMethodBuilder
public class ExceptionMethodBuilder extends MethodBuilder
Builder for simple methods that may just pass checked exceptions on to caller.- Author:
- Dennis M. Sosnoski
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.HashMap
m_slotMap
Map for object to variable assignments.-
Fields inherited from class org.jibx.binding.classes.MethodBuilder
EXCEPTION_CONSTRUCTOR_SIGNATURE1, EXCEPTION_CONSTRUCTOR_SIGNATURE2, FRAMEWORK_EXCEPTION_CLASS, m_exceptions, m_generator, m_hashCode, m_instructionBuilder, m_item, m_method, m_targetBranches, m_valueMap, s_argNameLists, SYNTHETIC_ACCESS_FLAG
-
-
Constructor Summary
Constructors Constructor Description ExceptionMethodBuilder(java.lang.String name, java.lang.String sig, ClassFile cf)
Constructor from signature for public, final method.ExceptionMethodBuilder(java.lang.String name, java.lang.String sig, ClassFile cf, int access)
Constructor from signature.ExceptionMethodBuilder(java.lang.String name, Type ret, Type[] args, ClassFile cf, int access)
Constructor with types specified.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
defineSlot(java.lang.Object obj, Type type)
Define local variable slot for object.void
freeSlot(java.lang.Object obj)
Free local variable slot for object.int
getSlot(java.lang.Object obj)
Check if local variable slot defined for object.protected void
handleExceptions()
Process accumulated exceptions.-
Methods inherited from class org.jibx.binding.classes.MethodBuilder
addException, addLocal, addMethod, addMethodExceptions, appendAASTORE, appendACONST_NULL, appendALOAD, appendARRAYLENGTH, appendASTORE, appendCall, appendCallInit, appendCallInterface, appendCallStatic, appendCallVirtual, appendCreateArray, appendCreateCast, appendCreateCast, appendCreateNew, appendDCMPG, appendDUP, appendDUP_X1, appendDUP2, appendFCMPG, appendGet, appendGetField, appendGetStatic, appendIASTORE, appendICONST_0, appendICONST_1, appendIF_ICMPNE, appendIFEQ, appendIFGE, appendIFLT, appendIFNE, appendIFNONNULL, appendIFNULL, appendIncrementLocal, appendInstanceOf, appendISUB, appendIXOR, appendLCMP, appendLoadConstant, appendLoadConstant, appendLoadConstant, appendLoadLocal, appendPOP, appendPOP2, appendPut, appendPutField, appendPutStatic, appendReturn, appendReturn, appendStoreLocal, appendSWAP, appendSWAP1For2, appendTargetACONST_NULL, appendTargetCreateNew, appendTargetLoadConstant, appendTargetLoadConstant, appendTargetNOP, appendThrow, appendUnconditionalBranch, codeComplete, createLocal, getAccessFlags, getFirstInstruction, getItem, getKeyValue, getLastInstruction, getMethod, getName, getSignature, hashCode, initStackState, initStackState, initStackState, internalAppendCreateNew, isStackTopLong, setAccessFlags, setKeyValue, setTarget, targetNext, targetNext
-
Methods inherited from class org.jibx.binding.classes.BindingMethod
computeMethodHash, equals, getClassFile, makeAccessible
-
-
-
-
Constructor Detail
-
ExceptionMethodBuilder
public ExceptionMethodBuilder(java.lang.String name, Type ret, Type[] args, ClassFile cf, int access)
Constructor with types specified.- Parameters:
name
- method name to be builtret
- method return typeargs
- types of argumentscf
- owning class file informationaccess
- flags for method access
-
ExceptionMethodBuilder
public ExceptionMethodBuilder(java.lang.String name, java.lang.String sig, ClassFile cf, int access)
Constructor from signature.- Parameters:
name
- method name to be builtsig
- method signaturecf
- owning class file informationaccess
- flags for method access
-
ExceptionMethodBuilder
public ExceptionMethodBuilder(java.lang.String name, java.lang.String sig, ClassFile cf)
Constructor from signature for public, final method.- Parameters:
name
- method name to be builtsig
- method signaturecf
- owning class file information
-
-
Method Detail
-
defineSlot
public int defineSlot(java.lang.Object obj, Type type)
Define local variable slot for object. The current code in the method must have the initial value for the variable on the stack- Parameters:
obj
- owning object of slottype
- variable type- Returns:
- slot number
-
getSlot
public int getSlot(java.lang.Object obj)
Check if local variable slot defined for object.- Parameters:
obj
- owning object of slot- Returns:
- local variable slot assigned to object, or
-1
if none
-
freeSlot
public void freeSlot(java.lang.Object obj)
Free local variable slot for object. This clears the usage of the slot (if one has been defined for the object) so it can be reused for other purposes.- Parameters:
obj
- owning object of slot
-
handleExceptions
protected void handleExceptions()
Process accumulated exceptions. Just adds the checked exceptions that may be thrown within the body to the list for this method, passing them on to the caller for handling.- Specified by:
handleExceptions
in classMethodBuilder
-
-