org.jibx.binding.classes
Class MarshalBuilder

java.lang.Object
  extended byorg.jibx.binding.classes.BindingMethod
      extended byorg.jibx.binding.classes.MethodBuilder
          extended byorg.jibx.binding.classes.ExceptionMethodBuilder
              extended byorg.jibx.binding.classes.ContextMethodBuilder
                  extended byorg.jibx.binding.classes.MarshalUnmarshalBuilder
                      extended byorg.jibx.binding.classes.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.

Version:
1.0
Author:
Dennis M. Sosnoski

Field Summary
protected static java.lang.String MARSHAL_EXCEPTION_TEXT
           
protected static org.apache.bcel.generic.Type[] MARSHAL_METHOD_ARGS
           
private static java.lang.String MARSHALCONTEXT_CLASS
           
 
Fields inherited from class org.jibx.binding.classes.ContextMethodBuilder
 
Fields inherited from class org.jibx.binding.classes.ExceptionMethodBuilder
 
Fields inherited from class org.jibx.binding.classes.MethodBuilder
EMPTY_STRING_ARRAY, 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
 
Fields inherited from class org.jibx.binding.classes.BindingMethod
 
Constructor Summary
MarshalBuilder(java.lang.String name, ClassFile cf, ClassFile mf)
          Constructor.
 
Method Summary
 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
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_X1, appendDUP, 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
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MARSHALCONTEXT_CLASS

private static final java.lang.String MARSHALCONTEXT_CLASS
See Also:
Constant Field Values

MARSHAL_EXCEPTION_TEXT

protected static final java.lang.String MARSHAL_EXCEPTION_TEXT
See Also:
Constant Field Values

MARSHAL_METHOD_ARGS

protected static final org.apache.bcel.generic.Type[] MARSHAL_METHOD_ARGS
Constructor Detail

MarshalBuilder

public MarshalBuilder(java.lang.String name,
                      ClassFile cf,
                      ClassFile mf)
               throws JiBXException
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 built
cf - owning class file information
mf - method generation class file information
Throws:
JiBXException - on error in initializing method construction
Method Detail

genExceptionHandler

public org.apache.bcel.generic.InstructionHandle genExceptionHandler()
                                                              throws JiBXException
Add exception handler code. The implementation of this abstract base class method provides handling specific to a marshalling method.

Specified by:
genExceptionHandler in class MarshalUnmarshalBuilder
Returns:
handle for first instruction in handler
Throws:
JiBXException - on error in creating exception handler


Project Web Site