package spimedb.server;
import io.undertow.server.handlers.resource.Resource;
import io.undertow.server.handlers.resource.ResourceChangeListener;
import io.undertow.server.handlers.resource.ResourceManager;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* Created by me on 4/1/17.
*/
public class ResourceManagerChain implements ResourceManager {
final List<ResourceManager> managers = new CopyOnWriteArrayList<>();
public ResourceManagerChain() {
}
public void add(ResourceManager a) {
managers.add(a);
}
@Override
public Resource getResource(String p) {
for (int i = 0, managersSize = managers.size(); i < managersSize; i++) {
ResourceManager x = managers.get(i);
try {
Resource y = x.getResource(p);
if (y != null)
return y;
} catch (IOException ignored) {
//ignore
}
}
return null;
}
@Override
public boolean isResourceChangeListenerSupported() {
return false;
}
@Override
public void registerResourceChangeListener(ResourceChangeListener listener) {
}
@Override
public void removeResourceChangeListener(ResourceChangeListener listener) {
}
@Override
public void close() throws IOException {
managers.forEach(m -> {
try {
m.close();
} catch (IOException e) {
}
});
}
}