@Override @SuppressWarnings("unchecked") public <T> T adapt(Class<T> type) { T result = super.adapt(type); if (result == null) { if (RepositoryStorage.class.isAssignableFrom(type)) { result = (T) storage; } else { for (XRepository delegate : delegates) { result = delegate.adapt(type); if (result != null) { break; } } } } return result; }