home *** CD-ROM | disk | FTP | other *** search
/ Tutto per Internet / Internet.iso / soft95 / Java / espints / espinst.exe / classes / espresso / ClassObj.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-02-28  |  2.5 KB  |  80 lines

  1. package espresso;
  2.  
  3. class ClassObj extends Obj {
  4.    private static Scope emptyScope = new Scope((Scope)null, (Obj)null);
  5.    private static Name emptyS = Name.fromString("");
  6.    private static Name objectS = Name.fromString("java.lang.Object");
  7.    int nclosures = 0;
  8.    Name sourcefile;
  9.    Pool pool;
  10.    Scope scope;
  11.    ClassObj[] interfaces;
  12.    ClassObj superclass;
  13.    Name fullname;
  14.    Name packagename;
  15.  
  16.    void printDef() {
  17.       Pretty.align();
  18.       System.out.print(String.valueOf(String.valueOf(String.valueOf("class ").concat(String.valueOf(super.name))).concat(String.valueOf(" extends "))).concat(String.valueOf(this.superclass.name)));
  19.       if (this.interfaces.length != 0) {
  20.          System.out.print(" implements ");
  21.          System.out.print(this.interfaces[0].name);
  22.  
  23.          for(int var1 = 1; var1 < this.interfaces.length; ++var1) {
  24.             System.out.print(String.valueOf(", ").concat(String.valueOf(this.interfaces[var1].name)));
  25.          }
  26.       }
  27.  
  28.       System.out.println("{");
  29.       Pretty.indent();
  30.  
  31.       for(ScopeEntry var2 = this.scope.elements(); var2 != null; var2 = var2.sibling) {
  32.          var2.obj.printDef();
  33.       }
  34.  
  35.       Pretty.undent();
  36.       System.out.println("}");
  37.    }
  38.  
  39.    boolean isRoot() {
  40.       return this.fullname.index == objectS.index;
  41.    }
  42.  
  43.    boolean subclass(ClassObj var1) {
  44.       if (this != var1 && (this.superclass == null || !this.superclass.subclass(var1))) {
  45.          if ((var1.modifiers & 512) != 0 && this.interfaces != null) {
  46.             for(int var2 = 0; var2 < this.interfaces.length; ++var2) {
  47.                if (this.interfaces[var2].subclass(var1)) {
  48.                   return true;
  49.                }
  50.             }
  51.          }
  52.  
  53.          return false;
  54.       } else {
  55.          return true;
  56.       }
  57.    }
  58.  
  59.    public String toString() {
  60.       return String.valueOf((super.modifiers & 512) != 0 ? "interface " : "class ").concat(String.valueOf(this.fullname != null ? this.fullname : super.name));
  61.    }
  62.  
  63.    ClassObj(Name var1, Name var2) {
  64.       super.name = var2;
  65.       super.typ = new Typ(17, this);
  66.       this.fullname = var1;
  67.    }
  68.  
  69.    ClassObj(int var1, Name var2, Typ var3) {
  70.       super(var1, var2, var3);
  71.       this.scope = emptyScope;
  72.       this.interfaces = new ClassObj[0];
  73.       this.fullname = var2;
  74.       this.packagename = emptyS;
  75.    }
  76.  
  77.    ClassObj() {
  78.    }
  79. }
  80.