protected void addElement(InterfaceDeclaration decl, List<Element> components, List<Element> renderer,
final Namespace namespace) throws IOException {
UIComponentTag componentTag = decl.getAnnotation(UIComponentTag.class);
if (componentTag != null) {
try {
Class<?> uiComponentClass = Class.forName(componentTag.uiComponent());
if (!componentTag.isComponentAlreadyDefined()) {
Element element = createComponentElement(decl, componentTag, uiComponentClass, namespace);
if (element != null) {
if (!containsElement(components, element)) {
addFacets(componentTag, namespace, element);