org.eclipse.xtext.conversion.impl
Class KeywordBasedValueConverter
java.lang.Object
org.eclipse.xtext.conversion.impl.AbstractValueConverter<java.lang.String>
org.eclipse.xtext.conversion.impl.KeywordBasedValueConverter
- All Implemented Interfaces:
- IValueConverter<java.lang.String>, IValueConverter.RuleSpecific
public class KeywordBasedValueConverter
- extends AbstractValueConverter<java.lang.String>
- implements IValueConverter.RuleSpecific
This IValueConverter
ensures that the given string value fulfills a
data type rule that consists only of an alternative of keywords.
It converts the value to a string. The implementation supports the following patterns:
RuleName: 'keyword';
RuleName: 'keyword' | 'other' | 'more';
Clients who want to implement case insensitive languages have to override
toEscapedString(String)
and keywordToString(Keyword)
. Clients
who want to convert the value to another data type may use this implementation
as a delegate.
- Author:
- Sebastian Zarnekow - Initial contribution and API
Method Summary |
protected void |
assertValidValue(java.lang.String value)
|
protected java.lang.String |
keywordToString(Keyword keyword)
|
void |
setRule(AbstractRule rule)
|
protected java.lang.String |
toEscapedString(java.lang.String value)
|
java.lang.String |
toString(java.lang.String value)
Transforms the given value to a string that is conformant to the expected
terminal or data type rule. |
java.lang.String |
toValue(java.lang.String string,
INode node)
Creates a value from the given input. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
KeywordBasedValueConverter
public KeywordBasedValueConverter()
toValue
public java.lang.String toValue(java.lang.String string,
INode node)
throws ValueConverterException
- Description copied from interface:
IValueConverter
Creates a value from the given input. The input is conformant
to a data type or terminal rule.
The given string
or node
may be null but not both of them.
- Specified by:
toValue
in interface IValueConverter<java.lang.String>
- Parameters:
string
- the string that was inferred from the node. Usually the node's text
but may be reduced to the parts of the node that are not
hidden
.node
- the parsed node including hidden parts.
- Returns:
- the new value or
null
.
- Throws:
ValueConverterException
- indicates that the string or node did not fulfil
the expected format.
toString
public java.lang.String toString(java.lang.String value)
throws ValueConverterException
- Description copied from interface:
IValueConverter
- Transforms the given value to a string that is conformant to the expected
terminal or data type rule.
- Specified by:
toString
in interface IValueConverter<java.lang.String>
- Parameters:
value
- the to-be-transformed value
- Returns:
- a string represenation for that value.
- Throws:
ValueConverterException
- indicates that the value cannot be converted to a valid string.
assertValidValue
protected void assertValidValue(java.lang.String value)
toEscapedString
protected java.lang.String toEscapedString(java.lang.String value)
keywordToString
protected java.lang.String keywordToString(Keyword keyword)
setRule
public void setRule(AbstractRule rule)
- Specified by:
setRule
in interface IValueConverter.RuleSpecific
- Throws:
java.lang.IllegalArgumentException
- if the rule is not a datatype rule or does not fulfill
the pattern RuleName: 'keyword' | 'other';