(Imported from Google Code)
Currently, the Component Builder framework automatically creates empty child Builders if null, or an empty List of Builders, but callers must still add initial Builders into the Lists before working with them in a form UI.
It would be more flexible if all the Lists in the Builders used a lazy list instantiation approach so listed components could be added/removed from a web page. For example,
This code should automatically create an Identifier.Builder in slot 0 and 1 if slot 1 is currently null.
Consider use of the commons-collections framework. Or, if that is too much overkill, do a custom implementation.
Rev 357 adds the utility class. All that's left is to incorporate it into all of the Builder classes.
Rev 358 incorporates the LazyList into the Builders. Two new Builder classes were required to make this work:
ExtensibleAttributes.AttributeBuilder (for XOM Attributes)
Position.DoubleBuilder (for Java Doubles)
Because these two classes didn't have no-arg constructors, they couldn't just drop directly into the LazyList without another layer.