/*
* Copyright 2017 Graz University of Technology EAAF-Core Components has been developed in a
* cooperation between EGIZ, A-SIT Plus, A-SIT, and Graz University of Technology.
*
* Licensed under the EUPL, Version 1.2 or - as soon they will be approved by the European
* Commission - subsequent versions of the EUPL (the "Licence"); You may not use this work except in
* compliance with the Licence. You may obtain a copy of the Licence at:
* https://joinup.ec.europa.eu/news/understanding-eupl-v12
*
* Unless required by applicable law or agreed to in writing, software distributed under the Licence
* is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the Licence for the specific language governing permissions and limitations under
* the Licence.
*
* This product combines work with different licenses. See the "NOTICE" text file for details on the
* various modules and licenses. The "NOTICE" text file is part of the distribution. Any derivative
* works that you distribute must include a readable copy of the "NOTICE" text file.
*/
package at.gv.egiz.eaaf.core.impl.utils;
import java.util.ListIterator;
import org.w3c.dom.DOMException;
import org.w3c.dom.Node;
import org.w3c.dom.traversal.NodeFilter;
import org.w3c.dom.traversal.NodeIterator;
/**
* A NodeIterator
implementation based on a ListIterator
.
*
* @see java.util.ListIterator
* @see org.w3c.dom.traversal.NodeIterator
*
*/
public class NodeIteratorAdapter implements NodeIterator {
/** The ListIterator
to wrap. */
private final ListIterator nodeIterator;
/**
* Create a new NodeIteratorAdapter
.
*
* @param nodeIterator The ListIterator
to iterate over.
*/
public NodeIteratorAdapter(final ListIterator nodeIterator) {
this.nodeIterator = nodeIterator;
}
@Override
public Node getRoot() {
return null;
}
@Override
public int getWhatToShow() {
return NodeFilter.SHOW_ALL;
}
@Override
public NodeFilter getFilter() {
return null;
}
@Override
public boolean getExpandEntityReferences() {
return false;
}
@Override
public Node nextNode() throws DOMException {
if (nodeIterator.hasNext()) {
return (Node) nodeIterator.next();
}
return null;
}
@Override
public Node previousNode() throws DOMException {
if (nodeIterator.hasPrevious()) {
return (Node) nodeIterator.previous();
}
return null;
}
@Override
public void detach() {
}
}