org.jetbrains.jet.lang.descriptors.impl
Class AbstractClassDescriptor

java.lang.Object
  extended by org.jetbrains.jet.lang.descriptors.impl.AbstractClassDescriptor
All Implemented Interfaces:
Annotated, ClassDescriptor, ClassifierDescriptor, ClassOrNamespaceDescriptor, DeclarationDescriptor, DeclarationDescriptorNonRoot, DeclarationDescriptorWithVisibility, MemberDescriptor, Named
Direct Known Subclasses:
ClassDescriptorBase, DeserializedClassDescriptor

public abstract class AbstractClassDescriptor
extends java.lang.Object
implements ClassDescriptor


Field Summary
protected  JetType defaultType
           
protected  Name name
           
 
Constructor Summary
AbstractClassDescriptor(Name name)
           
 
Method Summary
<R,D> R
accept(DeclarationDescriptorVisitor<R,D> visitor, D data)
           
 void acceptVoid(DeclarationDescriptorVisitor<java.lang.Void,java.lang.Void> visitor)
           
 JetType getDefaultType()
           
 JetScope getMemberScope(java.util.List<? extends TypeProjection> typeArguments)
           
 Name getName()
           
 DeclarationDescriptor getOriginal()
           
protected abstract  JetScope getScopeForMemberLookup()
           
 ClassDescriptor substitute(TypeSubstitutor substitutor)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jetbrains.jet.lang.descriptors.ClassDescriptor
getClassObjectDescriptor, getClassObjectType, getConstructors, getContainingDeclaration, getKind, getModality, getThisAsReceiverParameter, getUnsubstitutedInnerClassesScope, getUnsubstitutedPrimaryConstructor, getVisibility, isInner
 
Methods inherited from interface org.jetbrains.jet.lang.descriptors.ClassifierDescriptor
getTypeConstructor
 
Methods inherited from interface org.jetbrains.jet.lang.descriptors.annotations.Annotated
getAnnotations
 

Field Detail

name

protected final Name name

defaultType

protected volatile JetType defaultType
Constructor Detail

AbstractClassDescriptor

public AbstractClassDescriptor(@NotNull
                               Name name)
Method Detail

getName

@NotNull
public Name getName()
Specified by:
getName in interface Named

getOriginal

@NotNull
public DeclarationDescriptor getOriginal()
Specified by:
getOriginal in interface DeclarationDescriptor
Returns:
The descriptor that corresponds to the original declaration of this element. A descriptor can be obtained from its original by substituting type arguments (of the declaring class or of the element itself). returns this object if the current descriptor is original itself

getScopeForMemberLookup

protected abstract JetScope getScopeForMemberLookup()

getMemberScope

@NotNull
public JetScope getMemberScope(java.util.List<? extends TypeProjection> typeArguments)
Specified by:
getMemberScope in interface ClassDescriptor

substitute

@NotNull
public ClassDescriptor substitute(@NotNull
                                          TypeSubstitutor substitutor)
Specified by:
substitute in interface ClassDescriptor
Specified by:
substitute in interface DeclarationDescriptor

getDefaultType

@NotNull
public JetType getDefaultType()
Specified by:
getDefaultType in interface ClassDescriptor
Specified by:
getDefaultType in interface ClassifierDescriptor
Returns:
type A<T> for the class A<T>

acceptVoid

public void acceptVoid(DeclarationDescriptorVisitor<java.lang.Void,java.lang.Void> visitor)
Specified by:
acceptVoid in interface DeclarationDescriptor

accept

public <R,D> R accept(DeclarationDescriptorVisitor<R,D> visitor,
                      D data)
Specified by:
accept in interface DeclarationDescriptor