recoder.java
Class StatementBlock
java.lang.Object
recoder.java.JavaSourceElement
recoder.java.JavaProgramElement
recoder.java.JavaNonTerminalProgramElement
recoder.java.statement.JavaStatement
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
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
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.
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.