Create a value converter [message #1797485] |
Wed, 31 October 2018 10:29  |
Eclipse User |
|
|
|
I'm trying to create a converter for a terminal rule of my grammar:
terminal URI_TEMPLATE: '`' .* '`';
I created a conversion class for that purpose:
public class HeadRESTTerminalConverters extends DefaultTerminalConverters {
@Inject
private PrettyPrintUriTemplate prettyPrint;
@ValueConverter(rule = "URI_TEMPLATE")
public IValueConverter<Optional<UriTemplate>> URI_TEMPLATE() {
return new AbstractNullSafeConverter<Optional<UriTemplate>>() {
@Override
protected Optional<UriTemplate> internalToValue(String string, INode node) {
return new UriTemplateParser().parse(string);
}
@Override
protected String internalToString(Optional<UriTemplate> value) {
return "`" + prettyPrint.print(value.get()) + "`";
}
};
}
}
And I added the class to the runtime module:
class HeadRESTRuntimeModule extends AbstractHeadRESTRuntimeModule {
override Class<? extends IValueConverterService> bindIValueConverterService() {
HeadRESTTerminalConverters
}
}
However, when generated again the artifacts, the terminal rule stays with the standard type String. Am I missing something?
Thank you.
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03544 seconds