home *** CD-ROM | disk | FTP | other *** search
- package espresso;
-
- class ClassObj extends Obj {
- private static Scope emptyScope = new Scope((Scope)null, (Obj)null);
- private static Name emptyS = Name.fromString("");
- private static Name objectS = Name.fromString("java.lang.Object");
- int nclosures = 0;
- Name sourcefile;
- Pool pool;
- Scope scope;
- ClassObj[] interfaces;
- ClassObj superclass;
- Name fullname;
- Name packagename;
-
- void printDef() {
- Pretty.align();
- 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)));
- if (this.interfaces.length != 0) {
- System.out.print(" implements ");
- System.out.print(this.interfaces[0].name);
-
- for(int var1 = 1; var1 < this.interfaces.length; ++var1) {
- System.out.print(String.valueOf(", ").concat(String.valueOf(this.interfaces[var1].name)));
- }
- }
-
- System.out.println("{");
- Pretty.indent();
-
- for(ScopeEntry var2 = this.scope.elements(); var2 != null; var2 = var2.sibling) {
- var2.obj.printDef();
- }
-
- Pretty.undent();
- System.out.println("}");
- }
-
- boolean isRoot() {
- return this.fullname.index == objectS.index;
- }
-
- boolean subclass(ClassObj var1) {
- if (this != var1 && (this.superclass == null || !this.superclass.subclass(var1))) {
- if ((var1.modifiers & 512) != 0 && this.interfaces != null) {
- for(int var2 = 0; var2 < this.interfaces.length; ++var2) {
- if (this.interfaces[var2].subclass(var1)) {
- return true;
- }
- }
- }
-
- return false;
- } else {
- return true;
- }
- }
-
- public String toString() {
- return String.valueOf((super.modifiers & 512) != 0 ? "interface " : "class ").concat(String.valueOf(this.fullname != null ? this.fullname : super.name));
- }
-
- ClassObj(Name var1, Name var2) {
- super.name = var2;
- super.typ = new Typ(17, this);
- this.fullname = var1;
- }
-
- ClassObj(int var1, Name var2, Typ var3) {
- super(var1, var2, var3);
- this.scope = emptyScope;
- this.interfaces = new ClassObj[0];
- this.fullname = var2;
- this.packagename = emptyS;
- }
-
- ClassObj() {
- }
- }
-