Responsible for component instance creation and verification.
Component is immutable. All update functions such as the ones started with "with" are functional-update, which means a new Component object is created to reflect the change, while the state of the old object remains the same.
Component is the core of Yan in the sense that most customizations of instance creation strategy can be done by combining existing Component objects.
This is called a "combinator" approach where complex components can be constructed by combining simpler components who may be combinations of yet simpler components.
Common combinators are included in this class to make the syntax simpler for combining components. For example:
comp1.withArguments(args) rather than Components.withArguments(comp1, args)
Codehaus.org.
@author Ben Yu
@see Components
@see jfun.yan.Monad