Package org.jibx.binding.classes
Class MarshalBuilder
-
public class MarshalBuilder extends MarshalUnmarshalBuilder
Marshalling method builder. Tracks the creation of a marshalling method, including special handling of exceptions that may be generated by object accesses during the marshalling process.- Author:
- Dennis M. Sosnoski
-
-
Field Summary
Fields Modifier and Type Field Description protected static String
MARSHAL_EXCEPTION_TEXT
-
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 MarshalBuilder(String name, ClassFile cf, ClassFile mf)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.bcel.generic.InstructionHandle
genExceptionHandler()
Add exception handler code.-
Methods inherited from class org.jibx.binding.classes.MarshalUnmarshalBuilder
handleExceptions
-
Methods inherited from class org.jibx.binding.classes.ContextMethodBuilder
getFullName, isStaticMethod, loadContext, loadContext, loadObject, loadObject, setObjectSlot, storeObject
-
Methods inherited from class org.jibx.binding.classes.ExceptionMethodBuilder
defineSlot, freeSlot, getSlot
-
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, 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
-
-
-
-
Field Detail
-
MARSHAL_EXCEPTION_TEXT
protected static final String MARSHAL_EXCEPTION_TEXT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
MarshalBuilder
public MarshalBuilder(String name, ClassFile cf, ClassFile mf)
Constructor. This sets up for constructing a marshalling method with public access and wrapped exception handling. If the method is being generated directly to the class being marshalled it's built as a virtual method; otherwise, it's done as a static method.- Parameters:
name
- method name to be builtcf
- owning class file informationmf
- method generation class file information
-
-
Method Detail
-
genExceptionHandler
public org.apache.bcel.generic.InstructionHandle genExceptionHandler()
Add exception handler code. The implementation of this abstract base class method provides handling specific to a marshalling method.- Specified by:
genExceptionHandler
in classMarshalUnmarshalBuilder
- Returns:
- handle for first instruction in handler
-
-