protected void addElement(ClassDeclaration decl, List<Element> components, Namespace namespace) throws IOException {
UIComponentTag componentTag = decl.getAnnotation(UIComponentTag.class);
if (componentTag != null && !componentTag.isComponentAlreadyDefined()) {
try {
Class<?> uiComponentClass = Class.forName(componentTag.uiComponent());
Element element = createElement(decl, componentTag, uiComponentClass, namespace);
if (element != null) {
if (!containsElement(components, element)) {
addFacets(componentTag, namespace, element);
List attributes = new ArrayList();