All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.xtext.nodemodel.impl.BasicNodeIterable Maven / Gradle / Ivy

package org.eclipse.xtext.nodemodel.impl;

import org.eclipse.xtext.nodemodel.BidiIterable;
import org.eclipse.xtext.nodemodel.BidiIterator;
import org.eclipse.xtext.nodemodel.util.ReversedBidiIterator;

/**
 * @author Sebastian Zarnekow - Initial contribution and API
 * @noextend This class is not intended to be subclassed by clients.
 */
public class BasicNodeIterable implements BidiIterable {
	private final AbstractNode startWith;

	protected BasicNodeIterable(AbstractNode startWith) {
		this.startWith = startWith;
	}

	public BidiIterator iterator() {
		return new BasicNodeIterator(startWith);
	}
	
	public BidiIterable reverse() {
		return new BidiIterable() {

			public BidiIterator iterator() {
				BidiIterator delegate = BasicNodeIterable.this.iterator(); 
				return new ReversedBidiIterator(delegate);
			}

			public BidiIterable reverse() {
				return BasicNodeIterable.this;
			}
		};
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy