1 22 23 package org.xquark.mediator.DOMUtils; 24 25 import java.util.*; 26 27 public class SortedKeyMap extends TreeMap { 28 private static final String RCSRevision = "$Revision: 1.1 $"; 32 private static final String RCSName = "$Name: $"; 33 34 private Tuple next = null; 35 private ArrayList currentlist = null; 36 private int currentindex = -1; 37 private Iterator iterator = null; 38 39 public void makeIterator() { 40 iterator = this.entrySet().iterator(); 41 Map.Entry mapentry = (Map.Entry)iterator.next(); 42 currentlist = (ArrayList)mapentry.getValue(); 43 currentindex = 0; 44 next = (Tuple) currentlist.get(currentindex); 45 } 46 47 public Tuple next() { 48 if (next != null || hasNext()) { 49 Tuple retval = next; 50 next = null; 51 return retval; 52 } 53 return null; 54 } 55 56 public boolean hasNext() { 57 if (iterator == null) 58 return false; 59 if (next != null) 60 return true; 61 if (currentindex < currentlist.size() - 1) { 62 currentindex++; 63 next = (Tuple) currentlist.get(currentindex); 64 return true; 65 } 66 if (!iterator.hasNext()) { 67 currentlist = null; 68 iterator = null; 69 return false; 70 } 71 Map.Entry mapentry = (Map.Entry)iterator.next(); 72 currentlist = (ArrayList)mapentry.getValue(); 73 currentindex = 0; 74 next = (Tuple) currentlist.get(currentindex); 75 return true; 76 } 77 } 78 | Popular Tags |