ESC/Java2
© 2003,2004,2005 David Cok and Joseph Kiniry
© 2005 UCD Dublin
© 2003,2004 Radboud University Nijmegen
© 1999,2000 Compaq Computer Corporation
© 1997,1998,1999 Digital Equipment Corporation
All Rights Reserved

escjava.tc
Class PrepTypeDeclaration

java.lang.Object
  extended byjavafe.tc.PrepTypeDeclaration
      extended byescjava.tc.PrepTypeDeclaration

public class PrepTypeDeclaration
extends PrepTypeDeclaration


Field Summary
protected  StackVector jmlDupFieldsSeq
           
protected  StackVector jmlFieldsSeq
           
protected  StackVector jmlHiddenFieldsSeq
           
private  int numJmlFields
           
private  java.util.LinkedList numJmlList
           
 
Fields inherited from class javafe.tc.PrepTypeDeclaration
_rootCache, constructorSeq, fieldSeq, hiddenfieldSeq, inst, methodSeq
 
Constructor Summary
PrepTypeDeclaration()
           
 
Method Summary
protected  void addInheritedMembers(TypeSig type, TypeSig superType)
          Find all members of a supertype inherited by a type.
protected  void checkSuperInterfaces(TypeSig sig, TypeNameVec superInterfaces)
          Check superinterfaces and add their members to fieldSeq and methodSeq.
protected  boolean declaresField(TypeSig sig, Identifier id)
           
private  boolean declaresField(TypeSig sig, Identifier id, int n)
           
 TypeSig getRootInterface()
          This routine constructs and returns the interface that all interfaces are de-facto subinterfaces of.
 void prepEnd(TypeSig sig, TypeDecl decl)
           
 void prepStart(TypeSig sig, TypeDecl decl)
           
 void print(java.lang.String s, FieldDeclVec fdv)
           
protected  void startSupers()
           
protected  boolean superMemberAccessible(TypeSig type, TypeSig superType, int modifiers, ModifierPragmaVec pmodifiers)
          Check if a member is accessible from a direct subclass.
 void visitMethodDecl(MethodDecl x, TypeSig currentSig, boolean abstractMethodsOK, boolean inFinalClass, boolean inInterface)
          Visit a MethodDecl, check it and add it to methodSeq.
protected  void visitTypeDeclElem(TypeDeclElem e, TypeSig currentSig, boolean abstractMethodsOK, boolean inFinalClass, boolean inInterface)
          Visit a TypeDeclElem, check it and add it to fieldSeq or methodSeq, if appropriate
 
Methods inherited from class javafe.tc.PrepTypeDeclaration
checkModifiers, checkSuperTypeAccessible, checkTypeModifiers, declaresFieldJava, getEnvForCurrentSig, getOverrides, getOverrides, prepDo, prepTypeSignature, processTypeNameAnnotations, visitClassDecl, visitConstructorDecl, visitFieldDecl, visitInterfaceDecl
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

jmlFieldsSeq

protected StackVector jmlFieldsSeq

jmlHiddenFieldsSeq

protected StackVector jmlHiddenFieldsSeq

jmlDupFieldsSeq

protected StackVector jmlDupFieldsSeq

numJmlFields

private int numJmlFields

numJmlList

private java.util.LinkedList numJmlList
Constructor Detail

PrepTypeDeclaration

public PrepTypeDeclaration()
Method Detail

prepStart

public void prepStart(TypeSig sig,
                      TypeDecl decl)
Overrides:
prepStart in class PrepTypeDeclaration

prepEnd

public void prepEnd(TypeSig sig,
                    TypeDecl decl)
Overrides:
prepEnd in class PrepTypeDeclaration

print

public void print(java.lang.String s,
                  FieldDeclVec fdv)

startSupers

protected void startSupers()
Overrides:
startSupers in class PrepTypeDeclaration

checkSuperInterfaces

protected void checkSuperInterfaces(TypeSig sig,
                                    TypeNameVec superInterfaces)
Description copied from class: PrepTypeDeclaration
Check superinterfaces and add their members to fieldSeq and methodSeq.

Overrides:
checkSuperInterfaces in class PrepTypeDeclaration

visitTypeDeclElem

protected void visitTypeDeclElem(TypeDeclElem e,
                                 TypeSig currentSig,
                                 boolean abstractMethodsOK,
                                 boolean inFinalClass,
                                 boolean inInterface)
Description copied from class: PrepTypeDeclaration
Visit a TypeDeclElem, check it and add it to fieldSeq or methodSeq, if appropriate

Overrides:
visitTypeDeclElem in class PrepTypeDeclaration

visitMethodDecl

public void visitMethodDecl(MethodDecl x,
                            TypeSig currentSig,
                            boolean abstractMethodsOK,
                            boolean inFinalClass,
                            boolean inInterface)
Description copied from class: PrepTypeDeclaration
Visit a MethodDecl, check it and add it to methodSeq.

Overrides:
visitMethodDecl in class PrepTypeDeclaration

addInheritedMembers

protected void addInheritedMembers(TypeSig type,
                                   TypeSig superType)
Description copied from class: PrepTypeDeclaration
Find all members of a supertype inherited by a type. Adds these members to fieldSeq and methodSeq. The order in which superTypes are added is crucial. See the comment below marked by a <<>>

Overrides:
addInheritedMembers in class PrepTypeDeclaration

superMemberAccessible

protected boolean superMemberAccessible(TypeSig type,
                                        TypeSig superType,
                                        int modifiers,
                                        ModifierPragmaVec pmodifiers)
Description copied from class: PrepTypeDeclaration
Check if a member is accessible from a direct subclass.

Overrides:
superMemberAccessible in class PrepTypeDeclaration

declaresField

protected boolean declaresField(TypeSig sig,
                                Identifier id)

declaresField

private boolean declaresField(TypeSig sig,
                              Identifier id,
                              int n)

getRootInterface

public TypeSig getRootInterface()
Description copied from class: PrepTypeDeclaration
This routine constructs and returns the interface that all interfaces are de-facto subinterfaces of.

This interface is not an actual Java interface, but rather a made up one. Its locations will be valid, but misleading.

The root interface is composed of all the public methods of java.lang.Object turned into abstract methods.

Overrides:
getRootInterface in class PrepTypeDeclaration

ESC/Java2
© 2003,2004,2005 David Cok and Joseph Kiniry
© 2005 UCD Dublin
© 2003,2004 Radboud University Nijmegen
© 1999,2000 Compaq Computer Corporation
© 1997,1998,1999 Digital Equipment Corporation
All Rights Reserved

The ESC/Java2 Project Homepage