abc.om
Class AbcExtension

java.lang.Object
  extended by abc.main.AbcExtension
      extended by abc.eaj.AbcExtension
          extended by abc.om.AbcExtension

public class AbcExtension
extends AbcExtension

Author:
Neil Ongkingco

Nested Class Summary
static class AbcExtension.OMDebug
           
 
Field Summary
static AbcExtension.OMDebug AST_PRINT_DEBUG
           
static AbcExtension.OMDebug COLLECT_MODULE_ASPECTS_DEBUG
           
protected static java.util.Set<AbcExtension.OMDebug> debugSet
           
static Position generated
           
static AbcExtension.OMDebug ITD_DEBUG
           
static AbcExtension.OMDebug MATCHING_DEBUG
           
static AbcExtension.OMDebug NORMALIZE_DEBUG
           
static AbcExtension.OMDebug PARENT_DEBUG
           
static AbcExtension.OMDebug PRECEDENCE_DEBUG
           
 
Constructor Summary
AbcExtension()
           
 
Method Summary
protected  GlobalAspectInfo createGlobalAspectInfo()
          Override this to create a custom global aspect info.
static void debPrint(AbcExtension.OMDebug debug, java.lang.String str)
           
static void debPrintln(AbcExtension.OMDebug debug, java.lang.String str)
           
 void initLexerKeywords(AbcLexer lexer)
          Initialise the HashMaps that define how keywords are handled in the different lexer states.
static boolean isDebugSet(AbcExtension.OMDebug debug)
           
static boolean isLoaded()
           
 ExtensionInfo makeExtensionInfo(java.util.Collection jar_classes, java.util.Collection aspect_sources)
          Creates an instance of the ExtensionInfo structure used for extending the Polyglot-based frontend.
 java.util.List residueConjuncts(AbstractAdviceDecl ad, Pointcut pc, ShadowMatch sm, SootMethod method, SootClass cls, WeavingEnv we)
          return the list of residue conjuncts.
 
Methods inherited from class abc.eaj.AbcExtension
addBasicClassesToSoot, collectVersions, createSJPInfo, createWeaver, doMethodRestructuring, listShadowTypes, makeAdviceInliner, runtimeSJPFactoryClass
 
Methods inherited from class abc.main.AbcExtension
addJimplePacks, createCompileSequence, createReweavingPasses, findMethodShadows, forceReportError, getCompileSequence, getErrorQueue, getGlobalAspectInfo, getPrecedence, getPrecNum, getReweavingPasses, getWeaver, reportError, reportError, resumeErrorReporting, setErrorQueue, shadowTypes, suspendErrorReporting, versions
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PRECEDENCE_DEBUG

public static final AbcExtension.OMDebug PRECEDENCE_DEBUG

COLLECT_MODULE_ASPECTS_DEBUG

public static final AbcExtension.OMDebug COLLECT_MODULE_ASPECTS_DEBUG

MATCHING_DEBUG

public static final AbcExtension.OMDebug MATCHING_DEBUG

AST_PRINT_DEBUG

public static final AbcExtension.OMDebug AST_PRINT_DEBUG

PARENT_DEBUG

public static final AbcExtension.OMDebug PARENT_DEBUG

ITD_DEBUG

public static final AbcExtension.OMDebug ITD_DEBUG

NORMALIZE_DEBUG

public static final AbcExtension.OMDebug NORMALIZE_DEBUG

debugSet

protected static java.util.Set<AbcExtension.OMDebug> debugSet

generated

public static Position generated
Constructor Detail

AbcExtension

public AbcExtension()
Method Detail

isLoaded

public static boolean isLoaded()

makeExtensionInfo

public ExtensionInfo makeExtensionInfo(java.util.Collection jar_classes,
                                       java.util.Collection aspect_sources)
Description copied from class: AbcExtension
Creates an instance of the ExtensionInfo structure used for extending the Polyglot-based frontend.

Overrides:
makeExtensionInfo in class AbcExtension

createGlobalAspectInfo

protected GlobalAspectInfo createGlobalAspectInfo()
Description copied from class: AbcExtension
Override this to create a custom global aspect info.

Overrides:
createGlobalAspectInfo in class AbcExtension

initLexerKeywords

public void initLexerKeywords(AbcLexer lexer)
Description copied from class: AbcExtension
Initialise the HashMaps that define how keywords are handled in the different lexer states. Keywords are added by calling the methods addJavaKeyword(), addAspectJKeyword(), lexer.addPointcutKeyword() and addPointcutIfExprKeyword(), which are defined in the Lexer_c class. There are the utility methods lexer.addGlobalKeyword() (which adds its parameters to all four states) and lexer.addAspectJContextKeyword() (which adds its parameters to the AspectJ and PointcutIfExpr states). Each of these methods takes two arguments - a String (the keyword to be added) and a class implementing abc.aspectj.parse.LexerAction defining what to do when this keyword is encountered.

Overrides:
initLexerKeywords in class AbcExtension

residueConjuncts

public java.util.List residueConjuncts(AbstractAdviceDecl ad,
                                       Pointcut pc,
                                       ShadowMatch sm,
                                       SootMethod method,
                                       SootClass cls,
                                       WeavingEnv we)
Description copied from class: AbcExtension
return the list of residue conjuncts. This should return a list all of whose elements are of type abc.weaving.matching.AdviceApplication.ResidueConjunct.

Overrides:
residueConjuncts in class AbcExtension

isDebugSet

public static boolean isDebugSet(AbcExtension.OMDebug debug)

debPrintln

public static void debPrintln(AbcExtension.OMDebug debug,
                              java.lang.String str)

debPrint

public static void debPrint(AbcExtension.OMDebug debug,
                            java.lang.String str)