private Node toVariableDefinition(List<AbstractVariableDeclaration> decls, Map<FlagKey, Object> params) { lombok.ast.VariableDefinition def = createVariableDefinition(decls, params); AbstractVariableDeclaration first = decls.get(0); def.setPosition(toPosition(first.declarationSourceStart, first.sourceEnd)); if (params.containsKey(FlagKey.AS_DEFINITION)) return def; lombok.ast.VariableDeclaration decl = new lombok.ast.VariableDeclaration(); if (first instanceof FieldDeclaration) { decl.astJavadoc((lombok.ast.Comment) toTree(((FieldDeclaration)first).javadoc)); } decl.astDefinition(def); decl.setPosition(toPosition(first.declarationSourceStart, first.declarationEnd)); return decl; }
@Override public boolean visitVariableDeclaration(VariableDeclaration node) { List<JCVariableDecl> list = toList(JCVariableDecl.class, node.astDefinition()); JCVariableDecl last = list.get(list.size() -1); endPosTable.put(last, node.getPosition().getEnd()); return set(list); }
public Node createVariableDeclaration(Node definition) { return posify(new VariableDeclaration().rawDefinition(definition)); } }
@Override public boolean visitVariableDeclaration(lombok.ast.VariableDeclaration node) { List<AbstractVariableDeclaration> list = toList(AbstractVariableDeclaration.class, node.astDefinition()); if (list.size() > 0) setupJavadoc(list.get(0), node); return set(node, list); }
return createDeclaration ? new VariableDeclaration().astDefinition(def) : def; VariableDeclaration decl = new VariableDeclaration().astDefinition(def); decl.setPosition(def.getPosition()); addJavadoc(decl, first.mods); return decl;
public void fieldModifiersCheck(VariableDeclaration vd) { TypeDeclaration td = vd.upUpToTypeDeclaration(); if (td == null) return; //not a field. VariableDefinition def = vd.astDefinition(); if (def != null) { Modifiers m = def.astModifiers(); modifiersCheck(m, FIELD_MODIFIERS_EXCLUSIVITY, FIELD_MODIFIERS_LEGAL, "field declarations"); boolean allFieldsHaveInitializers = true; for (VariableDefinitionEntry entry : def.astVariables()) { if (entry.rawInitializer() == null) { allFieldsHaveInitializers = false; break; } } if (m.isStatic() && !m.isFinal() && !allFieldsHaveInitializers) { // Initialized static final fields, assuming the initializer expression is a compile time constant, are 'special' and // do not need to adhere to the static chain rule. However, we can't determine CTC nature without resolution. checkStaticChain(m); } } }
@Override public boolean visitVariableDeclaration(VariableDeclaration node) { visit(node.rawJavadoc()); formatter.buildBlock(node); visit(node.rawDefinition()); formatter.append(";"); formatter.closeBlock(); return true; } @Override
@CopyMethod static TypeDeclaration upUpIfFieldToTypeDeclaration(VariableDefinition self) { VariableDeclaration decl = self.upToVariableDeclaration(); return decl == null ? null : decl.upUpToTypeDeclaration(); }
@CopyMethod static Block upUpIfLocalVariableToBlock(VariableDefinition self) { VariableDeclaration decl = self.upToVariableDeclaration(); return decl == null ? null : decl.upToBlock(); } }
@Override public boolean visitModifiers(Modifiers node) { JCModifiers mods = treeMaker.Modifiers(node.getExplicitModifierFlags(), toList(JCAnnotation.class, node.astAnnotations())); Comment javadoc = null; if (node.getParent() instanceof JavadocContainer) { javadoc = ((JavadocContainer)node.getParent()).astJavadoc(); } else if (node.getParent() instanceof VariableDefinition && node.getParent().getParent() instanceof VariableDeclaration) { javadoc = ((VariableDeclaration)node.getParent().getParent()).astJavadoc(); } if (javadoc != null && javadoc.isMarkedDeprecated()) mods.flags |= Flags.DEPRECATED; if (node.isEmpty() && !hasConversionStructureInfo(node, "converted")) { //Workaround for a javac bug; start (but not end!) gets set of an empty modifiers object, //but only if these represent the modifiers of a constructor or method that has type variables. if ( (node.getParent() instanceof MethodDeclaration && ((MethodDeclaration)node.getParent()).astTypeVariables().size() > 0) || (node.getParent() instanceof ConstructorDeclaration && ((ConstructorDeclaration)node.getParent()).astTypeVariables().size() > 0)) { mods.pos = node.getParent().getPosition().getStart(); } return set(node, mods); } else { return posSet(node, mods); } }
@Override public boolean visitVariableDeclaration(lombok.ast.VariableDeclaration node) { List<AbstractVariableDeclaration> list = toList(AbstractVariableDeclaration.class, node.astDefinition()); if (list.size() > 0) setupJavadoc(list.get(0), node); return set(node, list); }
return createDeclaration ? new VariableDeclaration().astDefinition(def) : def; VariableDeclaration decl = new VariableDeclaration().astDefinition(def); decl.setPosition(def.getPosition()); addJavadoc(decl, first.mods); return decl;
public void fieldModifiersCheck(VariableDeclaration vd) { TypeDeclaration td = vd.upUpToTypeDeclaration(); if (td == null) return; //not a field. VariableDefinition def = vd.astDefinition(); if (def != null) { Modifiers m = def.astModifiers(); modifiersCheck(m, FIELD_MODIFIERS_EXCLUSIVITY, FIELD_MODIFIERS_LEGAL, "field declarations"); boolean allFieldsHaveInitializers = true; for (VariableDefinitionEntry entry : def.astVariables()) { if (entry.rawInitializer() == null) { allFieldsHaveInitializers = false; break; } } if (m.isStatic() && !m.isFinal() && !allFieldsHaveInitializers) { // Initialized static final fields, assuming the initializer expression is a compile time constant, are 'special' and // do not need to adhere to the static chain rule. However, we can't determine CTC nature without resolution. checkStaticChain(m); } } }
@Override public boolean visitVariableDeclaration(VariableDeclaration node) { visit(node.rawJavadoc()); formatter.buildBlock(node); visit(node.rawDefinition()); formatter.append(";"); formatter.closeBlock(); return true; } @Override
@CopyMethod static TypeDeclaration upUpIfFieldToTypeDeclaration(VariableDefinition self) { VariableDeclaration decl = self.upToVariableDeclaration(); return decl == null ? null : decl.upUpToTypeDeclaration(); }
@CopyMethod static Block upUpIfLocalVariableToBlock(VariableDefinition self) { VariableDeclaration decl = self.upToVariableDeclaration(); return decl == null ? null : decl.upToBlock(); } }
@Override public boolean visitModifiers(Modifiers node) { JCModifiers mods = treeMaker.Modifiers(node.getExplicitModifierFlags(), toList(JCAnnotation.class, node.astAnnotations())); Comment javadoc = null; if (node.getParent() instanceof JavadocContainer) { javadoc = ((JavadocContainer)node.getParent()).astJavadoc(); } else if (node.getParent() instanceof VariableDefinition && node.getParent().getParent() instanceof VariableDeclaration) { javadoc = ((VariableDeclaration)node.getParent().getParent()).astJavadoc(); } if (javadoc != null && javadoc.isMarkedDeprecated()) mods.flags |= Flags.DEPRECATED; if (node.isEmpty() && !hasConversionStructureInfo(node, "converted")) { //Workaround for a javac bug; start (but not end!) gets set of an empty modifiers object, //but only if these represent the modifiers of a constructor or method that has type variables. if ( (node.getParent() instanceof MethodDeclaration && ((MethodDeclaration)node.getParent()).astTypeVariables().size() > 0) || (node.getParent() instanceof ConstructorDeclaration && ((ConstructorDeclaration)node.getParent()).astTypeVariables().size() > 0)) { mods.pos = node.getParent().getPosition().getStart(); } return set(node, mods); } else { return posSet(node, mods); } }
private Node toVariableDefinition(List<AbstractVariableDeclaration> decls, Map<FlagKey, Object> params) { lombok.ast.VariableDefinition def = createVariableDefinition(decls, params); AbstractVariableDeclaration first = decls.get(0); def.setPosition(toPosition(first.declarationSourceStart, first.sourceEnd)); if (params.containsKey(FlagKey.AS_DEFINITION)) return def; lombok.ast.VariableDeclaration decl = new lombok.ast.VariableDeclaration(); if (first instanceof FieldDeclaration) { decl.astJavadoc((lombok.ast.Comment) toTree(((FieldDeclaration)first).javadoc)); } decl.astDefinition(def); decl.setPosition(toPosition(first.declarationSourceStart, first.declarationEnd)); return decl; }
@Override public boolean visitVariableDeclaration(lombok.ast.VariableDeclaration node) { List<AbstractVariableDeclaration> list = toList(AbstractVariableDeclaration.class, node.astDefinition()); if (list.size() > 0) setupJavadoc(list.get(0), node); return set(node, list); }
return createDeclaration ? new VariableDeclaration().astDefinition(def) : def; VariableDeclaration decl = new VariableDeclaration().astDefinition(def); decl.setPosition(def.getPosition()); addJavadoc(decl, first.mods); return decl;