package org.netbeans.gradle.project.lookups;
import java.util.Collection;
import java.util.List;
import org.jtrim.utils.ExceptionHelper;
import org.openide.util.Lookup;
import org.openide.util.lookup.ProxyLookup;
public final class DynamicLookup extends ProxyLookup {
private final Lookup view;
public DynamicLookup(Lookup... lookups) {
super(lookups);
this.view = new DelegateLookup(this);
}
public DynamicLookup() {
this.view = new DelegateLookup(this);
}
public Lookup getUnmodifiableView() {
return view;
}
public void replaceLookups(Lookup... lookups) {
super.setLookups(lookups);
}
public void replaceLookups(List<Lookup> lookups) {
super.setLookups(lookups.toArray(new Lookup[lookups.size()]));
}
public static Lookup viewLookup(final Lookup lookup) {
ExceptionHelper.checkNotNullArgument(lookup, "lookup");
return new Lookup() {
@Override
public <T> Item<T> lookupItem(Template<T> template) {
return lookup.lookupItem(template);
}
@Override
public <T> Result<T> lookupResult(Class<T> clazz) {
return lookup.lookupResult(clazz);
}
@Override
public <T> Collection<? extends T> lookupAll(Class<T> clazz) {
return lookup.lookupAll(clazz);
}
@Override
public <T> T lookup(Class<T> arg0) {
return lookup.lookup(arg0);
}
@Override
public <T> Result<T> lookup(Template<T> arg0) {
return lookup.lookup(arg0);
}
};
}
}