Known Direct Subclasses
  
      
      
  
        
              | CGLIBInstrumenter | 
              Strategy for performing build-time instrumentation of persistent classes in order to enable
 field-level interception using CGLIB.  | 
           
        
              | JavassistInstrumenter | 
              Strategy for performing build-time instrumentation of persistent classes in order to enable
 field-level interception using Javassist.  | 
           
   
       
   
 | 
Class Overview
Provides the basic templating of how instrumentation should occur.
 
Summary
| Nested Classes | 
  
    
      | 
        
         
         
        
        class | 
      AbstractInstrumenter.CustomFieldFilter | 
      Allows control over what exacctly to transform.  | 
    
    
    
| Public Methods | 
	 
    
        | 
            
            
            
            
            
            void
         | 
        
        execute(Set files)
        
         The main instrumentation entry point. 
  
   | 
Fields
Public Constructors
 
    
      
    
      
  Creates the basic instrumentation strategy.
 
  
      Parameters
      
        
          | logger
           | The bridge to the environment's logging system. | 
        
        
          | options
           | User-supplied options.
 | 
        
      
   
     
 
Public Methods
 
    
      
        public 
         
         
         
         
        void
      
      execute
      (Set files)
    
      
    
      
  The main instrumentation entry point.  Given a set of files, perform instrumentation on each discovered class
 file.
 
  
     
 
Protected Methods
 
    
      
        protected 
         
        final 
         
         
        boolean
      
      checkMagic
      (File file, long magic)
    
      
    
 
 
    
      
        protected 
         
         
        abstract 
         
        ClassDescriptor
      
      getClassDescriptor
      (byte[] byecode)
    
      
    
      
  Given the bytecode of a java class, retrieve the descriptor for that class.
 
  
      Parameters
      
        
          | byecode
           | The class bytecode. | 
        
      
   
  
  
      Throws
        
        
            | Exception
             | Indicates problems access the bytecode.
 | 
        
      
   
     
 
 
    
      
    
      
  Create class transformer for the class.
 
  
      Parameters
      
        
          | descriptor
           | The descriptor of the class to be instrumented. | 
        
        
          | classNames
           | The names of all classes to be instrumented; the "pipeline" if you will. | 
        
      
   
  
      Returns
      - The transformer for the given class; may return null to indicate that transformation should
 be skipped (ala already instrumented).
 
   
     
 
 
    
      
        protected 
         
        final 
         
         
        boolean
      
      isClassFile
      (File file)
    
      
    
      
  Does this file represent a compiled class?
 
  
  
      Returns
      - True if the file is a class; false otherwise.
 
   
  
     
 
 
    
      
        protected 
         
        final 
         
         
        boolean
      
      isJarFile
      (File file)
    
      
    
      
  Does this file represent a zip file of some format?
 
  
  
      Returns
      - True if the file is n archive; false otherwise.
 
   
  
     
 
 
    
      
        protected 
         
         
         
         
        void
      
      processClassFile
      (File file, Set classNames)
    
      
    
      
  
  
      Parameters
      
        
          | file
           | The class file to process. | 
        
        
          | classNames
           | The 'pipeline' of classes to be processed.  Only actually populated when the user
 specifies to perform Options#performExtendedInstrumentation() extended instrumentation. | 
        
      
   
  
      Throws
        
        
            | Exception
             | Indicates an issue either access files or applying the transformations.
 | 
        
      
   
     
 
 
    
      
        protected 
         
         
         
         
        void
      
      processFile
      (File file, Set classNames)
    
      
    
      
  Actually process the file by applying instrumentation transformations to any classes it contains.
 
 Again, just like with #collectClassNames this method can handle both class and archive files.
 
  
      Parameters
      
        
          | file
           | The file to process. | 
        
        
          | classNames
           | The 'pipeline' of classes to be processed.  Only actually populated when the user
 specifies to perform Options#performExtendedInstrumentation() extended instrumentation. | 
        
      
   
  
      Throws
        
        
            | Exception
             | Indicates an issue either access files or applying the transformations.
 | 
        
      
   
     
 
 
    
      
        protected 
         
         
         
         
        void
      
      processJarFile
      (File file, Set classNames)
    
      
    
      
  
  
      Parameters
      
        
          | file
           | The archive file to process. | 
        
        
          | classNames
           | The 'pipeline' of classes to be processed.  Only actually populated when the user
 specifies to perform Options#performExtendedInstrumentation() extended instrumentation. | 
        
      
   
  
      Throws
        
        
            | Exception
             | Indicates an issue either access files or applying the transformations.
 |