harpoon.Analysis
Class AbstractClassFixupRelinker

java.lang.Object
  extended by harpoon.ClassFile.Linker
      extended by harpoon.ClassFile.Relinker
          extended by harpoon.Analysis.AbstractClassFixupRelinker
All Implemented Interfaces:
Serializable, ReferenceUnique

public class AbstractClassFixupRelinker
extends Relinker

AbstractClassFixupRelinker is an extension of Relinker which fixes up abstract classes so that they implement all the methods of their interfaces (even if this implementation is via an abstract method declaration). The newer JDK1.4 compiler that Sun provides does not put these method declarations in by default, unlike earlier compilers, and this violates several assumptions made in FLEX. The AbstractClassFixupRelinker remedies the situation.

Version:
$Id: AbstractClassFixupRelinker.java,v 1.12 2005/09/29 04:05:18 salcianu Exp $
Author:
C. Scott Ananian <cananian@alumni.princeton.edu>
See Also:
Serialized Form

Field Summary
 
Fields inherited from class harpoon.ClassFile.Relinker
linker
 
Fields inherited from class harpoon.ClassFile.Linker
descCache
 
Constructor Summary
AbstractClassFixupRelinker(Linker linker)
          Creates a AbstractClassFixupRelinker.
 
Method Summary
 HClass forDescriptor(String descriptor)
          Returns the HClass object associated with the ComponentType descriptor given.
 HClass resolve(HClass hc)
           
 
Methods inherited from class harpoon.ClassFile.Relinker
createMutableClass, forDescriptor0, makeArray, move, relink
 
Methods inherited from class harpoon.ClassFile.Linker
forClass, forName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractClassFixupRelinker

public AbstractClassFixupRelinker(Linker linker)
Creates a AbstractClassFixupRelinker.

Method Detail

forDescriptor

public HClass forDescriptor(String descriptor)
Description copied from class: Linker
Returns the HClass object associated with the ComponentType descriptor given. Throws NoSuchClassException if the descriptor references a class that cannot be found. Throws Error if an invalid descriptor is given.

Overrides:
forDescriptor in class Linker

resolve

public HClass resolve(HClass hc)