private Element createPropertyOrAttributeExtension(String extensionType, MethodDeclaration methodDeclaration,
UIComponentTagAttribute uiComponentTagAttribute, Namespace namespace) throws IllegalArgumentException {
Element extensionElement = new Element(extensionType, namespace);
Element allowsValueBinding = new Element(ALLOWS_VALUE_BINDING, namespace);
DynamicExpression dynamicExpression = uiComponentTagAttribute.expression();
allowsValueBinding.setText((dynamicExpression == DynamicExpression.VALUE_BINDING) ? "true" : "false");
extensionElement.addContent(allowsValueBinding);
String[] allowedValues = uiComponentTagAttribute.allowedValues();
if (allowedValues.length > 0) {
Element propertyValues = new Element(PROPERTY_VALUES, namespace);