Velocity string function

Yiming picture Yiming · Aug 9, 2011 · Viewed 52.3k times · Source

I just start using Java Velocity. Now I want to create a java class template.

package $app.package_namespace
public class ${app.name}Station

{
    #foreach($s_attribute in $app.station)
         $s_attribute.type $s_attribute.name,
    #end
    public $app.name Station(#foreach($s_attribute in $app.station)
                                 $s_attribute.type $s_attribute.name;
                             #end)
{
    #foreach($s_attribute in $app.station)
          $s_attribute.name=$s_attribute.name;
    #end
}
#foreach($s_attribute in $app.station)
    public ${s_attribute.type} get${s_attribute.name}()
    {
        return  get${s_attribute.name}();
    }
#end
}

The problem is s_attribute.name first character is lowercase. When I create getter and setter function for attributes. I need change first character to uppercase.

Did anyone know how to do it?

Answer

d-live picture d-live · Aug 9, 2011

You can invoke standard java methods on these objects. If s_attribute.name is type String you can directly use $s_attribute.name.toUpperCase() or for your specific case use $s_attribute.name.substring(0,1).toUpperCase() and $s_attribute.name.substring(1).toLowerCase()