import java.util.Vector; import java.util.StringTokenizer; import java.util.Iterator; import java.util.NoSuchElementException; /** Klassen implementerar en iterator mot en vektor med bildata. Den ska senare ersättas med en iterator mot ett databas-ResultSet med bildata. */ public class stub_iterator_c implements Iterator { /** Konstruktor. @param bil_vektor Vektor med bil_record_c-data som det ska itereras över */ public stub_iterator_c( Vector bil_vektor ) { this.bil_vektor = bil_vektor; this.bil_index = -1; } /** Ska anropas innan anrop till next(). @return true: det finns poster kvar, false: slut på poster */ public boolean hasNext() { if (( this.bil_vektor == null ) || ( this.bil_index + 1 >= this.bil_vektor.size() ) ) { this.bil_record = null; return false; //////////////// } this.bil_record = new bil_record_c(); this.bil_index++; return true; } /** Returnerar näst bilpost. @return Bilpost på bil_record_c-format. Kastar NoSuchElementException om det inte finns någon mer post. */ public Object next() throws NoSuchElementException { if ( this.bil_record == null ) { throw new NoSuchElementException( "stub_iterator_c" ); ///////////////////////////////////////////////////////// } String bilbuf = (String)this.bil_vektor.elementAt( this.bil_index ); StringTokenizer extraktor = new StringTokenizer( bilbuf, "," ); this.bil_record.regnr = extraktor.nextToken(); this.bil_record.marke = extraktor.nextToken(); this.bil_record.ar = new Integer( extraktor.nextToken() ).intValue(); this.bil_record.nypris = new Integer( extraktor.nextToken() ).intValue(); this.bil_record.ok = true; return this.bil_record; } /** Tar bort aktuell bilpost. */ public void remove() { this.bil_vektor.removeElementAt( this.bil_index ); } // Privata instansvariabler private Vector bil_vektor; private int bil_index; private bil_record_c bil_record; } // stub_iterator_c