@Override public final DatasetAdmin getAdmin(DatasetContext datasetContext, DatasetSpecification spec, ClassLoader classLoader) throws IOException { if (1 == delegates.size()) { // for a single delegate, we don't need a composite admin return getAdmin(datasetContext, delegates.keySet().iterator().next(), spec, classLoader); } Map<String, DatasetAdmin> admins = new HashMap<>(); for (String name : this.delegates.keySet()) { admins.put(name, getAdmin(datasetContext, name, spec, classLoader)); } return new CompositeDatasetAdmin(admins); }