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