nameiterator.java

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

JAVA
51
字号
/*
 * Created on Jun 8, 2006
 */
package org.python.pydev.parser.visitors.scope;

import java.util.Iterator;
import java.util.List;

import org.python.pydev.parser.jython.ast.Name;
import org.python.pydev.parser.jython.ast.NameTok;

/**
 * Iterator the passes the nodes getting the subclasses of Name and NameTok
 */
public class NameIterator implements Iterator<ASTEntry> {

    private ASTEntry next = null;
    private Iterator<ASTEntry> nodesIt;

    public NameIterator(List<ASTEntry> nodes) {
        this.nodesIt = nodes.iterator();
        setNext();
    }

    private void setNext() {
        while(nodesIt.hasNext()){
            ASTEntry entry = nodesIt.next();
            if(entry.node instanceof Name || entry.node instanceof NameTok){
                next = entry;
                return;
            }
        }
        next = null;
    }

    public boolean hasNext() {
        return next != null;
    }

    public ASTEntry next() {
        ASTEntry n = next;
        setNext();
        return n;
    }

    public void remove() {
        throw new RuntimeException("Not Impl");
    }

}

⌨️ 快捷键说明

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