+ /**
+ * Get the recursive state of the current object, i.e., its children. It
+ * represents the full state information about this object's children. It
+ * does not check the state of the object itself.
+ *
+ * @return a {@link String} representing the current content state of this
+ * object, i.e., its children
+ */
+ public String getContentState() {
+ StringBuilder builder = new StringBuilder();
+
+ for (E child : this) {
+ builder.append(child.getContentState());
+ }
+
+ return StringUtils.getHash(builder.toString());
+ }
+