package org.etk.model.apt; import java.util.Iterator; import java.util.NoSuchElementException; import org.etk.model.apt.PackageNameIterator; class PackageNameIterator implements Iterator<String> { public static Iterable<String> with(final String packageName) { if (packageName == null) { throw new NullPointerException(); } return new Iterable<String>() { public Iterator<String> iterator() { return new PackageNameIterator(packageName); } }; } /** . */ private String packageName; PackageNameIterator(String packageName) { if (packageName == null) { throw new NullPointerException(); } this.packageName = packageName; } public boolean hasNext() { return packageName.lastIndexOf('.') != -1; } public String next() { String next = packageName; int pos = packageName.lastIndexOf('.'); if (pos == -1) { throw new NoSuchElementException(); } packageName = packageName.substring(0, pos); return next; } public void remove() { throw new UnsupportedOperationException(); } }