com.sun.source.tree.OpensTree#com.sun.source.tree.TreeVisitor源码实例Demo

下面列出了com.sun.source.tree.OpensTree#com.sun.source.tree.TreeVisitor 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: pro   文件: JavacModuleParser.java
public static void parse(Path moduleInfoPath, ModuleClassVisitor moduleClassVisitor) throws IOException {
  var compiler = ToolProvider.getSystemJavaCompiler();
  try(var fileManager = compiler.getStandardFileManager(null, null, null)) {
    var compilationUnits = fileManager.getJavaFileObjects(moduleInfoPath);
    var task = compiler.getTask(null, fileManager, null, null, null, compilationUnits);
    var javacTask = (JavacTask)task;
    var units = javacTask.parse();
    var unit = units.iterator().next();

    var moduleHandler = new ModuleHandler(moduleClassVisitor);
    var visitor = (TreeVisitor<?,?>)Proxy.newProxyInstance(TreeVisitor.class.getClassLoader(), new Class<?>[]{ TreeVisitor.class},
        (proxy, method, args) -> {
          ModuleHandler.METHOD_MAP
          .getOrDefault(method.getName(), (handler, node, v) -> { 
            throw new AssertionError("invalid node " + node.getClass());
          })
          .visit(moduleHandler, (Tree)args[0], (TreeVisitor<?,?>)proxy);
          return null;
        });

    unit.accept(visitor, null);
  }
}
 
源代码2 项目: netbeans   文件: FieldGroupTree.java
public <R, D> R accept(TreeVisitor<R, D> arg0, D arg1) {
    R ret = null;
    for (JCVariableDecl v : vars) {
        ret = v.accept(arg0, arg1);
    }
    return ret;
}
 
源代码3 项目: pro   文件: JavacModuleParser.java
@SuppressWarnings("static-method")
public void visitCompilationUnit(CompilationUnitTree node, TreeVisitor<?, ?> visitor) {
  for(var directive: node.getTypeDecls()) {
    if (!(directive instanceof ModuleTree)) {  // skip unnecessary nodes: imports, etc
      continue;
    }
    accept(visitor, directive);
  }
}
 
源代码4 项目: Refaster   文件: UEnhancedForLoop.java
@Override
public <R, D> R accept(TreeVisitor<R, D> visitor, D data) {
  return visitor.visitEnhancedForLoop(this, data);
}
 
源代码5 项目: annotation-tools   文件: Insertions.java
@Override
public <R, D> R accept(TreeVisitor<R, D> visitor, D data) {
  return visitor.visitParameterizedType(this, data);
}
 
源代码6 项目: java-n-IDE-for-Android   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitClass(this, d);
}
 
源代码7 项目: Refaster   文件: UForLoop.java
@Override
public <R, D> R accept(TreeVisitor<R, D> visitor, D data) {
  return visitor.visitForLoop(this, data);
}
 
源代码8 项目: java-n-IDE-for-Android   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitVariable(this, d);
}
 
源代码9 项目: Refaster   文件: UAnyOf.java
@Override
public <R, D> R accept(TreeVisitor<R, D> visitor, D data) {
  return expressions().get(0).accept(visitor, data);
}
 
源代码10 项目: javaide   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitIdentifier(this, d);
}
 
源代码11 项目: java-n-IDE-for-Android   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitDoWhileLoop(this, d);
}
 
源代码12 项目: javaide   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitArrayType(this, d);
}
 
源代码13 项目: java-n-IDE-for-Android   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitForLoop(this, d);
}
 
源代码14 项目: java-n-IDE-for-Android   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitEnhancedForLoop(this, d);
}
 
源代码15 项目: javaide   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitLiteral(this, d);
}
 
源代码16 项目: javaide   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitMethodInvocation(this, d);
}
 
源代码17 项目: java-n-IDE-for-Android   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitCase(this, d);
}
 
源代码18 项目: java-n-IDE-for-Android   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitSynchronized(this, d);
}
 
源代码19 项目: javaide   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitPrimitiveType(this, d);
}
 
源代码20 项目: java-n-IDE-for-Android   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitCatch(this, d);
}
 
源代码21 项目: Refaster   文件: UWhileLoop.java
@Override
public <R, D> R accept(TreeVisitor<R, D> visitor, D data) {
  return visitor.visitWhileLoop(this, data);
}
 
源代码22 项目: java-n-IDE-for-Android   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitIf(this, d);
}
 
源代码23 项目: java-n-IDE-for-Android   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitExpressionStatement(this, d);
}
 
源代码24 项目: Refaster   文件: UAssignOp.java
@Override
public <R, D> R accept(TreeVisitor<R, D> visitor, D data) {
  return visitor.visitCompoundAssignment(this, data);
}
 
源代码25 项目: java-n-IDE-for-Android   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitContinue(this, d);
}
 
源代码26 项目: java-n-IDE-for-Android   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitReturn(this, d);
}
 
源代码27 项目: Refaster   文件: UVariableDecl.java
@Override
public <R, D> R accept(TreeVisitor<R, D> visitor, D data) {
  return visitor.visitVariable(this, data);
}
 
源代码28 项目: java-n-IDE-for-Android   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitAssert(this, d);
}
 
源代码29 项目: java-n-IDE-for-Android   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitMethodInvocation(this, d);
}
 
源代码30 项目: java-n-IDE-for-Android   文件: JCTree.java
@Override
public <R, D> R accept(TreeVisitor<R, D> v, D d) {
    return v.visitNewClass(this, d);
}