📄 modifiers.jrag
字号:
syn boolean TypeDecl.isProtected() = getModifiers().isProtected(); syn boolean TypeDecl.isAbstract() = getModifiers().isAbstract(); eq InterfaceDecl.isAbstract() = true; syn lazy boolean TypeDecl.isStatic() = getModifiers().isStatic() || isMemberType() && enclosingType().isInterfaceDecl(); // 8.5.2 eq InterfaceDecl.isStatic() = getModifiers().isStatic() || isMemberType(); syn boolean TypeDecl.isFinal() = getModifiers().isFinal(); syn boolean TypeDecl.isStrictfp() = getModifiers().isStrictfp(); syn boolean TypeDecl.isSynthetic() = getModifiers().isSynthetic(); syn boolean MemberDecl.isSynthetic() = false; eq MethodDecl.isSynthetic() = getModifiers().isSynthetic(); eq FieldDeclaration.isSynthetic() = getModifiers().isSynthetic(); syn boolean ConstructorDecl.isSynthetic() = getModifiers().isSynthetic(); syn boolean VariableDeclaration.isSynthetic() = getModifiers().isSynthetic(); syn boolean ParameterDeclaration.isSynthetic() = getModifiers().isSynthetic(); syn boolean MemberDecl.isStatic(); syn boolean MethodDecl.isPublic() = getModifiers().isPublic() || hostType().isInterfaceDecl(); syn boolean MethodDecl.isPrivate() = getModifiers().isPrivate(); syn boolean MethodDecl.isProtected() = getModifiers().isProtected(); syn boolean MethodDecl.isAbstract() = getModifiers().isAbstract() || hostType().isInterfaceDecl(); syn boolean MethodDecl.isStatic() = getModifiers().isStatic(); // 8.4.3.3 syn boolean MethodDecl.isFinal() = getModifiers().isFinal() || hostType().isFinal() || isPrivate(); syn boolean MethodDecl.isSynchronized() = getModifiers().isSynchronized(); syn boolean MethodDecl.isNative() = getModifiers().isNative(); syn boolean MethodDecl.isStrictfp() = getModifiers().isStrictfp(); syn boolean ConstructorDecl.isPublic() = getModifiers().isPublic(); syn boolean ConstructorDecl.isPrivate() = getModifiers().isPrivate(); syn boolean ConstructorDecl.isProtected() = getModifiers().isProtected(); syn boolean FieldDeclaration.isPublic() = getModifiers().isPublic() || hostType().isInterfaceDecl(); syn boolean FieldDeclaration.isPrivate() = getModifiers().isPrivate(); syn boolean FieldDeclaration.isProtected() = getModifiers().isProtected(); syn boolean FieldDeclaration.isStatic() = getModifiers().isStatic() || hostType().isInterfaceDecl(); syn boolean FieldDecl.isStatic() = getModifiers().isStatic(); syn boolean FieldDeclaration.isFinal() = getModifiers().isFinal() || hostType().isInterfaceDecl(); syn boolean FieldDeclaration.isTransient() = getModifiers().isTransient(); syn boolean FieldDeclaration.isVolatile() = getModifiers().isVolatile(); eq MemberTypeDecl.isStatic() = typeDecl().isStatic(); // 8.1.1 & 9.1.1 eq TypeDecl.getModifiers().mayBePublic() = true; eq TypeDecl.getModifiers().mayBeProtected() = true; eq TypeDecl.getModifiers().mayBePrivate() = true; eq TypeDecl.getModifiers().mayBeAbstract() = true; eq TypeDecl.getModifiers().mayBeStatic() = true; eq TypeDecl.getModifiers().mayBeStrictfp() = true; // 8.1.1 eq ClassDecl.getModifiers().mayBeFinal() = true; // 8.3.1 eq FieldDeclaration.getModifiers().mayBePublic() = true; eq FieldDeclaration.getModifiers().mayBeProtected() = true; eq FieldDeclaration.getModifiers().mayBePrivate() = true; eq FieldDeclaration.getModifiers().mayBeStatic() = true; eq FieldDeclaration.getModifiers().mayBeFinal() = true; eq FieldDeclaration.getModifiers().mayBeTransient() = true; eq FieldDeclaration.getModifiers().mayBeVolatile() = true; // 8.4.3 eq MethodDecl.getModifiers().mayBePublic() = true; eq MethodDecl.getModifiers().mayBeProtected() = true; eq MethodDecl.getModifiers().mayBePrivate() = true; eq MethodDecl.getModifiers().mayBeAbstract() = true; eq MethodDecl.getModifiers().mayBeStatic() = true; eq MethodDecl.getModifiers().mayBeFinal() = true; eq MethodDecl.getModifiers().mayBeSynchronized() = true; eq MethodDecl.getModifiers().mayBeNative() = true; eq MethodDecl.getModifiers().mayBeStrictfp() = true; // 8.8.3 eq ConstructorDecl.getModifiers().mayBePublic() = true; eq ConstructorDecl.getModifiers().mayBeProtected() = true; eq ConstructorDecl.getModifiers().mayBePrivate() = true; eq VariableDeclaration.getModifiers().mayBeFinal() = true; eq ParameterDeclaration.getModifiers().mayBeFinal() = true; eq Program.getChild().mayBePublic() = false; eq Program.getChild().mayBeProtected() = false; eq Program.getChild().mayBePrivate() = false; eq Program.getChild().mayBeStatic() = false; eq Program.getChild().mayBeFinal() = false; eq Program.getChild().mayBeAbstract() = false; eq Program.getChild().mayBeVolatile() = false; eq Program.getChild().mayBeTransient() = false; eq Program.getChild().mayBeStrictfp() = false; eq Program.getChild().mayBeSynchronized() = false; eq Program.getChild().mayBeNative() = false; eq TypeDecl.getBodyDecl().mayBePublic() = false; eq TypeDecl.getBodyDecl().mayBeProtected() = false; eq TypeDecl.getBodyDecl().mayBePrivate() = false; eq TypeDecl.getBodyDecl().mayBeStatic() = false; eq TypeDecl.getBodyDecl().mayBeFinal() = false; eq TypeDecl.getBodyDecl().mayBeAbstract() = false; eq TypeDecl.getBodyDecl().mayBeVolatile() = false; eq TypeDecl.getBodyDecl().mayBeTransient() = false; eq TypeDecl.getBodyDecl().mayBeStrictfp() = false; eq TypeDecl.getBodyDecl().mayBeSynchronized() = false; eq TypeDecl.getBodyDecl().mayBeNative() = false; // 8.4.3 public void Modifiers.checkModifiers() { super.checkModifiers(); if(numProtectionModifiers() > 1) error("only one public, protected, private allowed"); if(numModifier("static") > 1) error("only one static allowed"); // 8.4.3.1 // 8.4.3.2 // 8.1.1.2 if(numCompletenessModifiers() > 1) error("only one of final, abstract, volatile allowed"); if(numModifier("synchronized") > 1) error("only one synchronized allowed"); if(numModifier("transient") > 1) error("only one transient allowed"); if(numModifier("native") > 1) error("only one native allowed"); if(numModifier("strictfp") > 1) error("only one strictfp allowed"); if(isPublic() && !mayBePublic()) error("modifier public not allowed in this context"); if(isPrivate() && !mayBePrivate()) error("modifier private not allowed in this context"); if(isProtected() && !mayBeProtected()) error("modifier protected not allowed in this context"); if(isStatic() && !mayBeStatic()) error("modifier static not allowed in this context"); if(isFinal() && !mayBeFinal()) error("modifier final not allowed in this context"); if(isAbstract() && !mayBeAbstract()) error("modifier abstract not allowed in this context"); if(isVolatile() && !mayBeVolatile()) error("modifier volatile not allowed in this context"); if(isTransient() && !mayBeTransient()) error("modifier transient not allowed in this context"); if(isStrictfp() && !mayBeStrictfp()) error("modifier strictfp not allowed in this context"); if(isSynchronized() && !mayBeSynchronized()) error("modifier synchronized not allowed in this context"); if(isNative() && !mayBeNative()) error("modifier native not allowed in this context"); } inh boolean Modifiers.mayBePublic(); inh boolean Modifiers.mayBePrivate(); inh boolean Modifiers.mayBeProtected(); inh boolean Modifiers.mayBeStatic(); inh boolean Modifiers.mayBeFinal(); inh boolean Modifiers.mayBeAbstract(); inh boolean Modifiers.mayBeVolatile(); inh boolean Modifiers.mayBeTransient(); inh boolean Modifiers.mayBeStrictfp(); inh boolean Modifiers.mayBeSynchronized(); inh boolean Modifiers.mayBeNative(); syn lazy boolean Modifiers.isPublic() = numModifier("public") != 0; syn lazy boolean Modifiers.isPrivate() = numModifier("private") != 0; syn lazy boolean Modifiers.isProtected() = numModifier("protected") != 0; syn lazy boolean Modifiers.isStatic() = numModifier("static") != 0; syn lazy boolean Modifiers.isFinal() = numModifier("final") != 0; syn lazy boolean Modifiers.isAbstract() = numModifier("abstract") != 0; syn lazy boolean Modifiers.isVolatile() = numModifier("volatile") != 0; syn lazy boolean Modifiers.isTransient() = numModifier("transient") != 0; syn lazy boolean Modifiers.isStrictfp() = numModifier("strictfp") != 0; syn lazy boolean Modifiers.isSynchronized() = numModifier("synchronized") != 0; syn lazy boolean Modifiers.isNative() = numModifier("native") != 0; syn lazy boolean Modifiers.isSynthetic() = numModifier("synthetic") != 0; syn int Modifiers.numProtectionModifiers() = numModifier("public") + numModifier("protected") + numModifier("private"); syn int Modifiers.numCompletenessModifiers() = numModifier("abstract") + numModifier("final") + numModifier("volatile"); syn lazy int Modifiers.numModifier(String name) { int n = 0; for(int i = 0; i < getNumModifier(); i++) { String s = getModifier(i).getID(); if(s.equals(name)) n++; } return n; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -