From 615b602f0a9b4ce9eca8c38b9aa780b81d03d8e7 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Wed, 6 Feb 2019 18:28:18 +0100 Subject: Extract component fault tree model --- .../conversion/OF_INTValueConverter.xtend | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/OF_INTValueConverter.xtend (limited to 'Stochastic/hu.bme.mit.inf.dslreasoner.faulttree.components/src/hu/bme/mit/inf/dslreasoner/faulttree/components/conversion/OF_INTValueConverter.xtend') 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 @@ +package hu.bme.mit.inf.dslreasoner.faulttree.components.conversion + +import org.eclipse.xtext.conversion.ValueConverterException +import org.eclipse.xtext.conversion.impl.AbstractLexerBasedConverter +import org.eclipse.xtext.nodemodel.INode + +class OF_INTValueConverter extends AbstractLexerBasedConverter { + static val PREFIX = "of" + + override toValue(String string, INode node) throws ValueConverterException { + if (string === null) { + return null + } + if (string.length < PREFIX.length || string.substring(0, PREFIX.length) != PREFIX) { + throw new ValueConverterException("'" + string + "' must start with the characters 'of'.", node, null); + } + try { + val intValue = Integer.parseInt(string.substring(PREFIX.length), 10) + Integer.valueOf(intValue) + } catch (NumberFormatException e) { + throw new ValueConverterException("Couldn't convert '" + string + "' to an int value.", node, e); + } + } + + override protected toEscapedString(Integer value) { + PREFIX + value + } + + override protected assertValidValue(Integer value) { + super.assertValidValue(value) + if (value < 0) { + throw new ValueConverterException(getRuleName() + " may not be negative.", null, null); + } + } +} -- cgit v1.2.3-70-g09d2