Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.aspectj.weaver.loadtime
Class Aj

    java.lang.Object
      org.aspectj.weaver.loadtime.Aj

All Implemented Interfaces:
  ClassPreProcessor

    public class Aj

extends java.lang.Object
implements ClassPreProcessor

Adapter between the generic class pre processor interface and the AspectJ weaver Load time weaving consistency relies on Bcel.setRepository

Author:
  Alexandre Vasseur

Constructor Summary
`Aj()`
`Aj(IWeavingContext context)`

Method Summary
`static void` | `checkQ()` Process the reference queue that contains stale AdaptorKeys - the keys are put on the queue when their classloader referent is garbage collected and so the associated adaptor (weaver) should be removed from the map
`void` | `flushGeneratedClasses(java.lang.ClassLoader loader)`
`boolean` | `generatedClassesExist(java.lang.ClassLoader loader)` Check to see if any classes have been generated for a particular classes loader.
`static int` | `getActiveAdaptorCount()`
`java.lang.String` | `getNamespace(java.lang.ClassLoader loader)` Returns a namespace based on the contest of the aspects available
`void` | `initialize()` Initialization
`byte[]` | `preProcess(java.lang.String className, byte[] bytes, java.lang.ClassLoader loader)` Weave
`static int` | `removeStaleAdaptors(boolean displayProgress)` The reference queue is only processed when a request is made for a weaver adaptor.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Aj

    public Aj()

### Aj

    public Aj(IWeavingContext context)

Method Detail

### initialize

    public void initialize()

  Initialization

  Specified by:
    `initialize` in interface `ClassPreProcessor`

### preProcess

    public byte[] preProcess(java.lang.String className,
                             byte[] bytes,
                             java.lang.ClassLoader loader)

  Weave

  Specified by:
    `preProcess` in interface `ClassPreProcessor`
  Parameters:
    `className` -
    `bytes` -
    `loader` -
  Returns:
    weaved bytes

### removeStaleAdaptors

    public static int removeStaleAdaptors(boolean displayProgress)

  The reference queue is only processed when a request is made for a weaver adaptor. This means there can be one or two stale weavers left around. If the user knows they have finished all their weaving, they might wish to call removeStaleAdaptors which will process anything left on the reference queue containing adaptorKeys for garbage collected classloaders.

  Parameters:
    `displayProgress` - produce System.err info on the tidying up process
  Returns:
    number of stale weavers removed

### getActiveAdaptorCount

    public static int getActiveAdaptorCount()

  Returns:
    the number of entries still in the weavingAdaptors map

### checkQ

    public static void checkQ()

  Process the reference queue that contains stale AdaptorKeys - the keys are put on the queue when their classloader referent is garbage collected and so the associated adaptor (weaver) should be removed from the map

### getNamespace

    public java.lang.String getNamespace(java.lang.ClassLoader loader)

  Returns a namespace based on the contest of the aspects available

### generatedClassesExist

    public boolean generatedClassesExist(java.lang.ClassLoader loader)

  Check to see if any classes have been generated for a particular classes loader. Calls ClassLoaderWeavingAdaptor.generatedClassesExist()

  Parameters:
    `loader` - the class cloder
  Returns:
    true if classes have been generated.

### flushGeneratedClasses

    public void flushGeneratedClasses(java.lang.ClassLoader loader)

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD