Top Inners Fields Constructors Methods
org.aspectj.weaver.bcel

public Class BcelWorld

extends World
implements Repository
Class Inheritance
All Implemented Interfaces
org.aspectj.apache.bcel.util.Repository
Known Direct Subclasses
org.aspectj.weaver.ltw.LTWWorld
Imports
java.io.File, .IOException, java.lang.reflect.Modifier, java.net.MalformedURLException, java.util.ArrayList, .Collections, .HashMap, .Iterator, .List, .Map, .StringTokenizer, org.aspectj.apache.bcel.Constants, org.aspectj.apache.bcel.classfile.ClassParser, .ConstantPool, .JavaClass, org.aspectj.apache.bcel.generic.FieldInstruction, .INVOKEINTERFACE, .Instruction, .InstructionHandle, .InvokeInstruction, .MULTIANEWARRAY, .ObjectType, .Type, org.aspectj.apache.bcel.util.ClassLoaderReference, .ClassLoaderRepository, .ClassPath, .NonCachingClassLoaderRepository, .Repository, org.aspectj.asm.AsmManager, .IRelationship, org.aspectj.asm.internal.CharOperation, org.aspectj.bridge.IMessage, .IMessageHandler, .ISourceLocation, .Message, .MessageUtil, .WeaveMessage, org.aspectj.weaver.Advice, .AdviceKind, .AnnotationAJ, .AnnotationOnTypeMunger, .BCException, .Checker, .ICrossReferenceHandler, .IWeavingSupport, .Member, .MemberImpl, .MemberKind, .NewParentTypeMunger, .ReferenceType, .ReferenceTypeDelegate, .ResolvedMember, .ResolvedMemberImpl, .ResolvedType, .ResolvedTypeMunger, .Shadow, .ShadowMunger, .UnresolvedType, .World, org.aspectj.weaver.loadtime.definition.Definition, .DocumentParser, org.aspectj.weaver.model.AsmRelationshipProvider, org.aspectj.weaver.patterns.DeclareAnnotation, .DeclareParents, .ParserException, .PatternParser, .TypePattern, org.aspectj.weaver.tools.Trace, .TraceFactory

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static class
BcelWorld.WeavingXmlConfig

