aspect Modifiers { inh Variable Modifiers.getModifiedVariable(); eq Program.getChild().getModifiedVariable() = null; eq TypeDecl.getModifiers().getModifiedVariable() = null; eq ConstructorDecl.getModifiers().getModifiedVariable() = null; eq MethodDecl.getModifiers().getModifiedVariable() = null; eq FieldDeclaration.getModifiers().getModifiedVariable() = this; eq VariableDeclaration.getModifiers().getModifiedVariable() = this; eq ParameterDeclaration.getModifiers().getModifiedVariable() = this; syn boolean MethodDecl.isPackageProtected() = !isPublic() && !isPrivate() && !isProtected(); public void Modifiers.removeModifier(String mod) { for(int i=0;i l = new List(); for(String mod : mods) l.add(new Modifier(mod)); setModifierList(l); } public void MemberDecl.makeModifiersExplicit() { } public void FieldDeclaration.makeModifiersExplicit() { if(hostType().isInterfaceDecl()) getModifiers().addModifiers("public", "static", "final"); } public void MethodDecl.makeModifiersExplicit() { if(hostType().isInterfaceDecl()) getModifiers().addModifiers("public", "static", "abstract"); } public boolean MemberDecl.isNative() { return false; } public void Modifiers.removeAnnotations() { for(int i=getNumModifier()-1;i>=0;--i) { Modifier mod = getModifier(i); if(mod instanceof Annotation) getModifierList().removeChild(i); } } }