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")); } }
@Override public void visitMethodDeclaration(MethodDeclaration node) { lombok.ast.MethodDeclaration decl = new lombok.ast.MethodDeclaration(); decl.astMethodName(toIdentifier(node.selector, node.sourceStart, node.sourceEnd)); decl.astJavadoc((lombok.ast.Comment) toTree(node.javadoc)); lombok.ast.Modifiers modifiers = toModifiers(node.modifiers, node.annotations, node.modifiersSourceStart, node.declarationSourceStart); decl.astModifiers(modifiers); decl.astReturnTypeReference((lombok.ast.TypeReference) toTree(node.returnType)); boolean semiColonBody = ((node.modifiers & ExtraCompilerModifiers.AccSemicolonBody) != 0); if (!modifiers.isAbstract() && !node.isNative() && !semiColonBody) { lombok.ast.Block block = toBlock(node.statements); block.setPosition(toPosition(node.bodyStart - 1, node.bodyEnd + 1)); decl.astBody(block); } fillList(node.arguments, decl.rawParameters(), FlagKey.AS_DEFINITION, FlagKey.NO_VARDECL_FOLDING); fillList(node.typeParameters, decl.rawTypeVariables()); fillList(node.thrownExceptions, decl.rawThrownTypeReferences()); setConversionPositionInfo(decl, "signature", toPosition(node.sourceStart, node.sourceEnd)); decl.setPosition(toPosition(node.declarationSourceStart, node.declarationSourceEnd)); set(node, decl); }
@Override public void visitMethodDeclaration(MethodDeclaration node) { lombok.ast.MethodDeclaration decl = new lombok.ast.MethodDeclaration(); decl.astMethodName(toIdentifier(node.selector, node.sourceStart, node.sourceEnd)); decl.astJavadoc((lombok.ast.Comment) toTree(node.javadoc)); lombok.ast.Modifiers modifiers = toModifiers(node.modifiers, node.annotations, node.modifiersSourceStart, node.declarationSourceStart); decl.astModifiers(modifiers); decl.astReturnTypeReference((lombok.ast.TypeReference) toTree(node.returnType)); boolean semiColonBody = ((node.modifiers & ExtraCompilerModifiers.AccSemicolonBody) != 0); if (!modifiers.isAbstract() && !node.isNative() && !semiColonBody) { lombok.ast.Block block = toBlock(node.statements); block.setPosition(toPosition(node.bodyStart - 1, node.bodyEnd + 1)); decl.astBody(block); } fillList(node.arguments, decl.rawParameters(), FlagKey.AS_DEFINITION, FlagKey.NO_VARDECL_FOLDING); fillList(node.typeParameters, decl.rawTypeVariables()); fillList(node.thrownExceptions, decl.rawThrownTypeReferences()); setConversionPositionInfo(decl, "signature", toPosition(node.sourceStart, node.sourceEnd)); decl.setPosition(toPosition(node.declarationSourceStart, node.declarationSourceEnd)); set(node, decl); }
@Override public void visitMethodDeclaration(MethodDeclaration node) { lombok.ast.MethodDeclaration decl = new lombok.ast.MethodDeclaration(); decl.astMethodName(toIdentifier(node.selector, node.sourceStart, node.sourceEnd)); decl.astJavadoc((lombok.ast.Comment) toTree(node.javadoc)); lombok.ast.Modifiers modifiers = toModifiers(node.modifiers, node.annotations, node.modifiersSourceStart, node.declarationSourceStart); decl.astModifiers(modifiers); decl.astReturnTypeReference((lombok.ast.TypeReference) toTree(node.returnType)); boolean semiColonBody = ((node.modifiers & ExtraCompilerModifiers.AccSemicolonBody) != 0); if (!modifiers.isAbstract() && !node.isNative() && !semiColonBody) { lombok.ast.Block block = toBlock(node.statements); block.setPosition(toPosition(node.bodyStart - 1, node.bodyEnd + 1)); decl.astBody(block); } fillList(node.arguments, decl.rawParameters(), FlagKey.AS_DEFINITION, FlagKey.NO_VARDECL_FOLDING); fillList(node.typeParameters, decl.rawTypeVariables()); fillList(node.thrownExceptions, decl.rawThrownTypeReferences()); setConversionPositionInfo(decl, "signature", toPosition(node.sourceStart, node.sourceEnd)); decl.setPosition(toPosition(node.declarationSourceStart, node.declarationSourceEnd)); set(node, decl); }