org.aspectj.weaver.ltw
Class LTWWorld

java.lang.Object
  extended by org.aspectj.weaver.World
      extended by org.aspectj.weaver.bcel.BcelWorld
          extended by org.aspectj.weaver.ltw.LTWWorld
All Implemented Interfaces:
Repository, Dump.INode, IReflectionWorld

public class LTWWorld
extends BcelWorld
implements IReflectionWorld

Author:
adrian, Ron Bodkin For use in LT weaving Backed by both a BcelWorld and a ReflectionWorld Needs a callback when a woven class is defined This is the trigger for us to ditch the class from Bcel and cache it in the reflective world instead. Create by passing in a classloader, message handler

Nested Class Summary
 
Nested classes/interfaces inherited from class org.aspectj.weaver.World
World.TypeMap
 
Field Summary
 
Fields inherited from class org.aspectj.weaver.World
createInjarHierarchy, forDEBUG_bridgingCode, forDEBUG_structuralChangesCode, infoMessagesEnabled, optimizedMatching, xsetBCEL_REPOSITORY_CACHING, xsetBCEL_REPOSITORY_CACHING_DEFAULT, xsetCAPTURE_ALL_CONTEXT, xsetCOMPLETE_BINARY_TYPES, xsetCOMPLETE_BINARY_TYPES_DEFAULT, xsetDEBUG_BRIDGING, xsetDEBUG_STRUCTURAL_CHANGES_CODE, xsetFAST_PACK_METHODS, xsetGENERATE_STACKMAPS, xsetITD_VERSION, xsetITD_VERSION_2NDGEN, xsetITD_VERSION_DEFAULT, xsetITD_VERSION_ORIGINAL, xsetMINIMAL_MODEL, xsetOPTIMIZED_MATCHING, xsetOVERWEAVING, xsetPIPELINE_COMPILATION, xsetPIPELINE_COMPILATION_DEFAULT, xsetRUN_MINIMAL_MEMORY, xsetTARGETING_RUNTIME_1610, xsetTIMERS_PER_FASTMATCH_CALL, xsetTIMERS_PER_JOINPOINT, xsetTYPE_DEMOTION, xsetTYPE_DEMOTION_DEBUG, xsetTYPE_REFS, xsetWEAVE_JAVA_PACKAGES, xsetWEAVE_JAVAX_PACKAGES
 
Constructor Summary
LTWWorld(java.lang.ClassLoader loader, IWeavingContext weavingContext, IMessageHandler handler, ICrossReferenceHandler xrefHandler)
          Build a World from a ClassLoader, for LTW support
 
Method Summary
 void accept(Dump.IVisitor visitor)
          Dump processing when a fatal error occurs
 AnnotationFinder getAnnotationFinder()
           
 java.lang.ClassLoader getClassLoader()
           
 boolean isDemotionActive()
           
 boolean isLoadtimeWeaving()
           
 boolean isLocallyDefined(java.lang.String classname)
          Return true if the classloader relating to this world is definetly the one that will define the specified class.
 boolean isRunMinimalMemory()
           
 void loadedClass(java.lang.Class clazz)
          Remove this class from the typeMap.
 ResolvedType resolve(java.lang.Class aClass)
           
 void storeClass(JavaClass clazz)
          Store the provided class under "clazz.getClassName()"
 
Methods inherited from class org.aspectj.weaver.bcel.BcelWorld
addAspectRequires, addPath, addScopedAspect, addSourceObjectType, addSourceObjectType, addSourceObjectType, addTypeDelegateResolver, buildBcelDelegate, classWriteEvent, clear, determineRelKind, ensureRepositorySetup, findClass, fromBcel, getAspectScope, getBcelObjectType, getClassLoaderRepositoryFor, getModelAsAsmManager, getTypeMap, getWeavingSupport, getXmlConfiguration, hasUnsatisfiedDependency, isAspectIncluded, isXmlConfigured, loadClass, loadClass, makeBcelType, makeFieldJoinPointSignature, makeJoinPointSignatureForArrayConstruction, makeJoinPointSignatureForMethodInvocation, makeJoinPointSignatureForMonitorEnter, makeJoinPointSignatureForMonitorExit, makeJoinPointSignatureFromMethod, removeClass, reportCheckerMatch, reportMatch, resolve, setXmlConfigured, setXmlFiles, tidyUp, toString, validateType
 
