package com.netifera.platform.net.tools.auth; import java.util.Iterator; import com.netifera.platform.api.iterables.IndexedIterable; import com.netifera.platform.api.iterables.RandomIterator; import com.netifera.platform.api.iterables.SequentialIterator; import com.netifera.platform.net.services.credentials.UsernameAndPassword; public class UsernameAndPasswordList implements IndexedIterable<UsernameAndPassword> { private static final long serialVersionUID = 1206032843239407999L; IndexedIterable<String> usernames; IndexedIterable<String> passwords; public UsernameAndPasswordList(IndexedIterable<String> usernames, IndexedIterable<String> passwords) { this.usernames = usernames; this.passwords = passwords; } public UsernameAndPassword itemAt(int index) { return new UsernameAndPassword( usernames.itemAt(index / passwords.itemCount()), passwords.itemAt(index % passwords.itemCount())); } public int itemCount() { return usernames.itemCount() * passwords.itemCount(); } public Iterator<UsernameAndPassword> iterator() { return new SequentialIterator<UsernameAndPassword>(this); } public Iterator<UsernameAndPassword> randomIterator() { return new RandomIterator<UsernameAndPassword>(this); } }