org.jibx.schema.codegen
Class BlockBuilder

java.lang.Object
  extended by org.jibx.schema.codegen.ASTBuilderBase
      extended by org.jibx.schema.codegen.StatementBuilderBase
          extended by org.jibx.schema.codegen.BlockBuilder

public class BlockBuilder
extends StatementBuilderBase

Block builder. This wraps the AST block representation with convenience methods and added control information.


Field Summary
private  Block m_block
          Compilation unit.
 
Fields inherited from class org.jibx.schema.codegen.StatementBuilderBase
m_source
 
Fields inherited from class org.jibx.schema.codegen.ASTBuilderBase
m_ast
 
Constructor Summary
BlockBuilder(ClassBuilder source, Block block)
          Constructor.
 
Method Summary
 void addAssignToName(Expression expr, java.lang.String name)
          Append an assignment from an expression to a field or local variable.
 void addAssignVariableToField(java.lang.String vname, java.lang.String fname)
          Append an assignment from a local variable to a field.
 void addBreak()
          Append a 'break' statement.
 void addCall(InvocationBuilder call)
          Append a method call statement.
 void addExpressionStatement(ExpressionBuilderBase expr)
          Append an expression statement.
private  void addForStatement(java.lang.String name, Type type, Expression init, Expression test, Expression post, BlockBuilder block)
          Append a three-part 'for' statement with an associated variable.
 void addIfElseIfStatement(ExpressionBuilderBase ifexpr, ExpressionBuilderBase elsexpr, BlockBuilder ifblock, BlockBuilder elseblock)
          Append an 'if-else-if' statement.
 void addIfElseStatement(ExpressionBuilderBase expr, BlockBuilder ifblock, BlockBuilder elseblock)
          Append an 'if-else' statement.
 void addIfStatement(ExpressionBuilderBase expr, BlockBuilder ifblock)
          Append a simple 'if' statement (no else).
 void addIndexedForStatement(java.lang.String name, ExpressionBuilderBase limit, BlockBuilder block)
          Append a standard 'for' statement using an index variable.
 void addIteratedForStatement(java.lang.String name, Type type, ExpressionBuilderBase init, BlockBuilder block)
          Append a standard 'for' statement using an iterator.
 void addLocalVariableDeclaration(java.lang.String type, java.lang.String vname)
          Append a local variable declaration.
 void addLocalVariableDeclaration(Type type, java.lang.String vname, ExpressionBuilderBase expr)
          Append a local variable declaration with initializer expression.
 void addReturnExpression(ExpressionBuilderBase expr)
          Append a statement returning the value of an expression.
 void addReturnNamed(java.lang.String name)
          Append a statement returning the value of a field or local variable.
 void addReturnNull()
          Append a statement returning null.
 void addStatement(StatementBuilderBase stmt)
          Append a constructed statement.
 void addSugaredForStatement(java.lang.String name, java.lang.String type, ExpressionBuilderBase expr, BlockBuilder block)
          Append a Java 5 "enhanced" 'for' statement.
 SwitchBuilder addSwitch(ExpressionBuilderBase expr)
          Append a 'switch' statement using a constructed expression as the switch value.
 SwitchBuilder addSwitch(java.lang.String name)
          Append a 'switch' statement using a local variable or field name as the switch value.
 void addThrowException(java.lang.String type, ExpressionBuilderBase expr)
          Append a throw new exception statement.
 void addThrowException(java.lang.String type, java.lang.String text)
          Append a throw new exception statement.
(package private)  Statement getStatement()
          Get the statement.
 
Methods inherited from class org.jibx.schema.codegen.ASTBuilderBase
numberLiteral, setFinal, setPrivate, setPrivateFinal, setPrivateStaticFinal, setPublic, setPublicStatic, setPublicStaticFinal, setStatic, stringLiteral
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_block

private final Block m_block
Compilation unit.

Constructor Detail

BlockBuilder

public BlockBuilder(ClassBuilder source,
                    Block block)
Constructor.

Parameters:
source -
block -
Method Detail

getStatement

Statement getStatement()
Get the statement.

Specified by:
getStatement in class StatementBuilderBase
Returns:
statement

addAssignToName

public void addAssignToName(Expression expr,
                            java.lang.String name)
Append an assignment from an expression to a field or local variable.

Parameters:
expr -
name -

addAssignVariableToField

public void addAssignVariableToField(java.lang.String vname,
                                     java.lang.String fname)
Append an assignment from a local variable to a field. This handles the case where the local variable name is the same as the field name.

