selectionvalidationvisitor.java

来自「Python Development Environment (Python I」· Java 代码 · 共 43 行

JAVA
43
字号
package org.python.pydev.refactoring.ast.visitors.selection;

import org.python.pydev.parser.jython.SimpleNode;
import org.python.pydev.parser.jython.ast.Break;
import org.python.pydev.parser.jython.ast.ClassDef;
import org.python.pydev.parser.jython.ast.Continue;
import org.python.pydev.parser.jython.ast.FunctionDef;
import org.python.pydev.parser.jython.ast.Import;
import org.python.pydev.parser.jython.ast.ImportFrom;
import org.python.pydev.parser.jython.ast.Pass;
import org.python.pydev.parser.jython.ast.Return;
import org.python.pydev.parser.jython.ast.VisitorBase;
import org.python.pydev.parser.jython.ast.Yield;

public class SelectionValidationVisitor extends VisitorBase {

	private Class[] invalidNode = new Class[] { Break.class, ClassDef.class, Continue.class, FunctionDef.class, ImportFrom.class,
			Import.class, Pass.class, Return.class, Yield.class };

	@Override
	public void traverse(SimpleNode node) throws Exception {
		if (node != null) {
			validateNode(node);
			node.traverse(this);
		}
	}

	private void validateNode(SimpleNode node) throws SelectionException {
		for (Class clazz : invalidNode) {
			if (clazz == node.getClass()) {
				throw new SelectionException(node);
			}
		}
	}

	@Override
	protected Object unhandled_node(SimpleNode node) throws Exception {
		// visitorbase will call traverse
		return null;
	}

}

⌨️ 快捷键说明

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