Top Fields Constructors Methods
org.aspectj.weaver.ltw

public Class LTWWorld

extends BcelWorld
implements IReflectionWorld
Class Inheritance
All Implemented Interfaces
org.aspectj.weaver.reflect.IReflectionWorld
Imports
java.lang.reflect.InvocationTargetException, java.util.ArrayList, .Collections, .HashMap, .List, .Map, org.aspectj.apache.bcel.classfile.JavaClass, org.aspectj.bridge.IMessageHandler, org.aspectj.weaver.Dump.IVisitor, .ICrossReferenceHandler, .ReferenceType, .ReferenceTypeDelegate, .ResolvedType, org.aspectj.weaver.bcel.BcelWorld, org.aspectj.weaver.loadtime.IWeavingContext, org.aspectj.weaver.reflect.AnnotationFinder, .IReflectionWorld, .ReflectionBasedReferenceTypeDelegateFactory, .ReflectionWorld

Authors
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

Field Summary

Modifier and TypeField and Description
private AnnotationFinder
protected static Map<K, V>
private String
private String
protected static final Class<T>
private static final long
private static final boolean
private boolean
private List<ResolvedType>
private IWeavingContext
Inherited from org.aspectj.weaver.bcel.BcelWorld:
delegate

Constructor Summary

AccessConstructor and Description
public
LTWWorld(ClassLoader loader, IWeavingContext weavingContext, IMessageHandler handler, ICrossReferenceHandler xrefHandler)

Build a World from a ClassLoader, for LTW support

Method Summary

Modifier and TypeMethod and Description
public void
accept(Dump.IVisitor visitor)

Overrides org.aspectj.weaver.World.accept.

Implements org.aspectj.weaver.Dump.INode.accept.

Dump processing when a fatal error occurs
protected void
completeBinaryType(ResolvedType ret)

Overrides org.aspectj.weaver.World.completeBinaryType.

Called when a type is resolved - enables its type hierarchy to be finished off before we proceed
private void
protected ResolvedType
public AnnotationFinder
public ClassLoader
public boolean
public boolean
isLocallyDefined(String classname)

Overrides org.aspectj.weaver.World.isLocallyDefined.

Return true if the classloader relating to this world is definetly the one that will define the specified class.
public boolean
public void
loadedClass(Class<T> clazz)

Remove this class from the typeMap.

private static Map<?, ?>
private static Class<?>
protected boolean
public ResolvedType
protected ReferenceTypeDelegate
protected ReferenceTypeDelegate
private ReferenceTypeDelegate
resolveReflectionTypeDelegate(ReferenceType ty, ClassLoader resolutionLoader)

Helper method to resolve the delegate from the reflection delegate factory.

public void
storeClass(JavaClass clazz)

Overrides org.aspectj.weaver.bcel.BcelWorld.storeClass.

Implements org.aspectj.apache.bcel.util.Repository.storeClass.

Store the provided class under "clazz.getClassName()"
Inherited from org.aspectj.weaver.bcel.BcelWorld:
addAspectRequiresaddPathaddScopedAspectaddSourceObjectTypeaddSourceObjectTypeaddSourceObjectTypeaddTypeDelegateResolverbuildBcelDelegateclassWriteEventcleardemotedetermineRelKindensureRepositorySetupfindClassfromBcelgetAspectScopegetBcelObjectTypegetClassLoaderRepositoryForgetModelAsAsmManagergetTypeMapgetWeavingSupportgetXmlConfigurationhasUnsatisfiedDependencyisAspectIncludedisXmlConfiguredloadClassloadClassmakeBcelTypemakeBcelTypemakeBcelTypesmakeFieldJoinPointSignaturemakeJoinPointSignatureForArrayConstructionmakeJoinPointSignatureForMethodInvocationmakeJoinPointSignatureForMonitorEntermakeJoinPointSignatureForMonitorExitmakeJoinPointSignatureFromMethodremoveClassreportCheckerMatchreportMatchresolvesetXmlConfiguredsetXmlFilestidyUptoStringvalidateTypeweaveInterTypeDeclarations

