Java Code Examples for com.sun.source.tree.Tree.Kind#NEW_ARRAY
The following examples show how to use
com.sun.source.tree.Tree.Kind#NEW_ARRAY .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: Utilities.java From netbeans with Apache License 2.0 | 6 votes |
public static List<AnnotationTree> findArrayValue(AnnotationTree at, String name) { ExpressionTree fixesArray = findValue(at, name); List<AnnotationTree> fixes = new LinkedList<AnnotationTree>(); if (fixesArray != null && fixesArray.getKind() == Kind.NEW_ARRAY) { NewArrayTree trees = (NewArrayTree) fixesArray; for (ExpressionTree fix : trees.getInitializers()) { if (fix.getKind() == Kind.ANNOTATION) { fixes.add((AnnotationTree) fix); } } } if (fixesArray != null && fixesArray.getKind() == Kind.ANNOTATION) { fixes.add((AnnotationTree) fixesArray); } return fixes; }
Example 2
Source File: IndexFileParser.java From annotation-tools with MIT License | 6 votes |
private Pair<ASTPath, InnerTypeLocation> splitNewArrayType(ASTPath astPath) { ASTPath outerPath = astPath; InnerTypeLocation loc = null; int last = astPath.size() - 1; if (last > 0) { ASTPath.ASTEntry entry = astPath.get(last); if (entry.getTreeKind() == Kind.NEW_ARRAY && entry.childSelectorIs(ASTPath.TYPE)) { int a = entry.getArgument(); if (a > 0) { outerPath = astPath.getParentPath().extend(new ASTPath.ASTEntry(Kind.NEW_ARRAY, ASTPath.TYPE, 0)); loc = new InnerTypeLocation(TypeAnnotationPosition.getTypePathFromBinary(Collections.nCopies(2 * a, 0))); } } } return Pair.of(outerPath, loc); }
Example 3
Source File: IndexFileParser.java From annotation-tools with MIT License | 6 votes |
private ASTPath fixNewArrayType(ASTPath astPath) { ASTPath outerPath = astPath; int last = astPath.size() - 1; if (last > 0) { ASTPath.ASTEntry entry = astPath.get(last); if (entry.getTreeKind() == Kind.NEW_ARRAY && entry.childSelectorIs(ASTPath.TYPE)) { int a = entry.getArgument(); outerPath = astPath.getParentPath().extend(new ASTPath.ASTEntry(Kind.NEW_ARRAY, ASTPath.TYPE, 0)); while (--a >= 0) { outerPath = outerPath.extend(new ASTPath.ASTEntry(Kind.ARRAY_TYPE, ASTPath.TYPE)); } } } return outerPath; }
Example 4
Source File: Unbalanced.java From netbeans with Apache License 2.0 | 5 votes |
@TriggerPattern(value="$mods$ $type[] $name = $init$;") public static ErrorDescription after(HintContext ctx) { VariableElement var = testElement(ctx); if (var == null) return null; Tree parent = ctx.getPath().getParentPath().getLeaf(); if (parent.getKind() == Kind.ENHANCED_FOR_LOOP && ((EnhancedForLoopTree) parent).getVariable() == ctx.getPath().getLeaf()) { return null; } TreePath init = ctx.getVariables().get("$init$"); if (init != null) { boolean asWrite = true; if (init.getLeaf().getKind() == Kind.NEW_ARRAY) { NewArrayTree nat = (NewArrayTree) init.getLeaf(); if (nat.getInitializers() == null || nat.getInitializers().isEmpty()) { asWrite = false; } } if (asWrite) { record(ctx.getInfo(), var, State.WRITE); } } return produceWarning(ctx, "ERR_UnbalancedArray"); }
Example 5
Source File: ComputeImports.java From netbeans with Apache License 2.0 | 4 votes |
@Override public Void visitVariable(VariableTree tree, Map<String, Object> p) { scan(tree.getModifiers(), p); if (tree.getType() != null && tree.getType().getKind() == Kind.IDENTIFIER) { p.put("request", null); } scan(tree.getType(), p, true); Union2<String, DeclaredType> leftSide = (Union2<String, DeclaredType>) p.remove("result"); p.remove("request"); Union2<String, DeclaredType> rightSide = null; if (leftSide != null && tree.getInitializer() != null) { Element el = info.getTrees().getElement(new TreePath(getCurrentPath(),tree.getInitializer())); TypeMirror rightType = el != null ? el.asType() : null; // System.err.println("rightType = " + rightType ); // System.err.println("tree.getInitializer()=" + tree.getInitializer()); // System.err.println("rightType.getKind()=" + rightType.getKind()); // System.err.println("INVALID_TYPES.contains(rightType.getKind())=" + INVALID_TYPES.contains(rightType.getKind())); if (rightType != null && rightType.getKind() == TypeKind.DECLARED) { rightSide = Union2.<String, DeclaredType>createSecond((DeclaredType) rightType); } else { if (tree.getInitializer().getKind() == Kind.NEW_CLASS || tree.getInitializer().getKind() == Kind.NEW_ARRAY) { p.put("request", null); } } } scan(tree.getInitializer(), p); rightSide = rightSide == null ? (Union2<String, DeclaredType>) p.remove("result") : rightSide; p.remove("result"); // System.err.println("rightSide = " + rightSide ); p.remove("request"); if (leftSide != null && rightSide != null) { if (!(leftSide instanceof TypeMirror) || !(rightSide instanceof TypeMirror)) { hints.add(new TypeHint(leftSide, rightSide)); } } return null; }
Example 6
Source File: UseNbBundleMessages.java From netbeans with Apache License 2.0 | 4 votes |
@Override protected void performRewrite(JavaFix.TransformationContext ctx) throws Exception { WorkingCopy wc = ctx.getWorkingCopy(); TreePath treePath = ctx.getPath(); TreeMaker make = wc.getTreeMaker(); if (treePath.getLeaf().getKind() == Kind.METHOD_INVOCATION) { MethodInvocationTree mit = (MethodInvocationTree) treePath.getLeaf(); CompilationUnitTree cut = wc.getCompilationUnit(); boolean imported = false; String importBundleStar = cut.getPackageName() + ".Bundle.*"; for (ImportTree it : cut.getImports()) { if (it.isStatic() && it.getQualifiedIdentifier().toString().equals(importBundleStar)) { imported = true; break; } } if (!imported) { wc.rewrite(cut, make.addCompUnitImport(cut, make.Import(make.Identifier(importBundleStar), true))); } List<? extends ExpressionTree> args = mit.getArguments(); List<? extends ExpressionTree> params; if (args.size() == 3 && args.get(2).getKind() == Kind.NEW_ARRAY) { params = ((NewArrayTree) args.get(2)).getInitializers(); } else { params = args.subList(2, args.size()); } wc.rewrite(mit, make.MethodInvocation(Collections.<ExpressionTree>emptyList(), make.Identifier(toIdentifier(key)), params)); } // else annotation value, nothing to change if (!isAlreadyRegistered) { EditableProperties ep = new EditableProperties(true); InputStream is = ctx.getResourceContent(bundleProperties); try { ep.load(is); } finally { is.close(); } List<ExpressionTree> lines = new ArrayList<ExpressionTree>(); for (String comment : ep.getComment(key)) { lines.add(make.Literal(comment)); } lines.add(make.Literal(key + '=' + ep.remove(key))); TypeElement nbBundleMessages = wc.getElements().getTypeElement("org.openide.util.NbBundle.Messages"); if (nbBundleMessages == null) { throw new IllegalArgumentException("cannot resolve org.openide.util.NbBundle.Messages"); } GeneratorUtilities gu = GeneratorUtilities.get(wc); Tree enclosing = findEnclosingElement(wc, treePath); Tree modifiers; Tree nueModifiers; ExpressionTree[] linesA = lines.toArray(new ExpressionTree[lines.size()]); switch (enclosing.getKind()) { case METHOD: modifiers = wc.resolveRewriteTarget(((MethodTree) enclosing).getModifiers()); nueModifiers = gu.appendToAnnotationValue((ModifiersTree) modifiers, nbBundleMessages, "value", linesA); break; case VARIABLE: modifiers = wc.resolveRewriteTarget(((VariableTree) enclosing).getModifiers()); nueModifiers = gu.appendToAnnotationValue((ModifiersTree) modifiers, nbBundleMessages, "value", linesA); break; case COMPILATION_UNIT: modifiers = wc.resolveRewriteTarget(enclosing); nueModifiers = gu.appendToAnnotationValue((CompilationUnitTree) modifiers, nbBundleMessages, "value", linesA); break; default: modifiers = wc.resolveRewriteTarget(((ClassTree) enclosing).getModifiers()); nueModifiers = gu.appendToAnnotationValue((ModifiersTree) modifiers, nbBundleMessages, "value", linesA); } wc.rewrite(modifiers, nueModifiers); // XXX remove NbBundle import if now unused OutputStream os = ctx.getResourceOutput(bundleProperties); try { ep.store(os); } finally { os.close(); } } // XXX after JavaFix rewrite, Savable.save (on DataObject.find(src)) no longer works (JG13 again) }