org.aspectj.compiler.base.ast
Class FromDecStmt

java.lang.Object
  extended byorg.aspectj.compiler.base.CompilerObject
      extended byorg.aspectj.compiler.base.ast.ASTObject
          extended byorg.aspectj.compiler.base.ast.Stmt
              extended byorg.aspectj.compiler.base.ast.FromDecStmt

public class FromDecStmt
extends Stmt

Used to keep track of the (currently FieldDec) that produces a Stmt so that we can handle getLexicalType correctly both for accessibility and for within matching for introduced fields with non-empty initializers


Field Summary
protected  Dec fromDec
           
protected  Stmt stmt
           
 
Fields inherited from class org.aspectj.compiler.base.ast.ASTObject
dummySource, parent, sourceLocation
 
Constructor Summary
protected FromDecStmt(SourceLocation source)
           
  FromDecStmt(SourceLocation location, Stmt _stmt, Dec _fromDec)
           
 
Method Summary
 ASTObject copyWalk(CopyWalker walker)
           
 ASTObject getChildAt(int childIndex)
           
 int getChildCount()
           
 java.lang.String getChildNameAt(int childIndex)
           
 java.lang.String getDefaultDisplayName()
           
 Dec getFromDec()
           
 Type getLexicalType()
          returns the lexically enclosing Type for this object.
 Stmt getStmt()
           
 ASTObject postCleanup(org.aspectj.compiler.base.ByteCodeCleanupPass w)
           
 ASTObject postFixAST(org.aspectj.compiler.base.ASTFixerPass fixer)
           
 void setChildAt(int childIndex, ASTObject child)
           
 void setFromDec(Dec _fromDec)
           
 void setStmt(Stmt _stmt)
           
 void unparse(org.aspectj.compiler.base.CodeWriter writer)
           
 
Methods inherited from class org.aspectj.compiler.base.ast.Stmt
cgStmt, cgTop, completesNormally, isBreakable, isContinuable, isEmpty, mustBeLive, registerLocation, requireBlockStmt, requireStmt, setCompletesNormally
 
Methods inherited from class org.aspectj.compiler.base.ast.ASTObject
addComment, buildAccessMethod, checkNoSharing, checkSpec, cleanup, clearComment, clearParent, contains, containsTypes, copy, display, fixAccessPost, fixAST, fromSource, getAST, getBeginColumn, getBeginLine, getBytecodeType, getBytecodeTypeDec, getComment, getCompilationUnit, getDeclaringType, getEnclosingCodeDec, getEnclosingDec, getEndColumn, getEndLine, getEndPosition, getFormalComment, getOutermostBytecodeType, getOutermostLexicalType, getParent, getSourceDirectoryName, getSourceFile, getSourceFileName, getSourceLocation, getStartPosition, hasLegalProtectedAccess, hasSource, hasSourceLocation, implementMixin, indexOf, inStaticContext, isLanguageVisible, isLeaf, isSynthetic, makeChild, makeChild, postAssignmentCheck, postCopy, postImplementMixin, postInnerAccess, postInnerInfo, postLift, postMove, postScope, postThreading, preAssignmentCheck, preCopy, preIntroduction, preLift, preMove, preScope, preThreading, remove, remove, removeChildAt, replaceWith, setFormalComment, setParent, setParents, setSource, setSourceLocation, setSyntheticSource, showError, showMessage, showTypeError, showWarning, toShortString, toString, unparse, walk, walkAnalysis, walkAssignmentCheck, walkCleanup, walkFlow, walkForwardReference, walkFrameLoc, walkInnerInfo, walkMemberMunger, walkScope
 
Methods inherited from class org.aspectj.compiler.base.CompilerObject
getCompiler, getOptions, getTypeManager, getWorld
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

stmt

protected Stmt stmt

fromDec

protected Dec fromDec
Constructor Detail

FromDecStmt

public FromDecStmt(SourceLocation location,
                   Stmt _stmt,
                   Dec _fromDec)

FromDecStmt

protected FromDecStmt(SourceLocation source)
Method Detail

getLexicalType

public Type getLexicalType()
Description copied from class: ASTObject
returns the lexically enclosing Type for this object. For pure Java code this is always identical to getDeclaringType() and getBytecodeTypeDec().getType(). For introduced methods, this can be different, i.e. interface I { } class C implements I { } aspect A { void C.m() { ... } } For the method I.m() implemented in C and for any ASTObjects inside of it, getLexicalType() == A getDeclaringType() == I getBytecodeTypeDec().getType() == C

Overrides:
getLexicalType in class ASTObject

unparse

public void unparse(org.aspectj.compiler.base.CodeWriter writer)
Overrides:
unparse in class ASTObject

postFixAST

public ASTObject postFixAST(org.aspectj.compiler.base.ASTFixerPass fixer)
Overrides:
postFixAST in class ASTObject

postCleanup

public ASTObject postCleanup(org.aspectj.compiler.base.ByteCodeCleanupPass w)
Overrides:
postCleanup in class ASTObject

getStmt

public Stmt getStmt()

setStmt

public void setStmt(Stmt _stmt)

getFromDec

public Dec getFromDec()

setFromDec

public void setFromDec(Dec _fromDec)

copyWalk

public ASTObject copyWalk(CopyWalker walker)
Overrides:
copyWalk in class ASTObject

getChildAt

public ASTObject getChildAt(int childIndex)
Overrides:
getChildAt in class ASTObject

getChildNameAt

public java.lang.String getChildNameAt(int childIndex)
Overrides:
getChildNameAt in class ASTObject

setChildAt

public void setChildAt(int childIndex,
                       ASTObject child)
Overrides:
setChildAt in class ASTObject

getChildCount

public int getChildCount()
Overrides:
getChildCount in class ASTObject

getDefaultDisplayName

public java.lang.String getDefaultDisplayName()
Overrides:
getDefaultDisplayName in class Stmt