Parameters:
vname -
fname -

addLocalVariableDeclaration

public void addLocalVariableDeclaration(java.lang.String type,
                                        java.lang.String vname)
Append a local variable declaration.

Parameters:
type -
vname -

addLocalVariableDeclaration

public void addLocalVariableDeclaration(Type type,
                                        java.lang.String vname,
                                        ExpressionBuilderBase expr)
Append a local variable declaration with initializer expression. This variation takes the actual type as a parameter.

Parameters:
type -
vname -
expr - initializer expression

addIfStatement

public void addIfStatement(ExpressionBuilderBase expr,
                           BlockBuilder ifblock)
Append a simple 'if' statement (no else).

Parameters:
expr - conditional expression
ifblock - block executed when condition true

addIfElseStatement

public void addIfElseStatement(ExpressionBuilderBase expr,
                               BlockBuilder ifblock,
                               BlockBuilder elseblock)
Append an 'if-else' statement.

Parameters:
expr - conditional expression
ifblock - block executed when condition true
elseblock - block executed when condition false

addIfElseIfStatement

public void addIfElseIfStatement(ExpressionBuilderBase ifexpr,
                                 ExpressionBuilderBase elsexpr,
                                 BlockBuilder ifblock,
                                 BlockBuilder elseblock)
Append an 'if-else-if' statement.

Parameters:
ifexpr - if conditional expression
elsexpr - if conditional expression
ifblock - block executed when condition true
elseblock - block executed when condition false

addForStatement

private void addForStatement(java.lang.String name,
                             Type type,
                             Expression init,
                             Expression test,
                             Expression post,
                             BlockBuilder block)
Append a three-part 'for' statement with an associated variable. This assumes the first part is a local variable declaration with an initializer expression, while the other two parts are just expressions.

Parameters:
name - iteration variable name
type - variable type
init - variable initialization expression
test - loop test expression (second part of 'for')
post - post-loop expression (optional third part of 'for', null if none)
block - statement body block

addIteratedForStatement

public void addIteratedForStatement(java.lang.String name,
                                    Type type,
                                    ExpressionBuilderBase init,
                                    BlockBuilder block)
Append a standard 'for' statement using an iterator.

Parameters:
name - iteration variable name
type - variable type (must be an iterator subclass or generic type)
init - variable initialization expression
block - statement body block

addIndexedForStatement

public void addIndexedForStatement(java.lang.String name,
                                   ExpressionBuilderBase limit,
                                   BlockBuilder block)
Append a standard 'for' statement using an index variable. The index is always initialized to '0', and incremented each time the loop is executed until the limit value is reached.

Parameters:
name - index variable name
limit - end value for loop
block - statement body block

addSugaredForStatement

public void addSugaredForStatement(java.lang.String name,
                                   java.lang.String type,
                                   ExpressionBuilderBase expr,
                                   BlockBuilder block)
Append a Java 5 "enhanced" 'for' statement.

Parameters:
name - iteration variable name
type - iteration variable type
expr - iteration source expression
block - statement body block

addReturnExpression

public void addReturnExpression(ExpressionBuilderBase expr)
Append a statement returning the value of an expression.

Parameters:
expr - expression

addReturnNamed

public void addReturnNamed(java.lang.String name)
Append a statement returning the value of a field or local variable.

Parameters:
name - field name

addReturnNull

public void addReturnNull()
Append a statement returning null.


addThrowException

public void addThrowException(java.lang.String type,
                              java.lang.String text)
Append a throw new exception statement.

Parameters:
type - exception type
text -

addThrowException

public void addThrowException(java.lang.String type,
                              ExpressionBuilderBase expr)
Append a throw new exception statement.

Parameters:
type - exception type
expr - initializer expression

addCall

public void addCall(InvocationBuilder call)
Append a method call statement.

Parameters:
call -

addBreak

public void addBreak()
Append a 'break' statement.


addSwitch

public SwitchBuilder addSwitch(java.lang.String name)
Append a 'switch' statement using a local variable or field name as the switch value.

Parameters:
name -
Returns:
statement builder

addSwitch

public SwitchBuilder addSwitch(ExpressionBuilderBase expr)
Append a 'switch' statement using a constructed expression as the switch value.

Parameters:
expr -
Returns:
statement builder

addExpressionStatement

public void addExpressionStatement(ExpressionBuilderBase expr)
Append an expression statement.

Parameters:
expr -

addStatement

public void addStatement(StatementBuilderBase stmt)
Append a constructed statement.

Parameters:
stmt -


Project Web Site