⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interfacedecl.java

📁 JDK1.4编译器前端
💻 JAVA
📖 第 1 页 / 共 3 页
字号:

package AST;
import java.util.HashSet;import java.util.LinkedHashSet;import java.io.FileNotFoundException;import java.io.File;import java.util.*;import beaver.*;import java.util.ArrayList;import java.util.zip.*;import java.io.*;public class InterfaceDecl extends ReferenceType implements Cloneable {
    public void flushCache() {        super.flushCache();        lookupSuperConstructor_visited = -1;        methodsSignatureMap_visited = -1;        methodsSignatureMap_computed = false;        methodsSignatureMap_value = null;        ancestorMethods_String_visited = new java.util.HashMap(4);        ancestorMethods_String_values = null;        memberTypes_String_visited = new java.util.HashMap(4);        memberTypes_String_values = null;        memberFields_String_visited = new java.util.HashMap(4);        memberFields_String_values = null;        isAbstract_visited = -1;        isStatic_visited = -1;        isStatic_computed = false;        castingConversionTo_TypeDecl_visited = new java.util.HashMap(4);        castingConversionTo_TypeDecl_values = null;        isInterfaceDecl_visited = -1;        instanceOf_TypeDecl_visited = new java.util.HashMap(4);        instanceOf_TypeDecl_values = null;        isSupertypeOfClassDecl_ClassDecl_visited = new java.util.HashMap(4);        isSupertypeOfInterfaceDecl_InterfaceDecl_visited = new java.util.HashMap(4);        isSupertypeOfArrayDecl_ArrayDecl_visited = new java.util.HashMap(4);        isCircular_visited = 0;        isCircular_computed = false;        isCircular_initialized = false;        unknownMethod_visited = -1;    }     @SuppressWarnings({"unchecked", "cast"})  public InterfaceDecl clone() throws CloneNotSupportedException {        InterfaceDecl node = (InterfaceDecl)super.clone();        node.lookupSuperConstructor_visited = -1;        node.methodsSignatureMap_visited = -1;        node.methodsSignatureMap_computed = false;        node.methodsSignatureMap_value = null;        node.ancestorMethods_String_visited = new java.util.HashMap(4);        node.ancestorMethods_String_values = null;        node.memberTypes_String_visited = new java.util.HashMap(4);        node.memberTypes_String_values = null;        node.memberFields_String_visited = new java.util.HashMap(4);        node.memberFields_String_values = null;        node.isAbstract_visited = -1;        node.isStatic_visited = -1;        node.isStatic_computed = false;        node.castingConversionTo_TypeDecl_visited = new java.util.HashMap(4);        node.castingConversionTo_TypeDecl_values = null;        node.isInterfaceDecl_visited = -1;        node.instanceOf_TypeDecl_visited = new java.util.HashMap(4);        node.instanceOf_TypeDecl_values = null;        node.isSupertypeOfClassDecl_ClassDecl_visited = new java.util.HashMap(4);        node.isSupertypeOfInterfaceDecl_InterfaceDecl_visited = new java.util.HashMap(4);        node.isSupertypeOfArrayDecl_ArrayDecl_visited = new java.util.HashMap(4);        node.isCircular_visited = 0;        node.isCircular_computed = false;        node.isCircular_initialized = false;        node.unknownMethod_visited = -1;        node.in$Circle(false);        node.is$Final(false);    return node;    }     @SuppressWarnings({"unchecked", "cast"})  public InterfaceDecl copy() {      try {          InterfaceDecl node = (InterfaceDecl)clone();          if(children != null) node.children = (ASTNode[])children.clone();          return node;      } catch (CloneNotSupportedException e) {      }      System.err.println("Error: Could not clone node of type " + getClass().getName() + "!");      return null;    }     @SuppressWarnings({"unchecked", "cast"})  public InterfaceDecl fullCopy() {        InterfaceDecl res = (InterfaceDecl)copy();        for(int i = 0; i < getNumChildNoTransform(); i++) {          ASTNode node = getChildNoTransform(i);          if(node != null) node = node.fullCopy();          res.setChild(node, i);        }        return res;    }    // Declared in AccessControl.jrag at line 167  public void accessControl() {    super.accessControl();        if(!isCircular()) {      // 9.1.2      HashSet set = new HashSet();      for(int i = 0; i < getNumSuperInterfaceId(); i++) {        TypeDecl decl = getSuperInterfaceId(i).type();        if(!decl.isInterfaceDecl() && !decl.isUnknown())          error("interface " + fullName() + " tries to extend non interface type " + decl.fullName());        if(!decl.isCircular() && !decl.accessibleFrom(this))          error("interface " + fullName() + " can not extend non accessible type " + decl.fullName());        if(set.contains(decl))          error("extended interface " + decl.fullName() + " mentionened multiple times in extends clause");        set.add(decl);      }    }  }    // Declared in Modifiers.jrag at line 104    public void checkModifiers() {    super.checkModifiers();  }    // Declared in PrettyPrint.jadd at line 99    public void toString(StringBuffer s) {    getModifiers().toString(s);    s.append("interface " + name());    if(getNumSuperInterfaceId() > 0) {      s.append(" extends ");      getSuperInterfaceId(0).toString(s);      for(int i = 1; i < getNumSuperInterfaceId(); i++) {        s.append(", ");        getSuperInterfaceId(i).toString(s);      }    }    s.append(" {\n");    indent++;    for(int i=0; i < getNumBodyDecl(); i++) {      getBodyDecl(i).toString(s);    }        indent--;    s.append(indent() + "}\n");  }    // Declared in TypeAnalysis.jrag at line 642    public Iterator superinterfacesIterator() {    return new Iterator() {      public boolean hasNext() {        computeNextCurrent();        return current != null;      }      public Object next() {        return current;      }      public void remove() {        throw new UnsupportedOperationException();      }      private int index = 0;      private TypeDecl current = null;      private void computeNextCurrent() {        current = null;        if(isCircular()) return;        while(index < getNumSuperInterfaceId()) {          TypeDecl typeDecl = getSuperInterfaceId(index++).type();          if(!typeDecl.isCircular() && typeDecl.isInterfaceDecl()) {            current = typeDecl;            return;          }        }      }    };  }    // Declared in TypeHierarchyCheck.jrag at line 312  public void nameCheck() {    super.nameCheck();    if(isCircular())      error("circular inheritance dependency in " + typeName());     else {      for(int i = 0; i < getNumSuperInterfaceId(); i++) {        TypeDecl typeDecl = getSuperInterfaceId(i).type();        if(typeDecl.isCircular())          error("circular inheritance dependency in " + typeName());       }    }    for(Iterator iter = methodsSignatureMap().values().iterator(); iter.hasNext(); ) {      SimpleSet set = (SimpleSet)iter.next();      if(set.size() > 1) {        Iterator i2 = set.iterator();        MethodDecl m = (MethodDecl)i2.next();        while(i2.hasNext()) {          MethodDecl n = (MethodDecl)i2.next();          if(!n.mayOverrideReturn(m) && !m.mayOverrideReturn(n))            error("multiply inherited methods with the same signature must have the same return type");        }      }    }  }    // Declared in java.ast at line 3    // Declared in java.ast line 64
    public InterfaceDecl() {        super();
        setChild(new List(), 1);
        setChild(new List(), 2);

    }    // Declared in java.ast at line 12
    // Declared in java.ast line 64    public InterfaceDecl(Modifiers p0, String p1, List<Access> p2, List<BodyDecl> p3) {        setChild(p0, 0);        setID(p1);        setChild(p2, 1);        setChild(p3, 2);    }    // Declared in java.ast at line 20    // Declared in java.ast line 64    public InterfaceDecl(Modifiers p0, beaver.Symbol p1, List<Access> p2, List<BodyDecl> p3) {        setChild(p0, 0);        setID(p1);        setChild(p2, 1);        setChild(p3, 2);    }    // Declared in java.ast at line 27  protected int numChildren() {
    return 3;
  }    // Declared in java.ast at line 30
  public boolean mayHaveRewrite() { return false; }    // Declared in java.ast at line 2    // Declared in java.ast line 64    public void setModifiers(Modifiers node) {        setChild(node, 0);    }    // Declared in java.ast at line 5    public Modifiers getModifiers() {        return (Modifiers)getChild(0);    }    // Declared in java.ast at line 9    public Modifiers getModifiersNoTransform() {        return (Modifiers)getChildNoTransform(0);    }    // Declared in java.ast at line 2    // Declared in java.ast line 64    public void setSuperInterfaceIdList(List<Access> list) {        setChild(list, 1);    }    // Declared in java.ast at line 6    private int getNumSuperInterfaceId = 0;    // Declared in java.ast at line 7    public int getNumSuperInterfaceId() {        return getSuperInterfaceIdList().getNumChild();    }    // Declared in java.ast at line 11

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -