summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeGenerator.xtend36
1 files changed, 28 insertions, 8 deletions
diff --git a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeGenerator.xtend b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeGenerator.xtend
index 1ae221c..93ba810 100644
--- a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeGenerator.xtend
+++ b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeGenerator.xtend
@@ -386,17 +386,37 @@ class FTypeGenerator {
return ''
}
- private static List<Integer> integerRadixList = Arrays::asList(10, 16, 2, 8)
-
def private tryParseInteger(String string) {
if (!string.nullOrEmpty) {
- try {
- return Integer::decode(string)
- } catch (NumberFormatException e1) {
- for (radix : integerRadixList)
+ if (string.startsWith("0x") || string.startsWith("0X")) {
+ try {
+ return "0x" + Integer::toHexString((Integer::parseInt(string.substring(2), 16)))
+ } catch (NumberFormatException e) {
+ return null
+ }
+ } else if (string.startsWith("0b") || string.startsWith("0B")) {
+ try {
+ return "0x" + Integer::toHexString((Integer::parseInt(string.substring(2), 2)))
+ } catch (NumberFormatException e) {
+ return null
+ }
+ } else if (string.startsWith("0")) {
+ try {
+ Integer::parseInt(string, 8)
+ return string
+ } catch (NumberFormatException e) {
+ return null
+ }
+ } else {
+ try {
+ return Integer::parseInt(string, 10)
+ } catch (NumberFormatException e) {
try {
- return new Integer(Integer::parseInt(string, radix.intValue))
- } catch (NumberFormatException e2) { }
+ return "0x" + Integer::toHexString((Integer::parseInt(string, 16)))
+ } catch (NumberFormatException e2) {
+ return null
+ }
+ }
}
}
return null