@Override protected Iterator<? extends Component> renderIterator() { return IteratorUtils.transformedIterator(getList().iterator(), new Transformer<T, ListSetItem<?>>() { @Override public ListSetItem<?> transform(T el) { ListSetItem<?> component = elementToComponent.get(el); if(component==null) throw new IllegalStateException("could not find element '"+el+"' on computed map"); return component; } }); }