Field Detail

annotationFinderback to summary
private AnnotationFinder annotationFinder
bootstrapTypesback to summary
protected static Map<K, V> bootstrapTypes
classLoaderParentStringback to summary
private String classLoaderParentString
classLoaderStringback to summary
private String classLoaderString
concurrentMapClassback to summary
protected static final Class<T> concurrentMapClass
serialVersionUIDback to summary
private static final long serialVersionUID
ShareBootstrapTypesback to summary
private static final boolean ShareBootstrapTypes
typeCompletionInProgressback to summary
private boolean typeCompletionInProgress
typesForCompletionback to summary
private List<ResolvedType> typesForCompletion
weavingContextback to summary
private IWeavingContext weavingContext

Constructor Detail

LTWWorldback to summary
public LTWWorld(ClassLoader loader, IWeavingContext weavingContext, IMessageHandler handler, ICrossReferenceHandler xrefHandler)

Build a World from a ClassLoader, for LTW support

Method Detail

acceptback to summary
public void accept(Dump.IVisitor visitor)

Overrides org.aspectj.weaver.World.accept.

Implements org.aspectj.weaver.Dump.INode.accept.

Doc from org.aspectj.weaver.World.accept.

Dump processing when a fatal error occurs

Annotations
@Override
completeBinaryTypeback to summary
protected void completeBinaryType(ResolvedType ret)

Overrides org.aspectj.weaver.World.completeBinaryType.

Doc from org.aspectj.weaver.World.completeBinaryType.

Called when a type is resolved - enables its type hierarchy to be finished off before we proceed

Annotations
@Override
completeHierarchyForTypeback to summary
private void completeHierarchyForType(ResolvedType ret)
completeNonLocalTypeback to summary
protected ResolvedType completeNonLocalType(ResolvedType ret)
getAnnotationFinderback to summary
public AnnotationFinder getAnnotationFinder()

Implements org.aspectj.weaver.reflect.IReflectionWorld.getAnnotationFinder.

getClassLoaderback to summary
public ClassLoader getClassLoader()
isLoadtimeWeavingback to summary
public boolean isLoadtimeWeaving()

Overrides org.aspectj.weaver.bcel.BcelWorld.isLoadtimeWeaving.

isLocallyDefinedback to summary
public boolean isLocallyDefined(String classname)

Overrides org.aspectj.weaver.World.isLocallyDefined.

Doc from org.aspectj.weaver.World.isLocallyDefined.

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.

Annotations
@Override
isRunMinimalMemoryback to summary
public boolean isRunMinimalMemory()

Overrides org.aspectj.weaver.World.isRunMinimalMemory.

Annotations
@Override
loadedClassback to summary
public void loadedClass(Class<T> 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

makeConcurrentMapback to summary
private static Map<?, ?> makeConcurrentMap()
makeConcurrentMapClassback to summary
private static Class<?> makeConcurrentMapClass()
needsCompletionback to summary
protected boolean needsCompletion()
resolveback to summary
public ResolvedType resolve(Class<T> aClass)

Implements org.aspectj.weaver.reflect.IReflectionWorld.resolve.

resolveDelegateback to summary
protected ReferenceTypeDelegate resolveDelegate(ReferenceType ty)

Overrides org.aspectj.weaver.bcel.BcelWorld.resolveDelegate.

Override

Annotations
@Override
resolveIfBootstrapDelegateback to summary
protected ReferenceTypeDelegate resolveIfBootstrapDelegate(ReferenceType ty)
resolveReflectionTypeDelegateback to summary
private ReferenceTypeDelegate resolveReflectionTypeDelegate(ReferenceType ty, ClassLoader resolutionLoader)

Helper method to resolve the delegate from the reflection delegate factory.

storeClassback to summary
public void storeClass(JavaClass clazz)

Overrides org.aspectj.weaver.bcel.BcelWorld.storeClass.

Implements org.aspectj.apache.bcel.util.Repository.storeClass.

Doc from org.aspectj.apache.bcel.util.Repository.storeClass.

Store the provided class under "clazz.getClassName()"

Annotations
@Override