RECODER 0.92

recoder.java.reference
Class UncollatedReferenceQualifier

java.lang.Object
  extended by recoder.java.JavaSourceElement
      extended by recoder.java.JavaProgramElement
          extended by recoder.java.JavaNonTerminalProgramElement
              extended by recoder.java.reference.UncollatedReferenceQualifier
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Expression, ExpressionContainer, NamedProgramElement, NonTerminalProgramElement, ProgramElement, Reference, NameReference, PackageReferenceContainer, ReferencePrefix, ReferenceSuffix, TypeReferenceContainer, TypeReferenceInfix, SourceElement, ModelElement, NamedModelElement

public class UncollatedReferenceQualifier
extends JavaNonTerminalProgramElement
implements TypeReferenceInfix, ExpressionContainer, TypeReferenceContainer, PackageReferenceContainer, Reference, Expression

This class represents a currently uncollated program element. As it is currently not known which exact program element this reference represents, this class inherits from many different program elements, where inheritance means "may be one of these" instead of "is a".

Author:
AL, RN
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface recoder.NamedModelElement
NamedModelElement.LexicalOrder
 
Field Summary
 
Fields inherited from class recoder.java.JavaSourceElement
factory
 
Fields inherited from interface recoder.NamedModelElement
LEXICAL_ORDER
 
Constructor Summary
  UncollatedReferenceQualifier()
          Uncollated reference qualifier.
  UncollatedReferenceQualifier(Identifier id)
          Uncollated reference qualifier.
  UncollatedReferenceQualifier(ReferencePrefix prefix, Identifier id)
          Uncollated reference qualifier.
protected UncollatedReferenceQualifier(UncollatedReferenceQualifier proto)
          Uncollated reference qualifier.
 
Method Summary
 void accept(SourceVisitor v)
          Receive a visitor, for instance a pretty printer.
 UncollatedReferenceQualifier deepClone()
          Deep clone.
 NonTerminalProgramElement getASTParent()
          Get AST parent.
 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.
 Expression getExpressionAt(int index)
           
 ExpressionContainer getExpressionContainer()
          Get expression container.
 int getExpressionCount()
          Get the number of expressions in this container.
 SourceElement getFirstElement()
          Finds the source element that occurs first in the source.
 Identifier getIdentifier()
          Get identifier.
 java.lang.String getName()
          Get name.
 PackageReference getPackageReference()
          Get the package reference.
 ReferencePrefix getReferencePrefix()
          Get reference prefix.
 ReferenceSuffix getReferenceSuffix()
          Get reference suffix.
 ASTList<TypeArgumentDeclaration> getTypeArguments()
           
 TypeReference getTypeReferenceAt(int index)
           
 int getTypeReferenceCount()
          Get the number of type references in this container.
 void makeParentRoleValid()
          Make parent role valid.
 boolean replaceChild(ProgramElement p, ProgramElement q)
          Replace a single child in the current node.
 void setExpressionContainer(ExpressionContainer c)
          Set expression container.
 void setIdentifier(Identifier id)
          Set identifier.
 void setParent(Import imp)
          Sets an import statement as parent.
 void setReferencePrefix(ReferencePrefix prefix)
          Set reference prefix.
 void setReferenceSuffix(ReferenceSuffix x)
          Set reference suffix.
 void setTypeArguments(ASTList<TypeArgumentDeclaration> ta)
           
 VariableReference toFieldReference()
          To field reference.
 PackageReference toPackageReference()
          To package reference.
 TypeReference toTypeReference()
          To type reference.
 VariableReference toVariableReference()
          To variable reference.
 
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, 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
 

Constructor Detail

UncollatedReferenceQualifier

public UncollatedReferenceQualifier()
Uncollated reference qualifier.


UncollatedReferenceQualifier

public UncollatedReferenceQualifier(Identifier id)
Uncollated reference qualifier.

Parameters:
id - an identifier.

UncollatedReferenceQualifier

public UncollatedReferenceQualifier(ReferencePrefix prefix,
                                    Identifier id)
