$baseContent
#set ($componentList = ${model.getComponents()})
#foreach( $component in $componentList )
#if ($modelIds.contains($component.modelId)
&& ($component.name))
#if ($utils.getTagPrefix($component.name) == $shortname)
$utils.getTagName($component.name)
$component.tagClass
#if ($component.bodyContent)
$component.bodyContent
#else
JSP
#end
#set ($propertyList = ${component.propertyList})
#foreach( $property in $propertyList )
#if (!$property.isTagExcluded())
#if ($property.longDescription)
#else
#end
$property.jspName
#if ($property.isRequired())
$property.isRequired()
#end
#if ($property.isMethodExpression() || $property.isMethodBinding())
#if ($property.getMethodBindingSignature())
#set ($sig = $property.getMethodBindingSignature())
$sig.returnType myMethod(${sig.parameterTypesAsString})
#else
## This is a very special case. If a property is MethodBinding or MethodExpression
## this should have a signature. If not, for allow multiple MethodBinding
## simulate a ValueExpression and write a custom code like in
## org.apache.myfaces.custom.suggestajax.AbstractSuggestAjaxTag
#end
#elseif ($property.isLiteralOnly())
false
#else
#if ( "$!property.isRtexprvalue()" == "")
#set ($type = $utils.getClassFromFullClass($property.className))
#if ($type == "String" || $type == "String[]" || $type == "Object" || $type == "List" || $type == "Date" || $type == "RowKeySet" || $type == "int[]")
#else
$property.className
#end
#else
$property.isRtexprvalue().booleanValue()
#end
#end
#end
#end
#end
#end
#end
#set ($componentList = ${model.getConverters()})
#foreach( $component in $componentList )
#if ($modelIds.contains($component.modelId)
&& ($component.name))
#if ($utils.getTagPrefix($component.name) == $shortname)
#if ($component.longDescription)
#end
$utils.getTagName($component.name)
$component.tagClass
#if ($component.bodyContent)
$component.bodyContent
#else
empty
#end
id
#set ($propertyList = ${component.propertyList})
#foreach( $property in $propertyList )
#if (!$property.isTagExcluded())
#if ($property.longDescription)
#else
#end
$property.name
#if ($property.isRequired())
$property.isRequired()
#end
#if ($property.isLiteralOnly())
false
#else
#set ($type = $utils.getClassFromFullClass($property.className))
#if ($type == "String" || $type == "String[]" || $type == "Object" || $type == "List" || $type == "Date" || $type == "RowKeySet" || $type == "int[]" || $type == "Locale" || $type == "TimeZone")
#else
$property.className
#end
#end
#end
#end
#end
#end
#end
#set ($componentList = ${model.getValidators()})
#foreach( $component in $componentList )
#if ($modelIds.contains($component.modelId)
&& ($component.name))
#if ($utils.getTagPrefix($component.name) == $shortname)
$utils.getTagName($component.name)
$component.tagClass
#if ($component.bodyContent)
$component.bodyContent
#else
empty
#end
id
#set ($propertyList = ${component.propertyList})
#foreach( $property in $propertyList )
#if (!$property.isTagExcluded())
#if ($property.longDescription)
#else
#end
$property.name
#if ($property.isRequired())
$property.isRequired()
#end
#if ($property.isLiteralOnly())
false
#else
#set ($type = $utils.getClassFromFullClass($property.className))
#if ($type == "String" || $type == "String[]" || $type == "Object" || $type == "List" || $type == "Date" || $type == "RowKeySet" || $type == "int[]" || $type == "DateListProvider")
#else
$property.className
#end
#end
#end
#end
#end
#end
#end
#set ($tagList = $model.getTags())
#foreach( $tag in $tagList )
#if ($modelIds.contains($tag.modelId))
#if ($tag.longDescription)
#end
$utils.getTagName($tag.name)
$tag.className
$tag.bodyContent
#set ($attributeList = ${tag.attributeList})
#foreach( $attribute in $attributeList )
#if (!$attribute.isExclude().booleanValue())
#if ($attribute.longDescription)
#else
#end
$attribute.name
#if ($attribute.isRequired())
$attribute.isRequired()
#end
#set ($type = $utils.getClassFromFullClass($attribute.className))
#if ($type == "MethodExpression")
${attribute.deferredMethodSignature}
#elseif ($type == "ValueExpression")
#if($attribute.deferredValueType)$attribute.deferredValueType#end
#else
$attribute.isRtexprvalue()
#if ($attribute.className)
$attribute.className
#else
java.lang.String
#end
#end
#end
#end
#end
#end