1/* 2 * reserved comment block 3 * DO NOT REMOVE OR ALTER! 4 */ 5/* 6 * Licensed to the Apache Software Foundation (ASF) under one or more 7 * contributor license agreements. See the NOTICE file distributed with 8 * this work for additional information regarding copyright ownership. 9 * The ASF licenses this file to You under the Apache License, Version 2.0 10 * (the "License"); you may not use this file except in compliance with 11 * the License. You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 */ 21 22package com.sun.org.apache.xalan.internal.xsltc.dom; 23 24import com.sun.org.apache.xml.internal.dtm.DTMAxisIterator; 25import com.sun.org.apache.xml.internal.dtm.ref.DTMAxisIteratorBase; 26 27/** 28 * A ClonedNodeListIterator is returned by the cloneIterator() method 29 * of a CachedNodeListIterator. Its next() method retrieves the nodes from 30 * the cache of the CachedNodeListIterator. 31 */ 32public final class ClonedNodeListIterator extends DTMAxisIteratorBase { 33 34 /** 35 * Source for this iterator. 36 */ 37 private CachedNodeListIterator _source; 38 private int _index = 0; 39 40 public ClonedNodeListIterator(CachedNodeListIterator source) { 41 _source = source; 42 } 43 44 public void setRestartable(boolean isRestartable) { 45 //_isRestartable = isRestartable; 46 //_source.setRestartable(isRestartable); 47 } 48 49 public DTMAxisIterator setStartNode(int node) { 50 return this; 51 } 52 53 public int next() { 54 return _source.getNode(_index++); 55 } 56 57 public int getPosition() { 58 return _index == 0 ? 1 : _index; 59 } 60 61 public int getNodeByPosition(int pos) { 62 return _source.getNode(pos); 63 } 64 65 public DTMAxisIterator cloneIterator() { 66 return _source.cloneIterator(); 67 } 68 69 public DTMAxisIterator reset() { 70 _index = 0; 71 return this; 72 } 73 74 public void setMark() { 75 _source.setMark(); 76 } 77 78 public void gotoMark() { 79 _source.gotoMark(); 80 } 81} 82