Methods inherited from class org.aspectj.weaver.World
areAllLintIgnored, areInfoMessagesEnabled, areSynchronizationPointcutsInUse, compareByPrecedence, compareByPrecedenceAndHierarchy, couldIncrementalCompileFollow, createAdviceMunger, demote, ensureAdvancedConfigurationProcessed, flush, forgetTypeVariablesCurrentlyBeingProcessed, getCoreType, getCrosscuttingMembersSet, getCrossReferenceHandler, getDeclareAnnotationOnFields, getDeclareAnnotationOnMethods, getDeclareAnnotationOnTypes, getDeclareParents, getDeclareSoft, getDeclareTypeEows, getExclusionMap, getExpendable, getExtraConfiguration, getFixed, getItdVersion, getLint, getMessageHandler, getModel, getPrecedenceIfAny, getRegisteredPointcutHandlers, getTargetAspectjRuntimeLevel, getTypeVariableLookupScope, getTypeVariablesCurrentlyBeingProcessed, isAddSerialVerUID, isHasMemberSupportEnabled, isIgnoringUnusedDeclaredThrownException, isInJava5Mode, isInPinpointMode, isJoinpointArrayConstructionEnabled, isJoinpointSynchronizationEnabled, isMinimalModel, isOverWeaving, isRunMinimalMemorySet, isTargettingAspectJRuntime12, isTargettingRuntime1_6_10, isTimingEnabled, isXlazyTjp, isXnoInline, lookupBySignature, lookupOrCreateName, performExtraConfiguration, record, recordFastMatch, recordTypeVariablesCurrentlyBeingProcessed, registerPointcutHandler, reportTimers, reset, resolve, resolve, resolve, resolve, resolve, resolve, resolve, resolve, resolveGenericTypeFor, resolveToReferenceType, setAddSerialVerUID, setAllLintIgnored, setBehaveInJava5Way, setCrossReferenceHandler, setErrorAndWarningThreshold, setIncrementalCompileCouldFollow, setLint, setMessageHandler, setModel, setOptionalJoinpoints, setPinpointMode, setSynchronizationPointcutsInUse, setTargetAspectjRuntimeLevel, setTiming, setTypeVariableLookupScope, setXHasMemberSupportEnabled, setXlazyTjp, setXnoInline, shouldFastPackMethods, shouldGenerateStackMaps, shouldPipelineCompilation, showMessage
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

LTWWorld

public LTWWorld(java.lang.ClassLoader loader,
                IWeavingContext weavingContext,
                IMessageHandler handler,
                ICrossReferenceHandler xrefHandler)
Build a World from a ClassLoader, for LTW support

Method Detail

isDemotionActive

public boolean isDemotionActive()
Overrides:
isDemotionActive in class World

getClassLoader

public java.lang.ClassLoader getClassLoader()

loadedClass

public void loadedClass(java.lang.Class clazz)
Remove this class from the typeMap. Call back to be made from a publishing class loader The class loader should, ideally, make this call on each not yet working

Parameters:
clazz -

getAnnotationFinder

public AnnotationFinder getAnnotationFinder()
Specified by:
getAnnotationFinder in interface IReflectionWorld

resolve

public ResolvedType resolve(java.lang.Class aClass)
Specified by:
resolve in interface IReflectionWorld

isRunMinimalMemory

public boolean isRunMinimalMemory()
Overrides:
isRunMinimalMemory in class World

isLocallyDefined

public boolean isLocallyDefined(java.lang.String classname)
Description copied from class: World
Return true if the classloader relating to this world is definetly the one that will define the specified class. Return false otherwise or we don't know for certain.

Overrides:
isLocallyDefined in class World

storeClass

public void storeClass(JavaClass clazz)
Description copied from interface: Repository
Store the provided class under "clazz.getClassName()"

Specified by:
storeClass in interface Repository
Overrides:
storeClass in class BcelWorld

accept

public void accept(Dump.IVisitor visitor)
Description copied from class: World
Dump processing when a fatal error occurs

Specified by:
accept in interface Dump.INode
Overrides:
accept in class World

isLoadtimeWeaving

public boolean isLoadtimeWeaving()
Overrides:
isLoadtimeWeaving in class BcelWorld