package enterpriseapp.ui.crud; import com.vaadin.data.Item; import com.vaadin.data.util.BeanContainer; import enterpriseapp.hibernate.dto.Dto; /** * Container of Dto objects. * * @author Alejandro Duarte. * * @param <T> Dto concrete class. */ public class EntitySetContainer<T extends Dto> extends BeanContainer<Dto, T> { private static final long serialVersionUID = 1L; protected final Class<T> type; public EntitySetContainer(Class<T> type) { super(type); this.type = type; } @SuppressWarnings("unchecked") @Override public Item addItem(Object itemId) { Dto dto = null; try { if(itemId == null) { dto = (Dto) type.newInstance(); } else { dto = (Dto) itemId; } } catch (InstantiationException e) { throw new RuntimeException(e); } catch (IllegalAccessException e) { throw new RuntimeException(e); } return addItem(dto, (T) dto); } }