/* * ListIterator.cs * Copyright (c) 2009 kbinani * * This file is part of Boare.Cadencii. * * Boare.Cadencii is free software; you can redistribute it and/or * modify it under the terms of the GPLv3 License. * * Boare.Cadencii is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ using System; using System.Collections.Generic; namespace bocoree { public class ListIterator : Iterator { private List m_list; private int m_pos; public ListIterator( Vector list ) { m_list = new List(); int c = list.size(); for( int i = 0; i < c; i++ ){ m_list.Add( list.get( i ) ); } m_pos = -1; } public ListIterator( List list ) { m_list = list; m_pos = -1; } public Boolean hasNext() { if ( m_list != null && 0 <= m_pos + 1 && m_pos + 1 < m_list.Count ) { return true; } else { return false; } } public Object next() { if ( m_list == null ) { return null; } m_pos++; return m_list[m_pos]; } public void remove() { m_list.RemoveAt( m_pos ); } } }