A WeavingXmlConfig is initially a collection of definitions from XML files - once the world is ready and weaving is running it will initialize and transform those definitions into an optimized set of values (eg.

Field Summary

Modifier and TypeField and Description
private Map<String, String>
private List<String>
private final BcelWeavingSupport
private final ClassPathManager
protected Repository
private boolean
private BcelWeakClassLoaderReference
private static Trace
private List<TypeDelegateResolver>
private BcelWorld.WeavingXmlConfig
Inherited from org.aspectj.weaver.World:
bcelRepositoryCachingBOOLEANBYTECHARcreateInjarHierarchyDOUBLEFLOATforDEBUG_bridgingCodeforDEBUG_structuralChangesCodegenerateNewLvtsinfoMessagesEnabledINTLONGoptimizedMatchingRUNTIME_LEVEL_DEFAULTSHORTtimersPerJoinpointtimersPerTypetypeMapVOIDxsetAVOID_FINALxsetBCEL_REPOSITORY_CACHINGxsetBCEL_REPOSITORY_CACHING_DEFAULTxsetCAPTURE_ALL_CONTEXTxsetCOMPLETE_BINARY_TYPESxsetCOMPLETE_BINARY_TYPES_DEFAULTxsetDEBUG_BRIDGINGxsetDEBUG_STRUCTURAL_CHANGES_CODExsetFAST_PACK_METHODSxsetGENERATE_NEW_LVTSxsetGENERATE_STACKMAPSxsetITD_VERSIONxsetITD_VERSION_2NDGENxsetITD_VERSION_DEFAULTxsetITD_VERSION_ORIGINALxsetMINIMAL_MODELxsetOPTIMIZED_MATCHINGxsetOVERWEAVINGxsetPIPELINE_COMPILATIONxsetPIPELINE_COMPILATION_DEFAULTxsetRUN_MINIMAL_MEMORYxsetTARGETING_RUNTIME_1610xsetTIMERS_PER_FASTMATCH_CALLxsetTIMERS_PER_JOINPOINTxsetTRANSIENT_TJP_FIELDSxsetTYPE_DEMOTIONxsetTYPE_DEMOTION_DEBUGxsetTYPE_REFSxsetWEAVE_JAVA_PACKAGESxsetWEAVE_JAVAX_PACKAGES

Constructor Summary

AccessConstructor and Description
public
public
public
BcelWorld(List<E> classPath, IMessageHandler handler, ICrossReferenceHandler xrefHandler)

public
public
BcelWorld(ClassLoader loader, IMessageHandler handler, ICrossReferenceHandler xrefHandler)

Build a World from a ClassLoader, for LTW support

Method Summary

Modifier and TypeMethod and Description
public void
addAspectRequires(String aspectClassName, String requiredType)

public void
public void
addScopedAspect(String name, String scope)

Add a scoped aspects where the scoping was defined in an aop.xml file and this world is being used in a LTW configuration

public BcelObjectType
addSourceObjectType(JavaClass jc, boolean artificial)

public BcelObjectType
addSourceObjectType(String classname, JavaClass jc, boolean artificial)

public BcelObjectType
addSourceObjectType(String classname, byte[] bytes, boolean artificial)

public void
private boolean

Returns:

true if something matched and the type was modified
applyDeclareAtField
(DeclareAnnotation
the declare annotation targeting fields
deca
,
ResolvedType
the type to check for members matching the declare annotation
type
)

Apply the specified declare @field construct to any matching fields in the specified type.

private boolean
applyDeclareAtType(DeclareAnnotation decA, ResolvedType onType, boolean reportProblems)

Apply a declare @type - return true if we change the type

private boolean
applyDeclareParents(DeclareParents p, ResolvedType onType)

Apply a single declare parents - return true if we change the type

private boolean
private String
public BcelObjectType
buildBcelDelegate(ReferenceType type, JavaClass jc, boolean artificial, boolean exposedToWeaver)

private boolean
checkTargetOK(DeclareAnnotation decA, ResolvedType onType, AnnotationAJ annoX)

Checks for an @target() on the annotation and if found ensures it allows the annotation to be attached to the target type that matched.

public void
public void
clear()

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

Clear all entries from cache.
pack-priv void
public void
demote(ResolvedType type)

Force demote a type.

public IRelationship.Kind
public void
public JavaClass
findClass(String className)

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

Find the class with the name provided, if the class isn't there, return NULL.
public static UnresolvedType
pack-priv static UnresolvedType[]
fromBcel(Type[] ts)

public TypePattern
public static BcelObjectType
getBcelObjectType(ResolvedType concreteAspect)

Retrieve a bcel delegate for an aspect - this will return NULL if the delegate is an EclipseSourceType and not a BcelObjectType - this happens quite often when incrementally compiling.

public Repository
public AsmManager
private static List<String>
public World.TypeMap
public IWeavingSupport
public BcelWorld.WeavingXmlConfig
public boolean
hasUnsatisfiedDependency(ResolvedType aspectType)

Overrides org.aspectj.weaver.World.hasUnsatisfiedDependency.

Determine if the named aspect requires a particular type around in order to be useful.
public boolean
public boolean
public boolean
public JavaClass
loadClass(String className)

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

Find the class with the name provided, if the class isn't there, make an attempt to load it.
public JavaClass
loadClass(Class<T> clazz)

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

Find the JavaClass instance for the given run-time class object
private JavaClass
public static Type
public static Type
pack-priv static Type[]
public static Type[]
pack-priv static String[]
private static List<String>
public static Member
public Member
public Member
public Member
public Member
public Member
pack-priv void
raiseError(String message)

public void
removeClass(JavaClass clazz)

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

Remove class from repository
public void
public void
private void
public ResolvedType
protected ReferenceTypeDelegate
resolveDelegate(ReferenceType ty)

Implements abstract org.aspectj.weaver.World.resolveDelegate.

Find the ReferenceTypeDelegate behind this reference type so that it can fulfill its contract.
public void
setXmlConfigured(boolean b)

public void
setXmlFiles(List<File>
list of File objects representing any aop.xml files passed in to configure the build process
xmlFiles
)

These are aop.xml files that can be used to alter the aspects that actually apply from those passed in - and also their scope of application to other files in the system.

public void
storeClass(JavaClass clazz)

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

Store the provided class under "clazz.getClassName()"
public void
public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.
public void
validateType(UnresolvedType type)

Overrides org.aspectj.weaver.World.validateType.

The aim of this method is to make sure a particular type is 'ok'.
protected void
Inherited from org.aspectj.weaver.World:
acceptareAllLintIgnoredareInfoMessagesEnabledareSynchronizationPointcutsInUsecompareByPrecedencecompareByPrecedenceAndHierarchycompleteBinaryTypecouldIncrementalCompileFollowcreateAdviceMungerdemoteensureAdvancedConfigurationProcessedflushforgetTypeVariablesCurrentlyBeingProcessedgetCoreTypegetCrosscuttingMembersSetgetCrossReferenceHandlergetDeclareAnnotationOnFieldsgetDeclareAnnotationOnMethodsgetDeclareAnnotationOnTypesgetDeclareParentsgetDeclareSoftgetDeclareTypeEowsgetExclusionMapgetExpendablegetExtraConfigurationgetFixedgetItdVersiongetLintgetMessageHandlergetModelgetPrecedenceIfAnygetRegisteredPointcutHandlersgetTargetAspectjRuntimeLevelgetTypeVariableLookupScopegetTypeVariablesCurrentlyBeingProcessedisAddSerialVerUIDisDemotionActiveisExpendableisHasMemberSupportEnabledisIgnoringUnusedDeclaredThrownExceptionisInJava5ModeisInPinpointModeisJoinpointArrayConstructionEnabledisJoinpointSynchronizationEnabledisLocallyDefinedisMinimalModelisOverWeavingisRunMinimalMemoryisRunMinimalMemorySetisTargettingAspectJRuntime12isTargettingRuntime1_6_10isTimingEnabledisTransientTjpFieldsisXlazyTjpisXnoInlinelookupBySignaturelookupOrCreateNameperformExtraConfigurationrecordrecordFastMatchrecordTypeVariablesCurrentlyBeingProcessedregisterPointcutHandlerreportTimersresetresolveresolveresolveresolveresolveresolveresolveresolveresolveGenericTypeForresolveToReferenceTypesetAddSerialVerUIDsetAllLintIgnoredsetBehaveInJava5WaysetCrossReferenceHandlersetErrorAndWarningThresholdsetIncrementalCompileCouldFollowsetLintsetMessageHandlersetModelsetOptionalJoinpointssetPinpointModesetSynchronizationPointcutsInUsesetTargetAspectjRuntimeLevelsetTimingsetTypeVariableLookupScopesetXHasMemberSupportEnabledsetXlazyTjpsetXnoInlineshouldFastPackMethodsshouldGenerateStackMapsshouldPipelineCompilationshowMessageuseFinal