RECODER 0.92

recoder.java
Class StatementBlock

java.lang.Object
  extended by recoder.java.JavaSourceElement
      extended by recoder.java.JavaProgramElement
          extended by recoder.java.JavaNonTerminalProgramElement
              extended by recoder.java.statement.JavaStatement
                  extended by recoder.java.StatementBlock
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, TypeDeclarationContainer, NonTerminalProgramElement, ProgramElement, ScopeDefiningElement, SourceElement, Statement, StatementContainer, TypeScope, VariableScope, ModelElement

public class StatementBlock
extends JavaStatement
implements StatementContainer, TypeDeclarationContainer, VariableScope, TypeScope

Statement block.

Author:
AL, AutoDoc
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface recoder.java.ProgramElement
ProgramElement.TreeStructure
 
Nested classes/interfaces inherited from interface recoder.java.SourceElement
SourceElement.Position
 
Nested classes/interfaces inherited from interface recoder.java.ProgramElement
ProgramElement.TreeStructure
 
Nested classes/interfaces inherited from interface recoder.java.SourceElement
SourceElement.Position
 
Nested classes/interfaces inherited from interface recoder.java.ProgramElement
ProgramElement.TreeStructure
 
Nested classes/interfaces inherited from interface recoder.java.SourceElement
SourceElement.Position
 
Nested classes/interfaces inherited from interface recoder.java.ProgramElement
ProgramElement.TreeStructure
 
Nested classes/interfaces inherited from interface recoder.java.SourceElement
SourceElement.Position
 
Field Summary
 
Fields inherited from class recoder.java.JavaSourceElement
factory
 
Fields inherited from interface recoder.java.ProgramElement
STRUCTURAL_EQUALITY, STRUCTURAL_HASH_CODE
 
Fields inherited from interface recoder.java.ProgramElement
STRUCTURAL_EQUALITY, STRUCTURAL_HASH_CODE
 
Fields inherited from interface recoder.java.ProgramElement
STRUCTURAL_EQUALITY, STRUCTURAL_HASH_CODE
 
Fields inherited from interface recoder.java.ProgramElement
STRUCTURAL_EQUALITY, STRUCTURAL_HASH_CODE
 
Constructor Summary
  StatementBlock()
          Statement block.
  StatementBlock(ASTList<Statement> block)
          Statement block.
protected StatementBlock(StatementBlock proto)
          Statement block.
 
Method Summary
 void accept(SourceVisitor v)
          Receive a visitor, for instance a pretty printer.
 void addTypeToScope(ClassType type, java.lang.String name)
           
 void addVariableToScope(VariableSpecification var)
           
 StatementBlock deepClone()
          Deep clone.
 ASTList<Statement> getBody()
          Get body.
 ProgramElement getChildAt(int index)
          Returns the child at the specified index in this node's "virtual" child array
 int getChildCount()
          Returns the number of children of this node.
 int getChildPositionCode(ProgramElement child)
          Returns the positional code of the given child, or -1 if there is no such child.
 Statement getStatementAt(int index)
           
 int getStatementCount()
          Get the number of statements in this container.
 TypeDeclaration getTypeDeclarationAt(int index)
           
 int getTypeDeclarationCount()
          Get the number of type declarations in this container.
 ClassType getTypeInScope(java.lang.String name)
           
 java.util.List<TypeDeclaration> getTypesInScope()
           
 VariableSpecification getVariableInScope(java.lang.String name)
           
 java.util.List<VariableSpecification> getVariablesInScope()
           
 boolean isDefinedScope()
          Check if the scope has been set up.
 void makeParentRoleValid()
          Make parent role valid.
 void removeTypeFromScope(java.lang.String name)
           
 void removeVariableFromScope(java.lang.String name)
           
 boolean replaceChild(ProgramElement p, ProgramElement q)
          Replace a single child in the current node.
 void setBody(ASTList<Statement> list)
          Set body.
 void setDefinedScope(boolean defined)
          Sets the scope to be defined or undefined.
 
