com.sun.source.util.TreePath.<init>()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(11.5k)|赞(0)|评价(0)|浏览(56)

本文整理了Java中com.sun.source.util.TreePath.<init>()方法的一些代码示例,展示了TreePath.<init>()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。TreePath.<init>()方法的具体详情如下:
包路径:com.sun.source.util.TreePath
类名称:TreePath
方法名:<init>

TreePath.<init>介绍

[英]Creates a TreePath for a root node.
[中]为根节点创建树路径。

代码示例

代码示例来源:origin: uber/NullAway

@Override
public void onMatchReturn(NullAway analysis, ReturnTree tree, VisitorState state) {
 // Figure out the enclosing method node
 TreePath enclosingMethodOrLambda =
   NullabilityUtil.findEnclosingMethodOrLambdaOrInitializer(state.getPath());
 if (enclosingMethodOrLambda == null) {
  throw new RuntimeException("no enclosing method, lambda or initializer!");
 }
 if (!(enclosingMethodOrLambda.getLeaf() instanceof MethodTree
   || enclosingMethodOrLambda.getLeaf() instanceof LambdaExpressionTree)) {
  throw new RuntimeException(
    "return statement outside of a method or lambda! (e.g. in an initializer block)");
 }
 Tree leaf = enclosingMethodOrLambda.getLeaf();
 if (filterMethodOrLambdaSet.contains(leaf)) {
  returnToEnclosingMethodOrLambda.put(tree, leaf);
  // We need to manually trigger the dataflow analysis to run on the filter method,
  // this ensures onDataflowVisitReturn(...) gets called for all return statements in this
  // method before
  // onDataflowInitialStore(...) is called for all successor methods in the observable chain.
  // Caching should prevent us from re-analyzing any given method.
  AccessPathNullnessAnalysis nullnessAnalysis = analysis.getNullnessAnalysis(state);
  nullnessAnalysis.forceRunOnMethod(new TreePath(state.getPath(), leaf), state.context);
 }
}

代码示例来源:origin: google/error-prone

