⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classcodevisitorsupport.java

📁 大名鼎鼎的java动态脚本语言。已经通过了sun的认证
💻 JAVA
字号:
/* * ClassCodeVisitorSupport.java created on 14.12.2005 * */package org.codehaus.groovy.ast;import java.util.Iterator;import java.util.List;import org.codehaus.groovy.ast.expr.Expression;import org.codehaus.groovy.ast.stmt.AssertStatement;import org.codehaus.groovy.ast.stmt.BlockStatement;import org.codehaus.groovy.ast.stmt.BreakStatement;import org.codehaus.groovy.ast.stmt.CaseStatement;import org.codehaus.groovy.ast.stmt.CatchStatement;import org.codehaus.groovy.ast.stmt.ContinueStatement;import org.codehaus.groovy.ast.stmt.DoWhileStatement;import org.codehaus.groovy.ast.stmt.ExpressionStatement;import org.codehaus.groovy.ast.stmt.ForStatement;import org.codehaus.groovy.ast.stmt.IfStatement;import org.codehaus.groovy.ast.stmt.ReturnStatement;import org.codehaus.groovy.ast.stmt.Statement;import org.codehaus.groovy.ast.stmt.SwitchStatement;import org.codehaus.groovy.ast.stmt.SynchronizedStatement;import org.codehaus.groovy.ast.stmt.ThrowStatement;import org.codehaus.groovy.ast.stmt.TryCatchStatement;import org.codehaus.groovy.ast.stmt.WhileStatement;import org.codehaus.groovy.control.SourceUnit;import org.codehaus.groovy.control.messages.SyntaxErrorMessage;import org.codehaus.groovy.syntax.SyntaxException;public abstract class ClassCodeVisitorSupport extends CodeVisitorSupport implements GroovyClassVisitor {        public void visitClass(ClassNode node) {        visitAnnotations(node);        node.visitContents(this);        List list = node.getObjectInitializerStatements();        for (Iterator iter = list.iterator(); iter.hasNext();) {            Statement element = (Statement) iter.next();            element.visit(this);        }    }        public void visitAnnotations(AnnotatedNode node) {            }        protected void visitClassCodeContainer(Statement code) {        if (code != null) code.visit(this);    }    protected void visitConstructorOrMethod(MethodNode node, boolean isConstructor) {        Statement code = node.getCode();        visitClassCodeContainer(code);    }        public void visitConstructor(ConstructorNode node) {        visitConstructorOrMethod(node,true);            }    public void visitMethod(MethodNode node) {        visitConstructorOrMethod(node,false);    }    public void visitField(FieldNode node) {        Expression init = node.getInitialExpression();        if (init != null) init.visit(this);    }        public void visitProperty(PropertyNode node) {        Statement statement = node.getGetterBlock();        visitClassCodeContainer(statement);                statement = node.getSetterBlock();        visitClassCodeContainer(statement);                Expression init = node.getInitialExpression();        if (init != null) init.visit(this);    }    protected void addError(String msg, ASTNode expr) {        int line = expr.getLineNumber();        int col = expr.getColumnNumber();        SourceUnit source = getSourceUnit();        source.getErrorCollector().addErrorAndContinue(          new SyntaxErrorMessage(new SyntaxException(msg + '\n', line, col), source)        );    }        abstract protected SourceUnit getSourceUnit();        protected void visitStatement(Statement statement) {}        public void visitAssertStatement(AssertStatement statement) {        visitStatement(statement);        super.visitAssertStatement(statement);    }        public void visitBlockStatement(BlockStatement block) {        visitStatement(block);        super.visitBlockStatement(block);    }        public void visitBreakStatement(BreakStatement statement) {        visitStatement(statement);        super.visitBreakStatement(statement);    }        public void visitCaseStatement(CaseStatement statement) {        visitStatement(statement);        super.visitCaseStatement(statement);    }        public void visitCatchStatement(CatchStatement statement) {        visitStatement(statement);        super.visitCatchStatement(statement);    }        public void visitContinueStatement(ContinueStatement statement) {        visitStatement(statement);        super.visitContinueStatement(statement);    }        public void visitDoWhileLoop(DoWhileStatement loop) {        visitStatement(loop);        super.visitDoWhileLoop(loop);    }        public void visitExpressionStatement(ExpressionStatement statement) {        visitStatement(statement);        super.visitExpressionStatement(statement);    }        public void visitForLoop(ForStatement forLoop) {        visitStatement(forLoop);        super.visitForLoop(forLoop);    }        public void visitIfElse(IfStatement ifElse) {        visitStatement(ifElse);        super.visitIfElse(ifElse);    }        public void visitReturnStatement(ReturnStatement statement) {        visitStatement(statement);        super.visitReturnStatement(statement);    }        public void visitSwitch(SwitchStatement statement) {        visitStatement(statement);        super.visitSwitch(statement);    }        public void visitSynchronizedStatement(SynchronizedStatement statement) {        visitStatement(statement);        super.visitSynchronizedStatement(statement);    }        public void visitThrowStatement(ThrowStatement statement) {        visitStatement(statement);        super.visitThrowStatement(statement);    }        public void visitTryCatchFinally(TryCatchStatement statement) {        visitStatement(statement);        super.visitTryCatchFinally(statement);    }        public void visitWhileLoop(WhileStatement loop) {        visitStatement(loop);        super.visitWhileLoop(loop);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -