The Codelet Container Model Trail
This section will explain the Codelet Container Model, in which the Codelet Container holds a list of Codelets.
The Codelet Container
The Codelet Container holds a list of Codelets, and all those Codelets share the same inputs, outputs and broadcasts. When a Codelet is added to the Container, its inputs, outputs and broadcasts are added to it, so all Codelets will have the same inputs, outputs and broadcasts. When the Codelet is removed, the inputs, outputs and broadcasts from this Codelet are removed from the Container. It is also possible to create a Codelet Container with inputs, outputs and broadcasts defined, all added Codelets will use these as well.

Figure 1: Codelet Container model
Why is it necessary?
This feature was developed to make it easier to create a lot of Codelets of the same type, meaning, without the necessity to repeat the same inputs, outputs and broadcast to all of them.
How to use it?
First, define your Codelet:
You may create an empty CodeletContainer and add the Codelets later:
Or you may create a CodeletContainer with a list of Codelets:
And that's it! When the CodeletContainer codeletContainer has a call to its method setI(Object info), all the Codelets within the codeletContainer will have its own setI(Object info) fired.