package ru.csu.stan.java.ast.core; import java.util.List; import javax.lang.model.type.TypeKind; import javax.tools.JavaFileObject; import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.Type; import com.sun.tools.javac.tree.JCTree; import com.sun.tools.javac.util.Name; /** * Интерфейс, описывающий поситителя, обходящего дерево. * */ public interface TreeWalker { /** * Обработка "символа". */ void handle(Symbol symbol, String innerName); /** * Обработка "типа". */ void handle(Type type, String innerName); /** * Обработка "имени" - внутренней строки компилятора. */ void handle(Name nameElement, String innerName); /** * Обработка узла AST. */ void handle(JCTree node, String innerName); /** * Обработка узла AST и передаваемого имени по отдельности. */ void handle(JCTree node, String innerName, boolean separateName); /** * Обработка списка узлов AST. */ void handle(List<? extends JCTree> nodesList, String innerName); /** * Обработка флагов. */ void handleFlags(long flags); /** * Обработка примитивного типа. */ void handlePrimitiveType(TypeKind typeKind); /** * Обработка Java-файла с исходным кодом. */ void handleSourceFile(JavaFileObject javaFile); }