blob: 6947e1ba6d24ceb9198c01412345fdd84fb58343 [file] [log] [blame]
## Velocity template used to generate trinidad JSF1.2-compatible component classes
## from component meta-data.
##
## Note that there are two types of component generation:
## * "subclass mode" (use annotated class as a parent class)
## * "template mode" (use annotated class as a template)
## This template file is used for both.
##
## Variable $component refers to a ComponentMeta object to process
## Variable $utils refers to an instance of MyfacesUtils.
##
## When "template mode" is being used then variable $innersource
## holds a String containing all the non-abstract functions defined
## in the annotated class.
##
/*
* 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.
*/
package ${component.packageName};
import java.util.HashMap;
import java.util.Map;
import javax.el.ValueExpression;
import javax.faces.context.FacesContext;
$utils.importTagClasses($component)
import org.apache.myfaces.trinidad.bean.FacesBean;
import org.apache.myfaces.trinidad.bean.PropertyKey;
import org.apache.myfaces.trinidad.util.ComponentUtils;
#if ($component.isTemplate())
#set ($generatedClassParent = $component.sourceClassParentClassName)
#else
#set ($generatedClassParent = $component.sourceClassName)
#end
// Generated from class ${component.sourceClassName}.
//
// WARNING: This file was automatically generated. Do not edit it directly,
// or you will lose your changes.
public class ${utils.getClassFromFullClass($component.className)} extends $generatedClassParent
#if ($component.implements)
implements $component.implements
#end
{
#if ($component.serialuid)
private static final long serialVersionUID = ${component.serialuid};
#end
static public final FacesBean.Type TYPE = new FacesBean.Type(
${generatedClassParent}.TYPE);
#set ($propertyList = ${component.propertyComponentList})
#foreach( $property in $propertyList )
#set ($field = $property.fieldName)
#set ($type = $utils.getClassFromFullClass($property.className))
#set ($key = $utils.getConstantNameFromProperty($property.name , "_KEY"))
##
## CALCULATE DEFAULT VALUE
##
#if($utils.getDefaultValueField($property))
#set ($defaultValue = $utils.getDefaultValueField($property))
#if ($defaultValue == "true")
#set ($defaultValue = "Boolean.TRUE")
#end
#if ($defaultValue == "false")
#set ($defaultValue = "Boolean.FALSE")
#end
#if ($type == "char")
#set ($defaultValue = "'"+$defaultValue+"'")
#end
#else
#set ($defaultValue = false)
#end
## CALCULATE CAPABILITIES
#set ($caps = "")
#set ($capsCount = 0)
#if ($property.isMethodBinding() || $property.isLiteralOnly())
#set ($capsCount = $capsCount + 1)
#end
#if ($property.isStateHolder())
#set ($capsCount = $capsCount + 1)
#end
#if ($property.isTransient())
#set ($capsCount = $capsCount + 1)
#end
#if ($property.isMethodBinding() || $property.isLiteralOnly())
#set ($caps = $caps + "PropertyKey.CAP_NOT_BOUND")
#if ($capsCount > 1)#set($capsCount = $capsCount - 1)#set($caps=$caps+" | ")#end
#end
#if ($property.isStateHolder())
#set ($caps = $caps + "PropertyKey.CAP_STATE_HOLDER")
#if ($capsCount > 1)#set($capsCount = $capsCount - 1)#set($caps=$caps+" | ")#end
#end
#if ($property.isTransient())
#set ($caps = $caps + "PropertyKey.CAP_TRANSIENT")
#if ($capsCount > 1)#set($capsCount = $capsCount - 1)#set($caps=$caps+" | ")#end
#end
## This template does not handle PropertyKey.CAP_LIST
static public final PropertyKey $key =
TYPE.registerKey(
"$property.name",#if($utils.isPrimitiveClass($type))${utils.getBoxedClass($type)}.class#{else}${type}.class#end
#if($defaultValue),${defaultValue}#end
#if ( !$caps.equals("")),${caps}#end);
#end
static public final String COMPONENT_FAMILY =
"$component.family";
static public final String COMPONENT_TYPE =
"$component.type";
##if ($component.rendererType)
##if (!($component.rendererType == ""))
## static public final String DEFAULT_RENDERER_TYPE =
## "$component.rendererType";
##end
##end
#if ($innersource)
//BEGIN CODE COPIED FROM $component.sourceClassName
$innersource
//END CODE COPIED FROM $component.sourceClassName
#end
public ${utils.getClassFromFullClass($component.className)}()
{
#if ($component.rendererType)
#if ($component.rendererType == "")
super(null);
#else
super("$component.rendererType");
#end
#else
super(null);
#end
}
#foreach( $property in $propertyList )
#set ($field = $property.fieldName)
#set ($type = $utils.getClassFromFullClass($property.className))
#set ($key = $utils.getConstantNameFromProperty($property.name , "_KEY"))
final public $type $utils.getMethodReaderFromProperty($property.name, $type)()
{
#if ($utils.isPrimitiveClass($type))
#if ($type == "char")
return ComponentUtils.resolveCharacter((Character) getProperty($key));
#elseif ($type == "byte" || $type == "short")
## There is no ComponentUtils remethod, so we just cast it.
return $utils.castIfNecessary($type) getProperty($key);
#else
return ComponentUtils.resolve${utils.getBoxedClass($type)}(getProperty($key));
#end
#elseif ($type == "String" || $type == "Locale" || $type == "TimeZone")
return ComponentUtils.resolve${utils.getBoxedClass($type)}(getProperty($key));
#else
return $utils.castIfNecessary($type) getProperty($key);
#end
}
final public void $utils.getPrefixedPropertyName("set", $property.name)($type $utils.getVariableFromName($property.name))
{
#if ($utils.isPrimitiveClass($type))
#if ($type == "boolean")
setProperty($key, $utils.getVariableFromName($property.name) ? Boolean.TRUE : Boolean.FALSE);
#else
setProperty($key, ${utils.getBoxedClass($type)}.valueOf( $utils.getVariableFromName($property.name) ));
#end
#else
setProperty($key, $utils.getVariableFromName($property.name));
#end
}
#end
@Override
public String getFamily()
{
return COMPONENT_FAMILY;
}
@Override
protected FacesBean.Type getBeanType()
{
return TYPE;
}
public ${utils.getClassFromFullClass($component.className)}(String rendererType)
{
super(rendererType);
}
static
{
TYPE.lock();
}
}