Class PClass_c

  extended by polyglot.ext.jl.types.TypeObject_c
      extended by polyglot.ext.param.types.PClass_c
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, PClass, Importable, Named, TypeObject, Copy
Direct Known Subclasses:

public abstract class PClass_c
extends TypeObject_c
implements PClass

A base implementation for parametric classes. This class is a wrapper around a ClassType that associates formal parameters with the class. formals can be any type object.

See Also:
Serialized Form

Field Summary
Fields inherited from class polyglot.ext.jl.types.TypeObject_c
position, ts
Constructor Summary
protected PClass_c()
  PClass_c(TypeSystem ts)
  PClass_c(TypeSystem ts, Position pos)
Method Summary
 java.lang.String fullName()
          Full dotted-name of the type object.
 ClassType instantiate(Position pos, java.util.List actuals)
          Instantiate this.
 boolean isCanonical()
          Return true if the type object contains no unknown/ambiguous types.
 java.lang.String name()
          Simple name of the type object.
 Package package_()
Methods inherited from class polyglot.ext.jl.types.TypeObject_c
copy, equals, equalsImpl, hashCode, position, typeSystem
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface polyglot.ext.param.types.PClass
clazz, formals
Methods inherited from interface polyglot.types.TypeObject
equalsImpl, position, typeSystem
Methods inherited from interface polyglot.util.Copy

Constructor Detail


protected PClass_c()


public PClass_c(TypeSystem ts)


public PClass_c(TypeSystem ts,
                Position pos)
Method Detail


public ClassType instantiate(Position pos,
                             java.util.List actuals)
                      throws SemanticException
Description copied from interface: PClass
Instantiate this.

Specified by:
instantiate in interface PClass
pos - The position of the instantiation
actuals - The actual type parameters for the instantiation


public boolean isCanonical()
Description copied from interface: TypeObject
Return true if the type object contains no unknown/ambiguous types.

Specified by:
isCanonical in interface TypeObject


public java.lang.String name()
Description copied from interface: Named
Simple name of the type object. Anonymous classes do not have names.

Specified by:
name in interface Named


public java.lang.String fullName()
Description copied from interface: Named
Full dotted-name of the type object. For a package, top level class, top level interface, or primitive type, this is the fully qualified name. For a member class or interface that is directly enclosed in a class or interface with a fully qualified name, then this is the fully qualified name of the member class or interface. For local and anonymous classes, this method returns a string that is not the fully qualified name (as these classes do not have fully qualified names), but that may be suitable for debugging or error messages.

Specified by:
fullName in interface Named


public Package package_()
Specified by:
package_ in interface Importable