package ru.csu.stan.java.ast.nodes.handlers;
import java.util.LinkedList;
import java.util.List;
import ru.csu.stan.java.ast.core.TreeWalker;
import com.sun.tools.javac.tree.JCTree;
import com.sun.tools.javac.tree.JCTree.JCClassDecl;
public class JCClassDeclHandler extends JCTreeHandler {
public JCClassDeclHandler(TreeWalker walker) {
super(walker);
}
@Override
protected void execute(JCTree node) {
JCClassDecl decl = JCClassDecl.class.cast(node);
walker.handle(decl.name, "nodename.name");
walker.handle(decl.mods, "nodename.modifiers");
// generics
walker.handle(decl.typarams, "generics");
List<JCTree> extendsList = new LinkedList<JCTree>();
if (decl.extending != null)
extendsList.add(decl.extending);
walker.handle(extendsList, "extends");
walker.handle(decl.implementing, "implements");
walker.handle(decl.defs, "body");
walker.handle(decl.sym, "nodename.symbol");
}
}