polyglot.types
Class DeserializedClassInitializer

java.lang.Object
  extended by polyglot.types.DeserializedClassInitializer
All Implemented Interfaces:
LazyClassInitializer, LazyInitializer

public class DeserializedClassInitializer
extends java.lang.Object
implements LazyClassInitializer

A LazyClassInitializer is responsible for initializing members of a class after it has been created. Members are initialized lazily to correctly handle cyclic dependencies between classes.


Field Summary
protected  ParsedClassType ct
           
protected  boolean init
           
protected  TypeSystem ts
           
 
Constructor Summary
DeserializedClassInitializer(TypeSystem ts)
           
 
Method Summary
 void canonicalConstructors()
          Initialize ct's constructors.
 void canonicalFields()
          Initialize ct's fields.
 void canonicalMethods()
          Initialize ct's methods.
 boolean fromClassFile()
          Return true if the class is from a class file.
 void initConstructors()
          Initialize ct's constructors.
 void initFields()
          Initialize ct's fields.
 void initInterfaces()
          Initialize ct's interfaces.
 void initMemberClasses()
          Initialize ct's member classes.
 void initMethods()
          Initialize ct's methods.
 void initSuperclass()
          Initialize ct's superclass.
 void initTypeObject()
          Initialize the type object.
 boolean isTypeObjectInitialized()
          Return true if initTypeObject has been called.
 void setClass(ParsedClassType ct)
          Set the class type we're initializing.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ts

protected TypeSystem ts

ct

protected ParsedClassType ct

init

protected boolean init
Constructor Detail

DeserializedClassInitializer

public DeserializedClassInitializer(TypeSystem ts)
Method Detail

setClass

public void setClass(ParsedClassType ct)
Description copied from interface: LazyClassInitializer
Set the class type we're initializing.

Specified by:
setClass in interface LazyClassInitializer

fromClassFile

public boolean fromClassFile()
Description copied from interface: LazyClassInitializer
Return true if the class is from a class file.

Specified by:
fromClassFile in interface LazyClassInitializer

initTypeObject

public void initTypeObject()
Description copied from interface: LazyInitializer
Initialize the type object. This must be called once when the object is added to the root-level system resolver, but never before then.

Specified by:
initTypeObject in interface LazyInitializer

isTypeObjectInitialized

public boolean isTypeObjectInitialized()
Description copied from interface: LazyInitializer
Return true if initTypeObject has been called.

Specified by:
isTypeObjectInitialized in interface LazyInitializer

initSuperclass

public void initSuperclass()
Description copied from interface: LazyClassInitializer
Initialize ct's superclass. This method ensures the superclass of the class is initailized to a canonical type, or throws a MissingDependencyException.

Specified by:
initSuperclass in interface LazyClassInitializer

initInterfaces

public void initInterfaces()
Description copied from interface: LazyClassInitializer
Initialize ct's interfaces. This method ensures the interfaces of the class are initailized to canonical types, or throws a MissingDependencyException.

Specified by:
initInterfaces in interface LazyClassInitializer

initMemberClasses

public void initMemberClasses()
Description copied from interface: LazyClassInitializer
Initialize ct's member classes. This method ensures the member classes of the class are initailized to canonical types, or throws a MissingDependencyException.

Specified by:
initMemberClasses in interface LazyClassInitializer

initConstructors

public void initConstructors()
Description copied from interface: LazyClassInitializer
Initialize ct's constructors. This method ensures the list of fields is populated with (possibly non-canonical) ConstructorInstances, or throws a MissingDependencyException.

Specified by:
initConstructors in interface LazyClassInitializer

initMethods

public void initMethods()
Description copied from interface: LazyClassInitializer
Initialize ct's methods. This method ensures the list of fields is populated with (possibly non-canonical) MethodInstances, or throws a MissingDependencyException.

Specified by:
initMethods in interface LazyClassInitializer

initFields

public void initFields()
Description copied from interface: LazyClassInitializer
Initialize ct's fields. This method ensures the list of fields is populated with (possibly non-canonical) FieldInstances, or throws a MissingDependencyException.

Specified by:
initFields in interface LazyClassInitializer

canonicalConstructors

public void canonicalConstructors()
Description copied from interface: LazyClassInitializer
Initialize ct's constructors. This method ensures the list of constructors is populated with canonical ConstructorInstances, or throws a MissingDependencyException.

Specified by:
canonicalConstructors in interface LazyClassInitializer

canonicalMethods

public void canonicalMethods()
Description copied from interface: LazyClassInitializer
Initialize ct's methods. This method ensures the list of methods is populated with canonical MethodInstances, or throws a MissingDependencyException.

Specified by:
canonicalMethods in interface LazyClassInitializer

canonicalFields

public void canonicalFields()
Description copied from interface: LazyClassInitializer
Initialize ct's fields. This method ensures the list of fields is populated with canonical FieldInstances, or throws a MissingDependencyException.

Specified by:
canonicalFields in interface LazyClassInitializer