private int typeModifiersCheck(TypeDeclaration td, String desc) { int flags = modifiersCheck(td.astModifiers(), TYPE_MODIFIERS_EXCLUSIVITY, TYPE_MODIFIERS_LEGAL, desc); boolean staticWarningEmitted = false; if (td.upIfTopLevelToCompilationUnit() != null) { generateNotAllowedKeywordError(td.astModifiers(), flags, K_PRIVATE, "private", "Top-level types cannot be private."); staticWarningEmitted |= generateNotAllowedKeywordError(td.astModifiers(), flags, K_STATIC, "static", "Top-level types cannot be static."); } else if (td.upToBlock() != null) { generateNotAllowedKeywordError(td.astModifiers(), flags, K_PRIVATE, "private", "Method-local types cannot be private."); generateNotAllowedKeywordError(td.astModifiers(), flags, K_PROTECTED, "protected", "Method-local types cannot be protected."); generateNotAllowedKeywordError(td.astModifiers(), flags, K_PUBLIC, "public", "Method-local types cannot be public."); staticWarningEmitted |= generateNotAllowedKeywordError(td.astModifiers(), flags, K_STATIC, "static", "Method-local types cannot be static."); } if (!staticWarningEmitted) checkStaticChain(td.astModifiers()); return flags; }
private int typeModifiersCheck(TypeDeclaration td, String desc) { int flags = modifiersCheck(td.astModifiers(), TYPE_MODIFIERS_EXCLUSIVITY, TYPE_MODIFIERS_LEGAL, desc); boolean staticWarningEmitted = false; if (td.upIfTopLevelToCompilationUnit() != null) { generateNotAllowedKeywordError(td.astModifiers(), flags, K_PRIVATE, "private", "Top-level types cannot be private."); staticWarningEmitted |= generateNotAllowedKeywordError(td.astModifiers(), flags, K_STATIC, "static", "Top-level types cannot be static."); } else if (td.upToBlock() != null) { generateNotAllowedKeywordError(td.astModifiers(), flags, K_PRIVATE, "private", "Method-local types cannot be private."); generateNotAllowedKeywordError(td.astModifiers(), flags, K_PROTECTED, "protected", "Method-local types cannot be protected."); generateNotAllowedKeywordError(td.astModifiers(), flags, K_PUBLIC, "public", "Method-local types cannot be public."); staticWarningEmitted |= generateNotAllowedKeywordError(td.astModifiers(), flags, K_STATIC, "static", "Method-local types cannot be static."); } if (!staticWarningEmitted) checkStaticChain(td.astModifiers()); return flags; }
private int typeModifiersCheck(TypeDeclaration td, String desc) { int flags = modifiersCheck(td.astModifiers(), TYPE_MODIFIERS_EXCLUSIVITY, TYPE_MODIFIERS_LEGAL, desc); boolean staticWarningEmitted = false; if (td.upIfTopLevelToCompilationUnit() != null) { generateNotAllowedKeywordError(td.astModifiers(), flags, K_PRIVATE, "private", "Top-level types cannot be private."); staticWarningEmitted |= generateNotAllowedKeywordError(td.astModifiers(), flags, K_STATIC, "static", "Top-level types cannot be static."); } else if (td.upToBlock() != null) { generateNotAllowedKeywordError(td.astModifiers(), flags, K_PRIVATE, "private", "Method-local types cannot be private."); generateNotAllowedKeywordError(td.astModifiers(), flags, K_PROTECTED, "protected", "Method-local types cannot be protected."); generateNotAllowedKeywordError(td.astModifiers(), flags, K_PUBLIC, "public", "Method-local types cannot be public."); staticWarningEmitted |= generateNotAllowedKeywordError(td.astModifiers(), flags, K_STATIC, "static", "Method-local types cannot be static."); } if (!staticWarningEmitted) checkStaticChain(td.astModifiers()); return flags; }
public void checkStaticInitializerInNonStaticType(StaticInitializer node) { TypeDeclaration parent = node.upUpToTypeDeclaration(); if (parent != null) { if (!parent.astModifiers().isStatic()) { node.addMessage(error(INITIALIZER_STATIC_IN_NON_STATIC_TYPE, "static initializers are only allowed in top-level or static types declarations.")); } } }
public void checkStaticInitializerInNonStaticType(StaticInitializer node) { TypeDeclaration parent = node.upUpToTypeDeclaration(); if (parent != null) { if (!parent.astModifiers().isStatic()) { node.addMessage(error(INITIALIZER_STATIC_IN_NON_STATIC_TYPE, "static initializers are only allowed in top-level or static types declarations.")); } } }
public void checkStaticInitializerInNonStaticType(StaticInitializer node) { TypeDeclaration parent = node.upUpToTypeDeclaration(); if (parent != null) { if (!parent.astModifiers().isStatic()) { node.addMessage(error(INITIALIZER_STATIC_IN_NON_STATIC_TYPE, "static initializers are only allowed in top-level or static types declarations.")); } } }
private TypeDeclaration createTypeBody(lombok.ast.StrictListAccessor<lombok.ast.TypeMember, ?> members, lombok.ast.TypeDeclaration type, boolean canHaveConstructor, int extraModifiers, FieldDeclaration... initialFields) { TypeDeclaration decl = new TypeDeclaration(compilationResult); decl.modifiers = (type == null ? 0 : toModifiers(type.astModifiers())) | extraModifiers; if (members.isEmpty() && isUndocumented(members.owner())) decl.bits |= ASTNode.UndocumentedEmptyBlock; decl.declarationSourceStart = jstart(type); decl.declarationSourceEnd = end(type); if (!(type instanceof AnnotationDeclaration) || !type.astModifiers().isEmpty() || type.rawJavadoc() != null) { decl.modifiersSourceStart = jstart(type.astModifiers()); } else { decl.modifiersSourceStart = -1;
public void checkAbstractMembersOnlyInAbstractTypes(MethodDeclaration md) { Modifiers modifiers = md.astModifiers(); if (modifiers == null) return; if (!modifiers.isAbstract()) return; TypeDeclaration parent = md.upUpToTypeDeclaration(); if (parent != null) { Modifiers modifiersOfParent = parent.astModifiers(); if (modifiersOfParent != null && modifiersOfParent.isAbstract()) return; md.addMessage(error(MODIFIERS_ABSTRACT_NOT_ALLOWED, "Abstract methods are only allowed in interfaces and abstract classes")); } }
public void checkAbstractMembersOnlyInAbstractTypes(MethodDeclaration md) { Modifiers modifiers = md.astModifiers(); if (modifiers == null) return; if (!modifiers.isAbstract()) return; TypeDeclaration parent = md.upUpToTypeDeclaration(); if (parent != null) { Modifiers modifiersOfParent = parent.astModifiers(); if (modifiersOfParent != null && modifiersOfParent.isAbstract()) return; md.addMessage(error(MODIFIERS_ABSTRACT_NOT_ALLOWED, "Abstract methods are only allowed in interfaces and abstract classes")); } }
public void checkAbstractMembersOnlyInAbstractTypes(MethodDeclaration md) { Modifiers modifiers = md.astModifiers(); if (modifiers == null) return; if (!modifiers.isAbstract()) return; TypeDeclaration parent = md.upUpToTypeDeclaration(); if (parent != null) { Modifiers modifiersOfParent = parent.astModifiers(); if (modifiersOfParent != null && modifiersOfParent.isAbstract()) return; md.addMessage(error(MODIFIERS_ABSTRACT_NOT_ALLOWED, "Abstract methods are only allowed in interfaces and abstract classes")); } }
private void checkStaticChain(Modifiers modifiers) { if (!modifiers.isStatic()) return; Node p = modifiers.getParent(); while (p != null) { if (p instanceof CompilationUnit) return; if (p instanceof TypeDeclaration) { Modifiers pMods = ((TypeDeclaration)p).astModifiers(); if (!pMods.isStatic()) { modifiers.getParent().addMessage(error(MODIFIERS_STATIC_CHAIN, "This declaration is (effectively) static; static declarations or only legal in top-level and static declarations.")); } } p = p.getParent(); } }
private void checkStaticChain(Modifiers modifiers) { if (!modifiers.isStatic()) return; Node p = modifiers.getParent(); while (p != null) { if (p instanceof CompilationUnit) return; if (p instanceof TypeDeclaration) { Modifiers pMods = ((TypeDeclaration)p).astModifiers(); if (!pMods.isStatic()) { modifiers.getParent().addMessage(error(MODIFIERS_STATIC_CHAIN, "This declaration is (effectively) static; static declarations or only legal in top-level and static declarations.")); } } p = p.getParent(); } }
private void checkStaticChain(Modifiers modifiers) { if (!modifiers.isStatic()) return; Node p = modifiers.getParent(); while (p != null) { if (p instanceof CompilationUnit) return; if (p instanceof TypeDeclaration) { Modifiers pMods = ((TypeDeclaration)p).astModifiers(); if (!pMods.isStatic()) { modifiers.getParent().addMessage(error(MODIFIERS_STATIC_CHAIN, "This declaration is (effectively) static; static declarations or only legal in top-level and static declarations.")); } } p = p.getParent(); } }
if (isSuppressed(issue, declaration.astModifiers())) { return true;
addToMap(((VariableDeclaration)node).astDefinition().astVariables().first().astName(), node); } else if (node instanceof TypeDeclaration) { addToMap(((TypeDeclaration)node).astModifiers(), node); addToMap(((TypeDeclaration)node).astModifiers().astAnnotations(), node); } else if (node instanceof MethodDeclaration) { addToMap(((MethodDeclaration)node).astModifiers(), node);
addToMap(((VariableDeclaration)node).astDefinition().astVariables().first().astName(), node); } else if (node instanceof TypeDeclaration) { addToMap(((TypeDeclaration)node).astModifiers(), node); addToMap(((TypeDeclaration)node).astModifiers().astAnnotations(), node); } else if (node instanceof MethodDeclaration) { addToMap(((MethodDeclaration)node).astModifiers(), node);
addToMap(((VariableDeclaration)node).astDefinition().astVariables().first().astName(), node); } else if (node instanceof TypeDeclaration) { addToMap(((TypeDeclaration)node).astModifiers(), node); addToMap(((TypeDeclaration)node).astModifiers().astAnnotations(), node); } else if (node instanceof MethodDeclaration) { addToMap(((MethodDeclaration)node).astModifiers(), node);
decl.astModifiers(toModifiers(node.modifiers, node.annotations, node.modifiersSourceStart, node.declarationSourceStart)); decl.astName(toIdentifier(node.name, node.sourceStart, node.sourceEnd)); decl.setPosition(toPosition(node.declarationSourceStart, node.declarationSourceEnd));
decl.astModifiers(toModifiers(node.modifiers, node.annotations, node.modifiersSourceStart, node.declarationSourceStart)); decl.astName(toIdentifier(node.name, node.sourceStart, node.sourceEnd)); decl.setPosition(toPosition(node.declarationSourceStart, node.declarationSourceEnd));
decl.astModifiers(toModifiers(node.modifiers, node.annotations, node.modifiersSourceStart, node.declarationSourceStart)); decl.astName(toIdentifier(node.name, node.sourceStart, node.sourceEnd)); decl.setPosition(toPosition(node.declarationSourceStart, node.declarationSourceEnd));