org.glassfish.pfl.dynamic.codegen.impl
Class BlockStatement

java.lang.Object
  extended by org.glassfish.pfl.dynamic.codegen.impl.AttributedObjectBase
      extended by org.glassfish.pfl.dynamic.codegen.impl.NodeBase
          extended by org.glassfish.pfl.dynamic.codegen.impl.StatementBase
              extended by org.glassfish.pfl.dynamic.codegen.impl.BlockStatement
All Implemented Interfaces:
AttributedObject, Node, Statement, CopyInterceptor
Direct Known Subclasses:
CaseBranch

public class BlockStatement
extends StatementBase

Main factory for creating statements. Represents a block of statements which also defines a scope for local variable declarations.

Author:
Ken Cavanaugh

Method Summary
 void accept(Visitor visitor)
          Accept the visitor and allow it to perform actions on this Node.
 void addAssign(Expression left, Expression right)
           
 void addBreak()
          Add a break statement to this BlockStatement.
 Expression addDefinition(Type type, String ident, Expression value)
           
 void addExpression(Expression expr)
           
 IfStatement addIf(Expression cond)
           
 void addReturn()
          Add an empty return to this BlockStatement.
 void addReturn(Expression expr)
          Add a return with an expression to this BlockStatement.
 SwitchStatement addSwitch(Expression value)
           
 void addThrow(Expression expr)
           
 TryStatement addTry()
           
 WhileStatement addWhile(Expression expr)
           
 List<Statement> body()
          Return the list of Statements in this BlockStatement.
 ExpressionFactory exprFactory()
          Return the ExpressionFactory that must be used to create any expressions occuring either in expressions added to the body, or in other statements immediately contained in this BlockStatement.
 Variable getVar(String ident)
          Look up the ident to see if it has an associated Variable in this block.
 boolean isEmpty()
          Return true iff this BlockStatement contains no local variables or statements.
 
Methods inherited from class org.glassfish.pfl.dynamic.codegen.impl.NodeBase
copy, copy, getAncestor, id, parent, parent, postCopy, preCopy, toString
 
Methods inherited from class org.glassfish.pfl.dynamic.codegen.impl.AttributedObjectBase
attributes, get, set
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.glassfish.pfl.dynamic.codegen.impl.Node
copy, copy, getAncestor, id, parent, parent
 
Methods inherited from interface org.glassfish.pfl.dynamic.codegen.impl.AttributedObject
attributes, get, set
 

Method Detail

getVar

public Variable getVar(String ident)
Look up the ident to see if it has an associated Variable in this block.


isEmpty

public boolean isEmpty()
Return true iff this BlockStatement contains no local variables or statements.


body

public List<Statement> body()
Return the list of Statements in this BlockStatement.


exprFactory

public ExpressionFactory exprFactory()
Return the ExpressionFactory that must be used to create any expressions occuring either in expressions added to the body, or in other statements immediately contained in this BlockStatement.


addBreak

public void addBreak()
Add a break statement to this BlockStatement.


addReturn

public void addReturn()
Add an empty return to this BlockStatement. The enclosing MethodGenerator must have a void return type.


addReturn

public void addReturn(Expression expr)
Add a return with an expression to this BlockStatement. The enclosing MethodGenerator must have a return type that is assignment compatible with the type of expr.


addIf

public IfStatement addIf(Expression cond)

addTry

public TryStatement addTry()

addThrow

public void addThrow(Expression expr)

addSwitch

public SwitchStatement addSwitch(Expression value)

addWhile

public WhileStatement addWhile(Expression expr)

addExpression

public void addExpression(Expression expr)

addAssign

public void addAssign(Expression left,
                      Expression right)

addDefinition

public Expression addDefinition(Type type,
                                String ident,
                                Expression value)

accept

public void accept(Visitor visitor)
Description copied from interface: Node
Accept the visitor and allow it to perform actions on this Node.

Specified by:
accept in interface Node
Overrides:
accept in class NodeBase


Copyright © 2013 Oracle. All Rights Reserved.