aboutsummaryrefslogtreecommitdiffstats
path: root/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/OF_INTValueConverter.xtend
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-02-06 18:28:18 +0100
committerLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-02-19 19:18:25 +0100
commit615b602f0a9b4ce9eca8c38b9aa780b81d03d8e7 (patch)
tree1c9fe0f4ae152d84152c8ff1cfb6366ec8b277e9 /Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/OF_INTValueConverter.xtend
parent[Stochastic] Fault tree transformation langauge (diff)
downloadVIATRA-Generator-615b602f0a9b4ce9eca8c38b9aa780b81d03d8e7.tar.gz
VIATRA-Generator-615b602f0a9b4ce9eca8c38b9aa780b81d03d8e7.tar.zst
VIATRA-Generator-615b602f0a9b4ce9eca8c38b9aa780b81d03d8e7.zip
Extract component fault tree model
Diffstat (limited to 'Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/OF_INTValueConverter.xtend')
-rw-r--r--Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/OF_INTValueConverter.xtend35
1 files changed, 35 insertions, 0 deletions
diff --git a/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/OF_INTValueConverter.xtend b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/OF_INTValueConverter.xtend
new file mode 100644
index 00000000..ba3d39e6
--- /dev/null
+++ b/Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/OF_INTValueConverter.xtend
@@ -0,0 +1,35 @@
1package hu.bme.mit.inf.dslreasoner.faulttree.components.conversion
2
3import org.eclipse.xtext.conversion.ValueConverterException
4import org.eclipse.xtext.conversion.impl.AbstractLexerBasedConverter
5import org.eclipse.xtext.nodemodel.INode
6
7class OF_INTValueConverter extends AbstractLexerBasedConverter<Integer> {
8 static val PREFIX = "of"
9
10 override toValue(String string, INode node) throws ValueConverterException {
11 if (string === null) {
12 return null
13 }
14 if (string.length < PREFIX.length || string.substring(0, PREFIX.length) != PREFIX) {
15 throw new ValueConverterException("'" + string + "' must start with the characters 'of'.", node, null);
16 }
17 try {
18 val intValue = Integer.parseInt(string.substring(PREFIX.length), 10)
19 Integer.valueOf(intValue)
20 } catch (NumberFormatException e) {
21 throw new ValueConverterException("Couldn't convert '" + string + "' to an int value.", node, e);
22 }
23 }
24
25 override protected toEscapedString(Integer value) {
26 PREFIX + value
27 }
28
29 override protected assertValidValue(Integer value) {
30 super.assertValidValue(value)
31 if (value < 0) {
32 throw new ValueConverterException(getRuleName() + " may not be negative.", null, null);
33 }
34 }
35}