path = new TreePath(taskEvent.getCompilationUnit());
verify(seen.add(path.getLeaf()), "Duplicate FLOW event for: %s", taskEvent.getTypeElement());
Context subContext = new SubContext(context);
subContext.put(ErrorProneOptions.class, errorProneOptions);
  return;
 if (path.getLeaf().getKind() == Tree.Kind.COMPILATION_UNIT) {
  transformer.get().apply(new TreePath(compilation), subContext, countingDescriptionListener);

代码示例来源:origin: org.netbeans.modules/org-netbeans-modules-visualweb-insync

private String getPackageName(CompilationInfo cinfo) {
  Element e = cinfo.getTrees().getElement(new TreePath(cinfo.getCompilationUnit()));
  if (e != null && e.getKind() == ElementKind.PACKAGE) {
    return ((PackageElement) e).getQualifiedName().toString();
  }
  return null;
}

代码示例来源:origin: org.netbeans.api/org-netbeans-modules-vmd-midp

while (it.hasNext()) {
  Tree tr = it.next();
  if (tr.getKind() == Tree.Kind.VARIABLE) {
    Trees trees = myInfo.getTrees();
    TreePath path = new TreePath(getCurrentPath(), tr);
    Element el = trees.getElement(path);
    String sname = el.getSimpleName().toString();
    if (sname.equals(myMember)) {
      myFieldHandle = TreePathHandle.create(path, myInfo);
  } else if (tr.getKind() == Tree.Kind.METHOD) {
    Trees trees = myInfo.getTrees();
    TreePath path = new TreePath(getCurrentPath(), tr);
    Element el = trees.getElement(path);
    String sname = el.getSimpleName().toString();
    if (sname.equals(myMethod)) {

代码示例来源:origin: org.netbeans.modules/org-netbeans-modules-web-core

public void run(WorkingCopy workingCopy) throws Exception {
    workingCopy.toPhase(Phase.RESOLVED);
    CompilationUnitTree cut = workingCopy.getCompilationUnit();
    gu = GenerationUtils.newInstance(workingCopy);
    for (Tree typeDecl : cut.getTypeDecls()) {
      if (TreeUtilities.CLASS_TREE_KINDS.contains(typeDecl.getKind())) {
        Element e = workingCopy.getTrees().getElement(new TreePath(new TreePath(workingCopy.getCompilationUnit()), typeDecl));
        if (e != null && e.getKind().isClass()) {
          TypeElement te = (TypeElement) e;
          ClassTree ct = (ClassTree) typeDecl;
          workingCopy.rewrite(ct, generateInterfaces(workingCopy, te, ct, gu));
        }
      }
    }
  }
};

代码示例来源:origin: org.netbeans.api/org-netbeans-modules-java-source-base

public static <T extends Tree> T importFQNs(WorkingCopy copy, T tree) {
  if (tree == null) return null;
  
  TranslateIdentifier ti = new TranslateIdentifier(copy);
  
  //XXX: the TreePath constructed below below depends on javac internals (that elements are attributes of a tree, not a tree path):
  ti.scan(tree.getKind() == Kind.COMPILATION_UNIT ? new TreePath((CompilationUnitTree) tree) : new TreePath(new TreePath(copy.getCompilationUnit()), tree), null);
  
  return (T) copy.getTreeUtilities().translate(tree, ti.translateMap);
}

代码示例来源:origin: org.netbeans.api/org-netbeans-modules-java-source-base

@Override
public Void visitAssignment(AssignmentTree node, Boolean p) {
  Element el = trees.getElement(new TreePath(getCurrentPath(), node.getVariable()));
  fields.remove(el);
  return null;
}
@Override

代码示例来源:origin: org.netbeans.api/org-netbeans-modules-vmd-midp

private static ExpressionTree findImplementIdentifier (Trees trees, TreePath classTreePath, String fullyQualifiedName) {
  ClassTree clazz = (ClassTree) classTreePath.getLeaf ();
  for (Tree tree : clazz.getImplementsClause ()) {
    Element element = trees.getElement (new TreePath (classTreePath, tree));
    if (equalsElementWithFQN (element, fullyQualifiedName))
      return (ExpressionTree) tree;
  }
  return null;
}

代码示例来源:origin: org.netbeans.modules/org-netbeans-modules-java-completion

private void insideUnionType(Env env) throws IOException {
  TreePath path = env.getPath();
  UnionTypeTree dtt = (UnionTypeTree) path.getLeaf();
  CompilationController controller = env.getController();
  TokenSequence<JavaTokenId> last = findLastNonWhitespaceToken(env, dtt, env.getOffset());
        Types types = controller.getTypes();
        for (Tree t : dtt.getTypeAlternatives()) {
          TypeMirror tm = trees.getTypeMirror(new TreePath(path, t));
          if (tm != null && tm.getKind() != TypeKind.ERROR) {
            for (Iterator<TypeMirror> it = exs.iterator(); it.hasNext();) {

代码示例来源:origin: org.netbeans.api/org-netbeans-modules-java-source-base

public Void visitThrow(ThrowTree node, Set<TypeMirror> p) {
  super.visitThrow(node, p);
  TypeMirror tm = info.getTrees().getTypeMirror(new TreePath(getCurrentPath(), node.getExpression()));
  if (tm != null) {
    if (tm.getKind() == TypeKind.DECLARED)
      p.add(tm);
    else if (tm.getKind() == TypeKind.UNION)
      p.addAll(((UnionType)tm).getAlternatives());
  }
  return null;
}

代码示例来源:origin: org.netbeans.modules/org-netbeans-modules-java-completion

int j = 0;
for (Tree t : argTypes) {
  types[j++] = controller.getTrees().getTypeMirror(new TreePath(path, t));
path = new TreePath(path, nct.getIdentifier());
final Trees trees = controller.getTrees();
final TypeMirror type = trees.getTypeMirror(path);
final Element el = trees.getElement(path);
final Scope scope = env.getScope();
final boolean isAnonymous = nct.getClassBody() != null || (el != null && (el.getKind().isInterface() || el.getModifiers().contains(ABSTRACT)));

代码示例来源:origin: AlexFalappa/nb-springboot

@Override
  public void run(CompilationInfo p) throws Exception {
    final CompilationUnitTree compilationUnitTree = p.getCompilationUnit();
    final TreePath rootPath = new TreePath(compilationUnitTree);
    mappedElementExtractor = new MappedElementExtractor(p.getFileObject(), compilationUnitTree, p.getTrees(), rootPath);
    SwingUtilities.invokeLater(new Runnable() {
      @Override
      public void run() {
        targetModel.refresh(compilationUnitTree.accept(mappedElementExtractor, null));
        table.setModel(targetModel);
      }
    });
  }
}

代码示例来源:origin: org.netbeans.modules/org-netbeans-modules-form-refactoring

@Override
public Void visitClass(ClassTree t, Void v) {
  if (variableElement == null) {
    // try to find the component's field variable in the class
    List<? extends Tree> members = (List<? extends Tree>) t.getMembers();
    Iterator<? extends Tree> it = members.iterator();
    while(it.hasNext()){
      Tree tr = it.next();
      if (tr.getKind() == Tree.Kind.VARIABLE) {
        Trees trees = info.getTrees();
        TreePath path = new TreePath(getCurrentPath(), tr);
        Element el = trees.getElement(path);
        if (el != null) { // Issue 185420
          String sname = el.getSimpleName().toString();
          if(sname.equals(this.member)){
            this.handle = TreePathHandle.create(path, info);
            variableElement = el;
            if (findUsages) {
              usagesPositions = new ArrayList<Integer>();
            }
          }
        }
      }
    }
  }
  if (findUsages) {
    super.visitClass(t, v);
  }
  return null;
}

代码示例来源:origin: org.netbeans.api/org-netbeans-modules-java-source-base

public TreePath resolve(CompilationInfo compilationInfo) throws IllegalArgumentException {
  TreePath p = parent.resolve(compilationInfo);
  if (p == null) return null;
  List<Tree> children = listChildren(p.getLeaf());
  if (index < children.size()) {
    Tree t = children.get(index);
    if (t.getKind() == kind) {
      return new TreePath(p, t);
    }
  }
  return null;
}

代码示例来源:origin: uber/NullAway

final UnderlyingAST ast;
final ProcessingEnvironment env = key.environment();
if (codePath.getLeaf() instanceof LambdaExpressionTree) {
 LambdaExpressionTree lambdaExpressionTree =
   (LambdaExpressionTree) codePath.getLeaf();
 ast = new UnderlyingAST.CFGLambda(lambdaExpressionTree);
 bodyPath = new TreePath(codePath, lambdaExpressionTree.getBody());
} else if (codePath.getLeaf() instanceof MethodTree) {
 MethodTree method = (MethodTree) codePath.getLeaf();
 ClassTree enclClass = ASTHelpers.findEnclosingNode(codePath, ClassTree.class);
    "trying to compute CFG for method " + method + ", which has no body");
 bodyPath = new TreePath(codePath, body);
} else {

代码示例来源:origin: org.netbeans.api/org-netbeans-modules-java-source-base

private Element getImportedElement(CompilationUnitTree cut, ImportTree imp) {
  Trees trees = copy.getTrees();
  Tree qualIdent = imp.getQualifiedIdentifier();        
  if (qualIdent.getKind() != Tree.Kind.MEMBER_SELECT) {
    Element element = trees.getElement(TreePath.getPath(cut, qualIdent));
    if (element == null) {
      String fqn = qualIdent.toString();
    Element element = trees.getElement(TreePath.getPath(cut, ((MemberSelectTree)qualIdent).getExpression()));
    if (element == null)
      element = getElementByFQN(((MemberSelectTree)qualIdent).getExpression().toString());
    Element parent = trees.getElement(TreePath.getPath(cut, ((MemberSelectTree)qualIdent).getExpression()));
    if (parent == null)
      parent = getElementByFQN(((MemberSelectTree)qualIdent).getExpression().toString());
    if (parent != null && (parent.getKind().isClass() || parent.getKind().isInterface())) {
      Scope s = trees.getScope(new TreePath(cut));
      for (Element e : parent.getEnclosedElements()) {
        if (name == e.getSimpleName() && e.getModifiers().contains(Modifier.STATIC) && trees.isAccessible(s, e, (DeclaredType)parent.asType()))
    found = new TreePath(new TreePath(new TreePath(cut), imp), qualIdent);
  Element element = trees.getElement(found);

代码示例来源:origin: org.netbeans.modules/org-netbeans-modules-java-editor-base

@Override
public Void visitTypeCast(TypeCastTree tree, EnumSet<UseTypes> d) {
  Tree expr = tree.getExpression();
  
  if (expr.getKind() == Kind.IDENTIFIER) {
    handlePossibleIdentifier(new TreePath(getCurrentPath(), expr), EnumSet.of(UseTypes.READ));
  }
  
  Tree cast = tree.getType();
  
  if (cast.getKind() == Kind.IDENTIFIER) {
    handlePossibleIdentifier(new TreePath(getCurrentPath(), cast), EnumSet.of(UseTypes.READ));
  }
  
  super.visitTypeCast(tree, d);
  return null;
}

代码示例来源:origin: org.netbeans.modules/org-netbeans-modules-java-completion

@Override
public Boolean visitAssignment(AssignmentTree tree, Element e) {
  return e == trees.getElement(new TreePath(getCurrentPath(), tree.getVariable()))
      ? Boolean.TRUE : super.visitAssignment(tree, e);
}

代码示例来源:origin: org.netbeans.modules/org-netbeans-modules-java-editor-base

@Override
public Boolean visitMethodInvocation(MethodInvocationTree tree, Stack<Tree> d) {
  Element el = info.getTrees().getElement(new TreePath(getCurrentPath(), tree.getMethodSelect()));
  
  if (el == null) {
    System.err.println("Warning: decl == null");
    System.err.println("tree=" + tree);
  }
  
  if (el != null && el.getKind() == ElementKind.METHOD) {
    for (TypeMirror m : ((ExecutableElement) el).getThrownTypes()) {
      addToExceptionsMap(m, tree);
    }
  }
  
  super.visitMethodInvocation(tree, d);
  return null;
}

代码示例来源:origin: org.netbeans.modules/org-netbeans-modules-java-completion

private void insideBinaryTree(Env env) throws IOException {
  int offset = env.getOffset();
  TreePath path = env.getPath();
  BinaryTree bi = (BinaryTree) path.getLeaf();
  SourcePositions sourcePositions = env.getSourcePositions();
  CompilationUnitTree root = env.getRoot();
      controller.toPhase(Phase.RESOLVED);
      TypeMirror tm = last.token().id() == JavaTokenId.AMP
          ? controller.getTrees().getTypeMirror(new TreePath(path, bi.getLeftOperand())) : null;
      if (tm != null && tm.getKind() == TypeKind.DECLARED) {
        env.addToExcludes(((DeclaredType) tm).asElement());

相关文章

微信公众号

最新文章

更多