Package org.aspectj.weaver.bcel
Class BcelWorld
java.lang.Object
org.aspectj.weaver.World
org.aspectj.weaver.bcel.BcelWorld
- All Implemented Interfaces:
Repository,Dump.INode
- Direct Known Subclasses:
LTWWorld
-
Nested Class Summary
Nested classes/interfaces inherited from class org.aspectj.weaver.World
World.TypeMap -
Field Summary
FieldsFields inherited from class org.aspectj.weaver.World
bcelRepositoryCaching, BOOLEAN, BYTE, CHAR, createInjarHierarchy, DOUBLE, FLOAT, forDEBUG_bridgingCode, forDEBUG_structuralChangesCode, generateNewLvts, infoMessagesEnabled, INT, LONG, optimizedMatching, RUNTIME_LEVEL_DEFAULT, SHORT, timersPerJoinpoint, timersPerType, typeMap, VOID, xsetAVOID_FINAL, 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_NEW_LVTS, 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, xsetTRANSIENT_TJP_FIELDS, xsetTYPE_DEMOTION, xsetTYPE_DEMOTION_DEBUG, xsetTYPE_REFS, xsetWEAVE_JAVA_PACKAGES, xsetWEAVE_JAVAX_PACKAGES -
Constructor Summary
ConstructorsConstructorDescriptionBcelWorld(ClassLoader loader, IMessageHandler handler, ICrossReferenceHandler xrefHandler)Build a World from a ClassLoader, for LTW supportBcelWorld(List classPath, IMessageHandler handler, ICrossReferenceHandler xrefHandler)BcelWorld(ClassPathManager cpm, IMessageHandler handler, ICrossReferenceHandler xrefHandler) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAspectRequires(String aspectClassName, String requiredType)voidvoidaddScopedAspect(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 configurationaddSourceObjectType(String classname, byte[] bytes, boolean artificial)addSourceObjectType(String classname, JavaClass jc, boolean artificial)addSourceObjectType(JavaClass jc, boolean artificial)voidaddTypeDelegateResolver(TypeDelegateResolver typeDelegateResolver)buildBcelDelegate(ReferenceType type, JavaClass jc, boolean artificial, boolean exposedToWeaver)voidclassWriteEvent(char[][] compoundName)voidclear()Clear all entries from cache.voiddemote(ResolvedType type)Force demote a type.determineRelKind(ShadowMunger munger)voidFind the class with the name provided, if the class isn't there, return NULL.static UnresolvedTypegetAspectScope(ResolvedType declaringType)static BcelObjectTypegetBcelObjectType(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.org.aspectj.weaver.bcel.BcelWorld.WeavingXmlConfigbooleanhasUnsatisfiedDependency(ResolvedType aspectType)Determine if the named aspect requires a particular type around in order to be useful.booleanisAspectIncluded(ResolvedType aspectType)booleanbooleanFind the JavaClass instance for the given run-time class objectFind the class with the name provided, if the class isn't there, make an attempt to load it.static TypemakeBcelType(String type)static TypemakeBcelType(UnresolvedType type)static Type[]makeBcelTypes(String[] types)static MembervoidremoveClass(JavaClass clazz)Remove class from repositoryvoidreportCheckerMatch(Checker checker, Shadow shadow)voidreportMatch(ShadowMunger munger, Shadow shadow)protected ReferenceTypeDelegateFind the ReferenceTypeDelegate behind this reference type so that it can fulfill its contract.voidsetXmlConfigured(boolean b)voidsetXmlFiles(List<File> 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.voidstoreClass(JavaClass clazz)Store the provided class under "clazz.getClassName()"voidtidyUp()toString()voidvalidateType(UnresolvedType type)The aim of this method is to make sure a particular type is 'ok'.protected voidweaveInterTypeDeclarations(ResolvedType onType)Methods inherited from class org.aspectj.weaver.World
accept, areAllLintIgnored, areInfoMessagesEnabled, areSynchronizationPointcutsInUse, compareByPrecedence, compareByPrecedenceAndHierarchy, completeBinaryType, 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, isDemotionActive, isExpendable, isHasMemberSupportEnabled, isIgnoringUnusedDeclaredThrownException, isInJava5Mode, isInPinpointMode, isJoinpointArrayConstructionEnabled, isJoinpointSynchronizationEnabled, isLocallyDefined, isMinimalModel, isOverWeaving, isRunMinimalMemory, isRunMinimalMemorySet, isTargettingAspectJRuntime12, isTargettingRuntime1_6_10, isTimingEnabled, isTransientTjpFields, 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, useFinal
-
Field Details
-
delegate
-
-
Constructor Details
-
BcelWorld
public BcelWorld() -
BcelWorld
-
BcelWorld
-
BcelWorld
public BcelWorld(ClassPathManager cpm, IMessageHandler handler, ICrossReferenceHandler xrefHandler) -
BcelWorld
Build a World from a ClassLoader, for LTW support- Parameters:
loader-handler-xrefHandler-
-
-
Method Details
-
determineRelKind
-
reportMatch
- Overrides:
reportMatchin classWorld
-
ensureRepositorySetup
public void ensureRepositorySetup() -
getClassLoaderRepositoryFor
-
addPath
-
makeBcelType
-
makeBcelTypes
-
makeBcelType
-
fromBcel
-
resolve
-
resolveDelegate
Description copied from class:WorldFind the ReferenceTypeDelegate behind this reference type so that it can fulfill its contract.- Specified by:
resolveDelegatein classWorld
-
buildBcelDelegate
public BcelObjectType buildBcelDelegate(ReferenceType type, JavaClass jc, boolean artificial, boolean exposedToWeaver) -
addSourceObjectType
-
addSourceObjectType
-
addSourceObjectType
-
makeFieldJoinPointSignature
-
makeJoinPointSignatureFromMethod
-
makeJoinPointSignatureForMonitorEnter
-
makeJoinPointSignatureForMonitorExit
-
makeJoinPointSignatureForArrayConstruction
public Member makeJoinPointSignatureForArrayConstruction(LazyClassGen cg, InstructionHandle handle) -
makeJoinPointSignatureForMethodInvocation
-
toString
-
getBcelObjectType
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. -
tidyUp
public void tidyUp() -
findClass
Description copied from interface:RepositoryFind the class with the name provided, if the class isn't there, return NULL.- Specified by:
findClassin interfaceRepository
-
loadClass
Description copied from interface:RepositoryFind the class with the name provided, if the class isn't there, make an attempt to load it.- Specified by:
loadClassin interfaceRepository- Throws:
ClassNotFoundException
-
storeClass
Description copied from interface:RepositoryStore the provided class under "clazz.getClassName()"- Specified by:
storeClassin interfaceRepository
-
removeClass
Description copied from interface:RepositoryRemove class from repository- Specified by:
removeClassin interfaceRepository
-
loadClass
Description copied from interface:RepositoryFind the JavaClass instance for the given run-time class object- Specified by:
loadClassin interfaceRepository- Throws:
ClassNotFoundException
-
clear
public void clear()Description copied from interface:RepositoryClear all entries from cache.- Specified by:
clearin interfaceRepository
-
validateType
The aim of this method is to make sure a particular type is 'ok'. Some operations on the delegate for a type modify it and this method is intended to undo that... see pr85132- Overrides:
validateTypein classWorld
-
weaveInterTypeDeclarations
-
getWeavingSupport
- Specified by:
getWeavingSupportin classWorld
-
reportCheckerMatch
- Overrides:
reportCheckerMatchin classWorld
-
getModelAsAsmManager
-
setXmlFiles
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.- Parameters:
xmlFiles- list of File objects representing any aop.xml files passed in to configure the build process
-
addScopedAspect
Add a scoped aspects where the scoping was defined in an aop.xml file and this world is being used in a LTW configuration -
setXmlConfigured
public void setXmlConfigured(boolean b) -
isXmlConfigured
public boolean isXmlConfigured()- Overrides:
isXmlConfiguredin classWorld- Returns:
- true if this world has the activation and scope of application of the aspects controlled via aop.xml files
-
getXmlConfiguration
public org.aspectj.weaver.bcel.BcelWorld.WeavingXmlConfig getXmlConfiguration() -
isAspectIncluded
- Overrides:
isAspectIncludedin classWorld
-
getAspectScope
- Overrides:
getAspectScopein classWorld
-
hasUnsatisfiedDependency
Description copied from class:WorldDetermine if the named aspect requires a particular type around in order to be useful. The type is named in the aop.xml file against the aspect.- Overrides:
hasUnsatisfiedDependencyin classWorld- Returns:
- true if there is a type missing that this aspect really needed around
-
addAspectRequires
-
getTypeMap
- Overrides:
getTypeMapin classWorld
-
isLoadtimeWeaving
public boolean isLoadtimeWeaving()- Specified by:
isLoadtimeWeavingin classWorld
-
addTypeDelegateResolver
-
classWriteEvent
public void classWriteEvent(char[][] compoundName)- Overrides:
classWriteEventin classWorld
-
demote
Force demote a type.
-