diff options
Diffstat (limited to 'src/com/vaadin/data/util/AbstractBeanContainer.java')
-rw-r--r-- | src/com/vaadin/data/util/AbstractBeanContainer.java | 41 |
1 files changed, 20 insertions, 21 deletions
diff --git a/src/com/vaadin/data/util/AbstractBeanContainer.java b/src/com/vaadin/data/util/AbstractBeanContainer.java index 45b7df6535..c71bf565a5 100644 --- a/src/com/vaadin/data/util/AbstractBeanContainer.java +++ b/src/com/vaadin/data/util/AbstractBeanContainer.java @@ -753,14 +753,10 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends */ protected BeanItem<BEANTYPE> addBean(BEANTYPE bean) throws IllegalStateException, IllegalArgumentException { - if (beanIdResolver == null) { - throw new IllegalStateException( - "Bean item identifier resolver is required."); - } if (bean == null) { return null; } - IDTYPE itemId = beanIdResolver.getIdForBean(bean); + IDTYPE itemId = resolveBeanId(bean); if (itemId == null) { throw new IllegalArgumentException( "Resolved identifier for a bean must not be null"); @@ -790,14 +786,10 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends protected BeanItem<BEANTYPE> addBeanAfter(IDTYPE previousItemId, BEANTYPE bean) throws IllegalStateException, IllegalArgumentException { - if (beanIdResolver == null) { - throw new IllegalStateException( - "Bean item identifier resolver is required."); - } if (bean == null) { return null; } - IDTYPE itemId = beanIdResolver.getIdForBean(bean); + IDTYPE itemId = resolveBeanId(bean); if (itemId == null) { throw new IllegalArgumentException( "Resolved identifier for a bean must not be null"); @@ -825,14 +817,10 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends */ protected BeanItem<BEANTYPE> addBeanAt(int index, BEANTYPE bean) throws IllegalStateException, IllegalArgumentException { - if (beanIdResolver == null) { - throw new IllegalStateException( - "Bean item identifier resolver is required."); - } if (bean == null) { return null; } - IDTYPE itemId = beanIdResolver.getIdForBean(bean); + IDTYPE itemId = resolveBeanId(bean); if (itemId == null) { throw new IllegalArgumentException( "Resolved identifier for a bean must not be null"); @@ -854,14 +842,9 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends */ protected void addAll(Collection<? extends BEANTYPE> collection) throws IllegalStateException { - if (beanIdResolver == null) { - throw new IllegalStateException( - "Bean item identifier resolver is required."); - } - int idx = internalIndexOf(lastItemId()) + 1; for (BEANTYPE bean : collection) { - IDTYPE itemId = beanIdResolver.getIdForBean(bean); + IDTYPE itemId = resolveBeanId(bean); if (internalAddAt(idx, itemId, bean) != null) { idx++; } @@ -872,6 +855,22 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends } /** + * Use the bean resolver to get the identifier for a bean. + * + * @param bean + * @return resolved bean identifier, null if could not be resolved + * @throws IllegalStateException + * if no bean resolver is set + */ + protected IDTYPE resolveBeanId(BEANTYPE bean) { + if (beanIdResolver == null) { + throw new IllegalStateException( + "Bean item identifier resolver is required."); + } + return beanIdResolver.getIdForBean(bean); + } + + /** * Sets the resolver that finds the item id for a bean, or null not to use * automatic resolving. * |