class MultiSourceAdapter implements SourceAdapter {

	@Override
	public Iterator<ObjectNode> iterator() throws SourceAdapterException {
		List<ObjectNode> results = new ArrayList<>();

		ObjectNode resultNode = JsonNodeFactory.instance.objectNode();
		for (Map.Entry<String, SourceAdapter> entry : adapterMap.entrySet()) {
			String alias = entry.getKey();
			SourceAdapter adapter = entry.getValue();

			JsonNode adapterNode = JsonMapper.valueToTree(Lists.newArrayList(adapter.iterator()));
			resultNode.set(alias, adapterNode);
		}

		results.add(resultNode);
		return results.iterator();
	}

	@Inject public  MultiSourceAdapter(
		SourceAdapterFactory adapterFactory,
		@Assisted DataSource dataSource,
		@Assisted(SourceAdapterFactory.ARGUMENT_MULTI_SOURCE) ArrayList<LinkedHashMap<String, Object>> sourceAdapters,
		MetricRegistry registry);

}