]> source.dussan.org Git - vaadin-framework.git/commitdiff
Clarified why hashCode/equals must be implemented in a certain way
authorArtur Signell <artur.signell@itmill.com>
Tue, 11 May 2010 06:13:55 +0000 (06:13 +0000)
committerArtur Signell <artur.signell@itmill.com>
Tue, 11 May 2010 06:13:55 +0000 (06:13 +0000)
svn changeset:13136/svn branch:6.4

src/com/vaadin/data/util/BeanItemContainer.java

index b39929ff21ad34306aeef2b60ef91e7662683083..6d62e892ea83e18f9c13543066d98886d1523c6f 100644 (file)
@@ -37,11 +37,13 @@ import com.vaadin.data.Property.ValueChangeNotifier;
  * </p>
  * 
  * <p>
- * BeanItemContainer uses the beans themselves as identifiers. For this reason,
- * they should implement {@link Object#equals(Object)} and
- * {@link Object#hashCode()}. The {@link Object#equals(Object)} implementation
- * should be stable and not depend on the contents of the bean as this may cause
- * problems when the bean is updated.
+ * BeanItemContainer uses the beans themselves as identifiers. The
+ * {@link Object#hashCode()} of a bean is used when storing and looking up beans
+ * so it must not change during the lifetime of the bean. Typically this
+ * restricts the implementation of {@link Object#equals(Object)} as well so it
+ * does not depend on the contents of the bean. This is not strictly needed but
+ * the contract between {@code equals()} and {@code hashCode()} must be
+ * fulfilled.
  * </p>
  * 
  * <p>