xapi.source.impl.DeclaredMemberFilter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xapi-dev Show documentation
Show all versions of xapi-dev Show documentation
Everything needed to run a comprehensive dev environment.
Just type X_ and pick a service from autocomplete;
new dev modules will be added as they are built.
The only dev service not included in the uber jar is xapi-dev-maven,
as it includes all runtime dependencies of maven, adding ~4 seconds to build time,
and 6 megabytes to the final output jar size (without xapi-dev-maven, it's ~1MB).
The newest version!
package xapi.source.impl;
import java.util.Iterator;
import xapi.source.api.IsMember;
import xapi.source.api.IsType;
public class DeclaredMemberFilter implements Iterable {
private final Iterable iter;
private final IsType owner;
private final class Itr implements Iterator {
Iterator i = iter.iterator();
Member next;
@Override
public boolean hasNext() {
if (next != null)
return true;
while (i.hasNext()) {
next = i.next();
if (next.getEnclosingType().getQualifiedName().equals(owner.getQualifiedName()))
return true;
}
next = null;
return false;
}
@Override
public Member next() {
try {
return next;
} finally {
next = null;
}
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
}
public DeclaredMemberFilter(Iterable iter, IsType owner) {
this.iter = iter;
this.owner = owner;
}
@Override
public Iterator iterator() {
return new Itr();
}
}