org.jibx.binding.def
Class NestedCollection.CollectionLoad

java.lang.Object
  extended byorg.jibx.binding.def.NestedCollection.CollectionBase
      extended byorg.jibx.binding.def.NestedCollection.CollectionLoad
Direct Known Subclasses:
NestedCollection.ArrayLoad, NestedCollection.IndexedLoad, NestedCollection.IteratorLoad
Enclosing class:
NestedCollection

abstract static class NestedCollection.CollectionLoad
extends NestedCollection.CollectionBase

Base class for collection item load strategy. The implementation class must handle the appropriate form of code generation for the type of collection being used.


Constructor Summary
protected NestedCollection.CollectionLoad(boolean doubword)
          Constructor.
 
Method Summary
protected  void appendPOP(MethodBuilder mb)
          Append the appropriate instruction to pop the item value (which may be one or two words, as configured for this collection) from the top of the stack.
protected  void appendSWAP(MethodBuilder mb)
          Append the appropriate instruction to swap the top of the stack (which must be a single-word value) with an item value (which may be one or two words, as configured for this collection).
protected  void genLoadDone(ContextMethodBuilder mb)
          Generate code to clean up after loading items from collection.
protected  void genLoadInit(ContextMethodBuilder mb)
          Generate code to initialize collection for loading items.
protected abstract  BranchWrapper genLoadItem(ContextMethodBuilder mb)
          Generate code to load next item from collection.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NestedCollection.CollectionLoad

protected NestedCollection.CollectionLoad(boolean doubword)
Constructor.

Parameters:
doubword - double word value flag
Method Detail

genLoadInit

protected void genLoadInit(ContextMethodBuilder mb)
                    throws JiBXException
Generate code to initialize collection for loading items. This generates the necessary code for handling the initialization. It must be called before attempting to call the genLoadItem(org.jibx.binding.classes.ContextMethodBuilder) method. The base class implementation does nothing.

Parameters:
mb - method builder
Throws:
JiBXException - if error in configuration

genLoadItem

protected abstract BranchWrapper genLoadItem(ContextMethodBuilder mb)
                                      throws JiBXException
Generate code to load next item from collection. This generates the necessary code for handling the load operation, leaving the item on the stack. The genLoadInit(org.jibx.binding.classes.ContextMethodBuilder) method must be called before calling this method, and the genLoadDone(org.jibx.binding.classes.ContextMethodBuilder) method must be called after the last call to this method. This method must be overridden by each subclass.

Parameters:
mb - method builder
Returns:
branch wrapper for case of done with collection
Throws:
JiBXException - if error in configuration

genLoadDone

protected void genLoadDone(ContextMethodBuilder mb)
                    throws JiBXException
Generate code to clean up after loading items from collection. This generates the necessary code for handling the clean up. It must be called after the last call to genLoadItem(org.jibx.binding.classes.ContextMethodBuilder). The base class implementation does nothing.

Parameters:
mb - method builder
Throws:
JiBXException - if error in configuration

appendSWAP

protected void appendSWAP(MethodBuilder mb)
Append the appropriate instruction to swap the top of the stack (which must be a single-word value) with an item value (which may be one or two words, as configured for this collection).

Parameters:
mb - method

appendPOP

protected void appendPOP(MethodBuilder mb)
Append the appropriate instruction to pop the item value (which may be one or two words, as configured for this collection) from the top of the stack.

Parameters:
mb - method


Project Web Site