Methods inherited from class recoder.java.statement.JavaStatement
getASTParent, getStatementContainer, setStatementContainer
 
Methods inherited from class recoder.java.JavaNonTerminalProgramElement
getIndexOfChild, getRoleOfChild, makeAllParentRolesValid, validateAll
 
Methods inherited from class recoder.java.JavaProgramElement
getComments, getID, setComments, validate
 
Methods inherited from class recoder.java.JavaSourceElement
getEndPosition, getFactory, getFirstElement, getLastElement, getRelativePosition, getStartPosition, setEndPosition, setRelativePosition, setStartPosition, toSource
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface recoder.java.NonTerminalProgramElement
getIndexOfChild, getRoleOfChild, makeAllParentRolesValid, validateAll
 
Methods inherited from interface recoder.java.ProgramElement
getASTParent, getComments, getID, setComments
 
Methods inherited from interface recoder.java.SourceElement
getEndPosition, getFactory, getFirstElement, getLastElement, getRelativePosition, getStartPosition, setEndPosition, setRelativePosition, setStartPosition, toSource
 
Methods inherited from interface recoder.ModelElement
validate
 
Methods inherited from interface recoder.java.NonTerminalProgramElement
getIndexOfChild, getRoleOfChild, makeAllParentRolesValid, validateAll
 
Methods inherited from interface recoder.java.ProgramElement
getASTParent, getComments, getID, setComments
 
Methods inherited from interface recoder.java.SourceElement
getEndPosition, getFactory, getFirstElement, getLastElement, getRelativePosition, getStartPosition, setEndPosition, setRelativePosition, setStartPosition, toSource
 
Methods inherited from interface recoder.ModelElement
validate
 
Methods inherited from interface recoder.java.NonTerminalProgramElement
getIndexOfChild, getRoleOfChild, makeAllParentRolesValid, validateAll
 
Methods inherited from interface recoder.java.ProgramElement
getASTParent, getComments, getID, setComments
 
Methods inherited from interface recoder.java.SourceElement
getEndPosition, getFactory, getFirstElement, getLastElement, getRelativePosition, getStartPosition, setEndPosition, setRelativePosition, setStartPosition, toSource
 
Methods inherited from interface recoder.ModelElement
validate
 
Methods inherited from interface recoder.java.NonTerminalProgramElement
getIndexOfChild, getRoleOfChild, makeAllParentRolesValid, validateAll
 
Methods inherited from interface recoder.java.ProgramElement
getASTParent, getComments, getID, setComments
 
Methods inherited from interface recoder.java.SourceElement
getEndPosition, getFactory, getFirstElement, getLastElement, getRelativePosition, getStartPosition, setEndPosition, setRelativePosition, setStartPosition, toSource
 
Methods inherited from interface recoder.ModelElement
validate
 

Constructor Detail

StatementBlock

public StatementBlock()
Statement block.


StatementBlock

public StatementBlock(ASTList<Statement> block)
Statement block.

Parameters:
block - a statement mutable list.

StatementBlock

protected StatementBlock(StatementBlock proto)
Statement block.

Parameters:
proto - a statement block.
Method Detail

deepClone

public StatementBlock deepClone()
Deep clone.

Specified by:
deepClone in interface SourceElement
Specified by:
deepClone in interface Statement
Returns:
the object.

makeParentRoleValid

public void makeParentRoleValid()
Make parent role valid.

Specified by:
makeParentRoleValid in interface NonTerminalProgramElement
Overrides:
makeParentRoleValid in class JavaNonTerminalProgramElement

getBody

public ASTList<Statement> getBody()
Get body.

Returns:
the statement mutable list.

setBody

public void setBody(ASTList<Statement> list)
Set body.

Parameters:
list - a statement mutable list.

replaceChild

public boolean replaceChild(ProgramElement p,
                            ProgramElement q)
Replace a single child in the current node. The child to replace is matched by identity and hence must be known exactly. The replacement element can be null - in that case, the child is effectively removed. The parent role of the new child is validated, while the parent link of the replaced child is left untouched.

