RECODER 0.92

recoder.java.statement
Class If

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.statement.BranchStatement
                      extended by recoder.java.statement.If
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, ExpressionContainer, NonTerminalProgramElement, ProgramElement, SourceElement, Statement, ModelElement

public class If
extends BranchStatement
implements ExpressionContainer

If.

Author:
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
 
Field Summary
 
Fields inherited from class recoder.java.JavaSourceElement
factory
 
Fields inherited from interface recoder.java.ProgramElement
STRUCTURAL_EQUALITY, STRUCTURAL_HASH_CODE
 
Constructor Summary
  If()
          If.
  If(Expression e, Statement thenStatement)
          If.
  If(Expression e, Statement thenStatement, Statement elseStatement)
          If.
  If(Expression e, Then thenBranch)
          If.
  If(Expression e, Then thenBranch, Else elseBranch)
          If.
protected If(If proto)
          If.
 
Method Summary
 void accept(SourceVisitor v)
          Receive a visitor, for instance a pretty printer.
 If deepClone()
          Deep clone.
 Branch getBranchAt(int index)
           
 int getBranchCount()
          Get the number of branches in this container.
 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.
 Else getElse()
          Get else.
 Expression getExpression()
          Get expression.
 Expression getExpressionAt(int index)
           
 int getExpressionCount()
          Get the number of expressions in this container.
 SourceElement getLastElement()
          Finds the source element that occurs last in the source.
 Then getThen()
          Get then.
 void makeParentRoleValid()
          Make parent role valid.
 boolean replaceChild(ProgramElement p, ProgramElement q)
          Replace a single child in the current node.
 void setElse(Else elseBranch)
          Set else.
 void setExpression(Expression expr)
          Set expression.
 void setThen(Then thenBranch)
          Set then.
 void validate()
          Defaults to do nothing.
 
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
 
Methods inherited from class recoder.java.JavaSourceElement
getEndPosition, getFactory, getFirstElement, 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, getRelativePosition, getStartPosition, setEndPosition, setRelativePosition, setStartPosition, toSource
 

Constructor Detail

If

public If()
If.


If

public If(Expression e,
          Statement thenStatement)
If.

Parameters:
e - an expression.
thenStatement - a statement.

If

public If(Expression e,
          Then thenBranch)
If.

Parameters:
e - an expression.
thenBranch - a then.

If

public If(Expression e,
          Then thenBranch,
          Else elseBranch)
If.

Parameters:
e - an expression.
thenBranch - a then.
elseBranch - an else.

If

public If(Expression e,
          Statement thenStatement,
          Statement elseStatement)
If.

Parameters:
e - an expression.
thenStatement - a statement.
elseStatement - a statement.

If

protected If(If proto)
If.

Parameters:
proto - an if.
Method Detail

deepClone

public If deepClone()
Deep clone.

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

getLastElement

public SourceElement getLastElement()
Description copied from class: JavaSourceElement
Finds the source element that occurs last in the source. The default implementation returns this element, which is correct for all terminal program elements, and many non terminals such as statements and prefixed operators.

Specified by:
getLastElement in interface SourceElement
Overrides:
getLastElement in class JavaSourceElement
Returns:
the last source element in the syntactical representation of this element, may be equals to this element.
See Also:
JavaSourceElement.toSource(), JavaSourceElement.getEndPosition()

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)

makeParentRoleValid

public void makeParentRoleValid()
Make parent role valid.

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

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.

getExpressionCount

public int getExpressionCount()
Get the number of expressions in this container.

Specified by:
getExpressionCount in interface ExpressionContainer
Returns:
the number of expressions.

getExpressionAt

public Expression getExpressionAt(int index)
Specified by:
getExpressionAt in interface ExpressionContainer

getExpression

public Expression getExpression()
Get expression.

Returns:
the expression.

setExpression

public void setExpression(Expression expr)
Set expression.

Parameters:
expr - an expression.

getThen

public Then getThen()
Get then.

Returns:
the then.

getElse

public Else getElse()
Get else.

Returns:
the else.

setThen

public void setThen(Then thenBranch)
Set then.

Parameters:
thenBranch - a then.

setElse

public void setElse(Else elseBranch)
Set else.

Parameters:
elseBranch - an else.

getBranchCount

public int getBranchCount()
Get the number of branches in this container.

Specified by:
getBranchCount in class BranchStatement
Returns:
the number of branches.

getBranchAt

public Branch getBranchAt(int index)
Specified by:
getBranchAt in class BranchStatement

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.

validate

public void validate()
              throws ModelException
Description copied from class: JavaProgramElement
Defaults to do nothing.

Specified by:
validate in interface ModelElement
Overrides:
validate in class JavaProgramElement
Throws:
ModelException
See Also:
SemanticsChecker

RECODER 0.92