Uncollated reference qualifier.

Parameters:
prefix - a reference prefix.
id - an identifier.

UncollatedReferenceQualifier

protected UncollatedReferenceQualifier(UncollatedReferenceQualifier proto)
Uncollated reference qualifier.

Parameters:
proto - an uncollated reference qualifier.
Method Detail

deepClone

public UncollatedReferenceQualifier deepClone()
Deep clone.

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

makeParentRoleValid

public void makeParentRoleValid()
Make parent role valid.

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

getFirstElement

public SourceElement getFirstElement()
Description copied from class: JavaSourceElement
Finds the source element that occurs first 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:
getFirstElement in interface SourceElement
Overrides:
getFirstElement in class JavaSourceElement
Returns:
the first source element in the syntactical representation of this element, may be equals to this element.
See Also:
JavaSourceElement.toSource(), JavaSourceElement.getStartPosition()

getASTParent

public NonTerminalProgramElement getASTParent()
Get AST parent.

Specified by:
getASTParent in interface ProgramElement
Returns:
the non terminal program element.

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.

getExpressionContainer

public ExpressionContainer getExpressionContainer()
Get expression container.

Specified by:
getExpressionContainer in interface Expression
Returns:
the expression container.

setExpressionContainer

public void setExpressionContainer(ExpressionContainer c)
Set expression container.

Specified by:
setExpressionContainer in interface Expression
Parameters:
c - an expression container.

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)

getTypeReferenceCount

public int getTypeReferenceCount()
Get the number of type references in this container.

Specified by:
getTypeReferenceCount in interface TypeReferenceContainer
Returns:
the number of type references.

getTypeReferenceAt

public TypeReference getTypeReferenceAt(int index)
Specified by:
getTypeReferenceAt in interface TypeReferenceContainer

getPackageReference

public PackageReference getPackageReference()
Get the package reference.

Specified by:
getPackageReference in interface PackageReferenceContainer
Returns:
the package reference.

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

getReferencePrefix

public ReferencePrefix getReferencePrefix()
Get reference prefix.

Specified by:
getReferencePrefix in interface ReferenceSuffix
Returns:
the reference prefix.

setReferencePrefix

public void setReferencePrefix(ReferencePrefix prefix)
Set reference prefix.

Specified by:
setReferencePrefix in interface TypeReferenceInfix
Parameters:
prefix - a reference prefix.

getReferenceSuffix

public ReferenceSuffix getReferenceSuffix()
Get reference suffix.

Specified by:
getReferenceSuffix in interface ReferencePrefix
Returns:
the reference suffix.

setReferenceSuffix

public void setReferenceSuffix(ReferenceSuffix x)
Set reference suffix.

Specified by:
setReferenceSuffix in interface ReferencePrefix
Parameters:
x - a reference suffix.

setParent

public void setParent(Import imp)
Sets an import statement as parent. Useful for Java 5 only, where Identifiers are part of static imports.

Parameters:
imp - an import statement.

getName

public final java.lang.String getName()
Get name.

Specified by:
getName in interface NamedModelElement
Returns:
the string.

getIdentifier

public Identifier getIdentifier()
Get identifier.

Specified by:
getIdentifier in interface NamedProgramElement
Returns:
the identifier.

setIdentifier

public void setIdentifier(Identifier id)
Set identifier.

Specified by:
setIdentifier in interface NamedProgramElement
Parameters:
id - an identifier.

toVariableReference

public VariableReference toVariableReference()
To variable reference.

Returns:
the variable reference.

toFieldReference

public VariableReference toFieldReference()
To field reference.

Returns:
the variable reference.

toTypeReference

public TypeReference toTypeReference()
To type reference.

Returns:
the type reference.

toPackageReference

public PackageReference toPackageReference()
To package reference. Converts the prefix, if necessary.

Returns:
the package reference.

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.

setTypeArguments

public void setTypeArguments(ASTList<TypeArgumentDeclaration> ta)

getTypeArguments

public ASTList<TypeArgumentDeclaration> getTypeArguments()

RECODER 0.92