Specified by:
replaceChild in interface NonTerminalProgramElement
Parameters:
p - the old child.
p - the new child.
Returns:
true if a replacement has occured, false otherwise.
Throws:
java.lang.ClassCastException - if the new child cannot take over the role of the old one.

getChildCount

public int getChildCount()
Returns the number of children of this node.

Specified by:
getChildCount in interface NonTerminalProgramElement
Returns:
an int giving the number of children of this node

getChildAt

public ProgramElement getChildAt(int index)
Returns the child at the specified index in this node's "virtual" child array

Specified by:
getChildAt in interface NonTerminalProgramElement
Parameters:
index - an index into this node's "virtual" child array
Returns:
the program element at the given position
Throws:
java.lang.ArrayIndexOutOfBoundsException - if index is out of bounds

getChildPositionCode

public int getChildPositionCode(ProgramElement child)
Description copied from interface: NonTerminalProgramElement
Returns the positional code of the given child, or -1 if there is no such child. The result contains an encoding of the relative position of the child as well as the role it has been playing in this parent element. This information is required internally for proper undo of transformations and is to be delivered to the detached method of the ChangeHistory.

Specified by:
getChildPositionCode in interface NonTerminalProgramElement
Parameters:
child - the exact child to look for.
Returns:
the positional code of the given child, or -1.
See Also:
ChangeHistory.detached(recoder.java.ProgramElement, recoder.java.NonTerminalProgramElement, int)

getStatementCount

public int getStatementCount()
Get the number of statements in this container.

Specified by:
getStatementCount in interface StatementContainer
Returns:
the number of statements.

getStatementAt

public Statement getStatementAt(int index)
Specified by:
getStatementAt in interface StatementContainer

getTypeDeclarationCount

public int getTypeDeclarationCount()
Get the number of type declarations in this container.

Specified by:
getTypeDeclarationCount in interface TypeDeclarationContainer
Returns:
the number of type declarations.

getTypeDeclarationAt

public TypeDeclaration getTypeDeclarationAt(int index)
Specified by:
getTypeDeclarationAt in interface TypeDeclarationContainer

isDefinedScope

public boolean isDefinedScope()
Description copied from interface: ScopeDefiningElement
Check if the scope has been set up.

Specified by:
isDefinedScope in interface ScopeDefiningElement

setDefinedScope

public void setDefinedScope(boolean defined)
Description copied from interface: ScopeDefiningElement
Sets the scope to be defined or undefined. If set to defined, the scope cache becomes initialized. If set to undefined, the scope cache becomes erased.

Specified by:
setDefinedScope in interface ScopeDefiningElement

getTypesInScope

public java.util.List<TypeDeclaration> getTypesInScope()
Specified by:
getTypesInScope in interface TypeScope

getTypeInScope

public ClassType getTypeInScope(java.lang.String name)
Specified by:
getTypeInScope in interface TypeScope

addTypeToScope

public void addTypeToScope(ClassType type,
                           java.lang.String name)
Specified by:
addTypeToScope in interface TypeScope

removeTypeFromScope

public void removeTypeFromScope(java.lang.String name)
Specified by:
removeTypeFromScope in interface TypeScope

getVariablesInScope

public java.util.List<VariableSpecification> getVariablesInScope()
Specified by:
getVariablesInScope in interface VariableScope

getVariableInScope

public VariableSpecification getVariableInScope(java.lang.String name)
Specified by:
getVariableInScope in interface VariableScope

addVariableToScope

public void addVariableToScope(VariableSpecification var)
Specified by:
addVariableToScope in interface VariableScope

removeVariableFromScope

public void removeVariableFromScope(java.lang.String name)
Specified by:
removeVariableFromScope in interface VariableScope

accept

public void accept(SourceVisitor v)
Description copied from interface: SourceElement
Receive a visitor, for instance a pretty printer.

Specified by:
accept in interface SourceElement
Parameters:
v - a source visitor.

RECODER 0.92