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

com.tacitknowledge.jcr.testing.impl.PropertyIteratorAdapter Maven / Gradle / Ivy

package com.tacitknowledge.jcr.testing.impl;

import org.apache.commons.collections.IteratorUtils;

import javax.jcr.Property;
import javax.jcr.PropertyIterator;
import java.util.Iterator;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: alayouni
 * Date: 10/21/13
 * Time: 10:59 AM
 * To change this template use File | Settings | File Templates.
 */
public class PropertyIteratorAdapter implements PropertyIterator {
	private int position;
	private Iterator iterator;
	private List propertyList;

	public PropertyIteratorAdapter(Iterator iterator) {
		this.propertyList = IteratorUtils.toList(iterator);
		this.iterator = propertyList.iterator();
		this.position = 0;
	}

	@Override
	public Property nextProperty() {
		Property next = iterator.next();
		removeFromList(1);
		return next;
	}

	@Override
	public void skip(long skipNum) {
		removeFromList((int) skipNum);
		iterator = propertyList.iterator();
	}

	private void removeFromList(int skipNum) {
		int size = propertyList.size();
		propertyList = propertyList.subList(skipNum, size);
		position += skipNum;
	}

	@Override
	public long getSize() {
		return propertyList.size();
	}

	@Override
	public long getPosition() {
		return position;
	}

	@Override
	public boolean hasNext() {
		return iterator.hasNext();
	}

	@Override
	public Property next() {
		Property next = iterator.next();
		removeFromList(1);
		return next;
	}

	@Override
	public void remove() {
		removeFromList(1);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy