The only that is required is to add a new entry in the mapping list to associate the newly created type of components to the qualified name of the class providing the implementation for this type. AlternativeAnnotation Obviously, mappings need to be unique, i.e. a given type name can only map to a single implementation class. However, if more specific semantics is needed, it might be needed to extend the framework by creating a new component to be plugged in the architecture. Such an operation is made possible and easy with the design described above. Theses abstract implementations do most of the work and only requires developers to implement a couple of methods instead of the dozen defined in the associated interface.
Power users have also the possibility to create their own components from scratch.
It is however more complex since the abstract implementations handle most of the complexity leaving only the specifics to be implemented. Moreover, the design of the framework allows us to improve the implementations transparently thus allowing us to provide further optimizations if required. We chose to design the framework in this way so that we can change the data model with minimal impact on the framework. Developers creating their components might also want to start from one of these intermediate abstract implementations even though it is not recommended. NIST is an agency of the U.S. Commerce Department's Technology Administration .