001 package railo.runtime.com; 002 003 import java.util.Iterator; 004 005 import com.jacob.com.EnumVariant; 006 007 /** 008 * MUST this is a value iterator instead of a key iterator 009 * 010 */ 011 public final class COMKeyWrapperIterator implements Iterator { 012 013 private EnumVariant enumVariant; 014 private COMObject wrapper; 015 016 /** 017 * @param wrapper 018 */ 019 public COMKeyWrapperIterator(COMObject wrapper) { 020 this.enumVariant=new EnumVariant(wrapper.getDispatch()); 021 this.wrapper=wrapper; 022 } 023 024 /** 025 * @see java.util.Iterator#remove() 026 */ 027 public void remove() { 028 enumVariant.safeRelease(); 029 } 030 031 /** 032 * @see java.util.Iterator#hasNext() 033 */ 034 public boolean hasNext() { 035 return enumVariant.hasMoreElements(); 036 } 037 038 /** 039 * @see java.util.Iterator#next() 040 */ 041 public Object next() { 042 return COMUtil.toObject(wrapper,enumVariant.Next(),"",null); 043 } 044 }