blob: bac7f0af21b61a684a31a194e9401ecafc785aec [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!--
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
-->
<facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd"
version="2.0">
<namespace>$uri</namespace>
#if ($compositeLibrary)
<composite-library-name>$compositeLibrary</composite-library-name>
#end
$baseContent
## ----------------------------- START MACROS -----------------------------
##
## -------------------------------
## writeJSFProperty
## -------------------------------
##
#macro (writeJSFProperty $property)
#if (!$property.isTagExcluded())
<attribute>
#if ($property.longDescription)
<description><![CDATA[$property.longDescription]]></description>
#else
<description><![CDATA[]]></description>
#end
<name>$property.jspName</name>
#if ($property.isRequired())
<required>$property.isRequired()</required>
#end
#if ($property.isMethodExpression() || $property.isMethodBinding())
#if ($property.getMethodBindingSignature())
#set ($sig = $property.getMethodBindingSignature())
<method-signature>$sig.returnType myMethod( $sig.parameterTypesAsString )</method-signature>
#end
#elseif($property.deferredValueType)
<type>$property.deferredValueType</type>
#elseif ($type == "String")
<type>java.lang.String</type>
#else
<type>$property.className</type>
#end
</attribute>
#end
#end
##
## -------------------------------
## writeJSFAttribute
## -------------------------------
##
#macro (writeJSFAttribute $attribute)
#if (!$attribute.isTagExcluded())
<attribute>
#if ($attribute.longDescription)
<description><![CDATA[$attribute.longDescription]]></description>
#else
<description><![CDATA[]]></description>
#end
<name>$attribute.jspName</name>
#if ($attribute.isRequired())
<required>$attribute.isRequired()</required>
#end
#set ($type = $utils.getClassFromFullClass($attribute.className))
#if ($type == "MethodExpression")
<method-signature>${attribute.deferredMethodSignature}</method-signature>
#elseif ($type == "ValueExpression")
#if($attribute.deferredValueType)
<type>$attribute.deferredValueType</type>
#end
#else
#if ($attribute.className)
<type>$attribute.className</type>
#else
<type>java.lang.String</type>
#end
#end
</attribute>
#end
#end
## ----------------------------- END MACROS -------------------------------
<!-- Component Tags -->
#set ($componentList = ${model.getComponents()})
#foreach( $component in $componentList )
#if ($modelIds.contains($component.modelId)
&& ($component.name))
#if (!$component.isConfigExcluded() && !$component.isComposite())
## Check if we don't have a facelet tag taking precedence over this description
#if (! ${model.findFaceletTagByName($component.name)})
<tag>
#if ($component.longDescription)
<description><![CDATA[$component.longDescription]]></description>
#else
<description><![CDATA[]]></description>
#end
<tag-name>$utils.getTagName($component.name)</tag-name>
<component>
<component-type>$component.type</component-type>
#if ($component.rendererType)
#if (!($component.rendererType == ""))
<renderer-type>$component.rendererType</renderer-type>
#end
#end
#if ($component.tagHandler)
<handler-class>$component.tagHandler</handler-class>
#end
</component>
#set ($attributeList = ${component.propertyList})
#foreach( $attribute in $attributeList )
#writeJSFProperty($attribute)
#end
</tag>
#end
#end
#end
#end
<!-- Converter tags -->
#set ($componentList = ${model.getConverters()})
#foreach( $component in $componentList )
#if ($modelIds.contains($component.modelId)
&& ($component.name))
#if ($component.converterId)
## Check if we don't have a facelet tag taking precedence over this description
#if (! ${model.findFaceletTagByName($component.name)})
<tag>
#if ($component.longDescription)
<description><![CDATA[$component.longDescription]]></description>
#else
<description><![CDATA[]]></description>
#end
<tag-name>$utils.getTagName($component.name)</tag-name>
<converter>
<converter-id>$component.converterId</converter-id>
#if ($component.tagHandler)
<handler-class>$component.tagHandler</handler-class>
#end
</converter>
#set ($propertyList = ${component.propertyList})
#foreach( $property in $propertyList )
#writeJSFProperty($property)
#end
</tag>
#end
#end
#end
#end
<!-- Validator tags -->
#set ($componentList = ${model.getValidators()})
#foreach( $component in $componentList )
#if ($modelIds.contains($component.modelId)
&& ($component.name))
#if ($component.validatorId)
## Check if we don't have a facelet tag taking precedence over this description
#if (! ${model.findFaceletTagByName($component.name)})
<tag>
#if ($component.longDescription)
<description><![CDATA[$component.longDescription]]></description>
#else
<description><![CDATA[]]></description>
#end
<tag-name>$utils.getTagName($component.name)</tag-name>
<validator>
<validator-id>$component.validatorId</validator-id>
#if ($component.tagHandler)
<handler-class>$component.tagHandler</handler-class>
#end
</validator>
#set ($propertyList = ${component.propertyList})
#foreach( $property in $propertyList )
#writeJSFProperty($property)
#end
</tag>
#end
#end
#end
#end
<!-- Behavior tags -->
#set ($behaviorList = ${model.getBehaviors()})
#foreach( $behavior in $behaviorList )
#if ($modelIds.contains($behavior.modelId)
&& ($behavior.name))
#if ($behavior.behaviorId)
## Check if we don't have a facelet tag taking precedence over this description
#if (! ${model.findFaceletTagByName($behavior.name)})
<tag>
#if ($behavior.longDescription)
<description><![CDATA[$behavior.longDescription]]></description>
#else
<description><![CDATA[]]></description>
#end
<tag-name>$utils.getTagName($behavior.name)</tag-name>
<behavior>
<behavior-id>$behavior.behaviorId</behavior-id>
#if ($behavior.tagHandler)
<handler-class>$behavior.tagHandler</handler-class>
#end
</behavior>
#set ($propertyList = ${behavior.propertyList})
#foreach( $property in $propertyList )
#writeJSFProperty($property)
#end
</tag>
#end
#end
#end
#end
<!-- Single Tags -->
#set ($tagList = $model.getTags())
#foreach( $tag in $tagList )
#if ($modelIds.contains($tag.modelId))
#if ($tag.tagHandler)
## Check if we don't have a facelet tag taking precedence over this description
#if (! ${model.findFaceletTagByName($tag.name)})
<tag>
#if ($tag.longDescription)
<description><![CDATA[$tag.longDescription]]></description>
#else
<description><![CDATA[]]></description>
#end
<tag-name>$utils.getTagName($tag.name)</tag-name>
<handler-class>$tag.tagHandler</handler-class>
#foreach( $attribute in $attributeList )
#writeJSFAttribute($attribute)
#end
</tag>
#end
#end
#end
#end
<!-- Facelet Tags -->
#set ($faceletTagList = $model.getFaceletTags())
#foreach( $faceletTag in $faceletTagList )
#if ($modelIds.contains($faceletTag.modelId) && ($faceletTag.name))
#if ($utils.getTagPrefix($faceletTag.name) == $shortname)
<tag>
#if ($faceletTag.longDescription)
<description><![CDATA[$faceletTag.longDescription]]></description>
#else
<description><![CDATA[]]></description>
#end
<tag-name>$utils.getTagName($faceletTag.name)</tag-name>
#if ($faceletTag.componentClass)
#set ($component = ${model.findComponentByClassName($faceletTag.componentClass)})
<component>
<component-type>$component.type</component-type>
#if ($component.rendererType)
#if (!($component.rendererType == ""))
<renderer-type>$component.rendererType</renderer-type>
#end
#end
<handler-class>$faceletTag.className</handler-class>
</component>
#elseif ($faceletTag.converterClass)
#set ($converter = ${model.findConverterByClassName($faceletTag.converterClass)})
<converter>
<converter-id>$converter.converterId</converter-id>
<handler-class>$faceletTag.className</handler-class>
</converter>
#elseif ($faceletTag.behaviorClass)
#set ($behavior = ${model.findBehaviorByClassName($faceletTag.behaviorClass)})
<behavior>
<behavior-id>$behavior.behaviorId</behavior-id>
<handler-class>$faceletTag.className</handler-class>
</behavior>
#else
<handler-class>$faceletTag.className</handler-class>
#end
#set ($attributeList = ${tag.attributeList})
#foreach( $attribute in $attributeList )
#writeJSFAttribute($attribute)
#end
</tag>
#end
#end
#end
<!-- Facelets Functions -->
#set ($functionList = $model.getFaceletFunctions())
#foreach( $faceletFunction in $functionList )
#if ($modelIds.contains($faceletFunction.modelId) && ($faceletFunction.name))
#if ($utils.getTagPrefix($faceletFunction.name) == $shortname)
<function>
#if ($faceletFunction.longDescription)
<description><![CDATA[$faceletFunction.longDescription]]></description>
#elseif ($faceletFunction.description)
<description><![CDATA[$faceletFunction.description]]></description>
#else
<description><![CDATA[]]></description>
#end
<function-name>$utils.getTagName($faceletFunction.name)</function-name>
<function-class>$faceletFunction.sourceClassName</function-class>
<function-signature>$faceletFunction.signature</function-signature>
</function>
#end
#end
#end
</facelet-taglib>