RECODER 0.92

recoder.java
Class Import

java.lang.Object
  extended by recoder.java.JavaSourceElement
      extended by recoder.java.JavaProgramElement
          extended by recoder.java.JavaNonTerminalProgramElement
              extended by recoder.java.Import
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, NonTerminalProgramElement, ProgramElement, PackageReferenceContainer, TypeReferenceContainer, SourceElement, ModelElement

public class Import
extends JavaNonTerminalProgramElement
implements TypeReferenceContainer, PackageReferenceContainer

Import.

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
 
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
 
Constructor Summary
  Import()
          Import.
protected Import(Import proto)
          Import.
  Import(PackageReference t)
          Import.
  Import(TypeReference t, boolean multi)
          Creates a non-static (default) Import.
  Import(TypeReference t, boolean multi, boolean isStatic)
           
  Import(TypeReference t, Identifier id)
          Creates a static Import.
 
Method Summary
 void accept(SourceVisitor v)
          Receive a visitor, for instance a pretty printer.
 Import 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.
 SourceElement getLastElement()
          Finds the source element that occurs last in the source.
 PackageReference getPackageReference()
          Returns the package reference of this import, if there is one.
 CompilationUnit getParent()
          Get parent.
 TypeReferenceInfix getReference()
          Returns the reference of this import, either a type or a package reference.
 Identifier getStaticIdentifier()
           
 TypeReference getTypeReference()
          Returns the type reference of this import, if there is one.
 TypeReference getTypeReferenceAt(int index)
           
 int getTypeReferenceCount()
          Get the number of type references in this container.
 boolean isMultiImport()
          Checks if this import is a multi type import, also known as type-on-demand import.
 boolean isStaticImport()
          Checks if this import is a static import (Java 5).
 void makeParentRoleValid()
          Make parent role valid.
 boolean replaceChild(ProgramElement p, ProgramElement q)
          Replace a single child in the current node.
 void setMultiImport(boolean multi)
          Sets this import to be a multi type import.
 void setParent(CompilationUnit u)
          Set parent.
 void setReference(TypeReferenceInfix t)
          Set reference.
 void setStaticIdentifier(Identifier id)
           
 void setStaticImport(boolean isStatic)
           
 
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, 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
getComments, getID, setComments
 
Methods inherited from interface recoder.java.SourceElement
getEndPosition, getFactory, getFirstElement, 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
getComments, getID, setComments
 
Methods inherited from interface recoder.java.SourceElement
getEndPosition, getFactory, getFirstElement, getRelativePosition, getStartPosition, setEndPosition, setRelativePosition, setStartPosition, toSource
 
Methods inherited from interface recoder.ModelElement
validate
 

Constructor Detail

Import

public Import()
Import.


Import

public Import(TypeReference t,
              boolean multi)
Creates a non-static (default) Import. Same as new Import(t, multi, false)

Parameters:
t - a type reference.
multi - indicates the wildcard.

Import

public Import(TypeReference t,
              Identifier id)
Creates a static Import.

Parameters:
t -
multi -
isStatic -

Import

public Import(TypeReference t,
              boolean multi,
              boolean isStatic)

Import

public Import(PackageReference t)
Import.

Parameters:
t - a package reference.

Import

protected Import(Import proto)
Import.

Parameters:
proto - an import.
Method Detail

makeParentRoleValid

public void makeParentRoleValid()
Make parent role valid.

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

deepClone

public Import deepClone()
Deep clone.

Specified by:
deepClone in interface SourceElement
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()

isMultiImport

public boolean isMultiImport()
Checks if this import is a multi type import, also known as type-on-demand import.

Returns:
the kind of this import.

isStaticImport

public boolean isStaticImport()
Checks if this import is a static import (Java 5).

Returns:
wether or not the import is a static import

setMultiImport

public void setMultiImport(boolean multi)
Sets this import to be a multi type import.

Parameters:
multi - denotes the wildcard for this import.
Throws:
java.lang.IllegalArgumentException - if the reference is a package and multi is false .

setStaticImport

public void setStaticImport(boolean isStatic)

setStaticIdentifier

public void setStaticIdentifier(Identifier id)

getStaticIdentifier

public Identifier getStaticIdentifier()

getASTParent

public NonTerminalProgramElement getASTParent()
Get AST parent.

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

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)

getParent

public CompilationUnit getParent()
Get parent.

Returns:
the compilation unit.

setParent

public void setParent(CompilationUnit u)
Set parent.

Parameters:
u - a compilation unit.

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

getTypeReference

public TypeReference getTypeReference()
Returns the type reference of this import, if there is one.

Returns:
the reference of this import statement.

getPackageReference

public PackageReference getPackageReference()
Returns the package reference of this import, if there is one. Note that if reference is a URQ, this method will return null, although this URQ may denote a Package.

Specified by:
getPackageReference in interface PackageReferenceContainer
Returns:
the reference of this import statement.

getReference

public TypeReferenceInfix getReference()
Returns the reference of this import, either a type or a package reference.

Returns:
the reference of this import statement.

setReference

public void setReference(TypeReferenceInfix t)
Set reference.

Parameters:
t - a type reference infix.

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.

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