Преобразование первой буквы в заглавную с использованием шаблона строки

Я использую файл шаблона String для создания файлов Java. Для этого я использую ANTLR. Код для одного из строковых шаблонов файла показан ниже:

package framework;
public abstract class  Listener$GUIdriver.name$  {  
 $GUIdriver.commands:{ command |   
     public abstract void onNew$command.name;format="capital"$Command
           ($command.allParameter:{ param |   $param.type.name$ newValue};separator=" , "$);   
          }; separator="\n"$
$GUIdriver.allDataAccess:{ dataAccess | 
  public abstract void onNew$dataAccess.dataAccessName;format="capital"$Request(String request); 
     }; separator="\n"$
 } 

Но это не дает эффекта format="capital".Как включить такие изменения? Нужно ли мне включать какой-либо пакет или файл? Я новичок в String Template & ANTLR.

1 ответ

Решение

Строка формата, которую вы хотите использовать - "cap"

format="cap"

Однако сначала вам нужно зарегистрировать StringRenderer:-)

stGroup.registerRenderer(String.class, new StringRenderer());

Более детально

Вот пример файла группы, testGroup.stg:

group testGroup;

test(text) ::= <<
<text; format="cap">
>>

и вот пример его использования:

import org.stringtemplate.v4.*;

public class Test {

    public static void main(String[] args) {
        STGroup stGroup = new STGroupFile("testGroup.stg");
        ST st = stGroup.getInstanceOf("test");
        stGroup.registerRenderer(String.class, new StringRenderer());
        st.add("text", "helloWorld"); // note lower case 'h'
        System.out.println(st.render());
    }
}

Это делает:

Привет, мир

method(item) ::= <<
<item.name; format="cap">Value
>> 
Другие вопросы по тегам