From df82d111b0f41daafc215124bde1fceb595d0b3b Mon Sep 17 00:00:00 2001 From: Henri Sara Date: Wed, 2 Mar 2011 08:51:59 +0000 Subject: Minor refactoring in AbstractBeanContainer: eliminate duplicated code for bean id resolving svn changeset:17538/svn branch:6.6 --- .../vaadin/data/util/AbstractBeanContainer.java | 41 +++++++++++----------- 1 file changed, 20 insertions(+), 21 deletions(-) (limited to 'src/com/vaadin/data/util') 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 extends */ protected BeanItem 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 extends protected BeanItem 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 extends */ protected BeanItem 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 extends */ protected void addAll(Collection 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++; } @@ -871,6 +854,22 @@ public abstract class AbstractBeanContainer extends filterAll(); } + /** + * 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. -- cgit v1.2.3