public Map parse()

in parser/split/src/main/java/org/apache/karaf/decanter/parser/split/SplitParser.java [55:104]


    public Map<String, Object> parse(String key, String line) {
        Map<String, Object> map = new HashMap<>();
        boolean isByPassed = false;
        if (line != null) {
            String[] valuesArray = line.split(separator);
            String[] keysArray;

            if (this.keys != null) {
                keysArray = this.keys.split(",");
                if (keysArray.length != valuesArray.length) {
                    if (useDefaultKey) {
                        LOGGER.warn("keys count and values count don't match, using default key ID");
                        keysArray = new String[valuesArray.length];
                        for (int i = 0; i < valuesArray.length; i++) {
                            keysArray[i] = "key-" + i;
                        }
                    } else {
                        LOGGER.warn("keys count and values count don't match, bypassing default key ID");
                        isByPassed = true;
                    }
                }
            } else {
                keysArray = new String[valuesArray.length];
                for (int i = 0; i < valuesArray.length; i++) {
                    keysArray[i] = "key-" + i;
                }
            }

            if (!isByPassed) {
                for (int i = 0; i < valuesArray.length; i++) {
                    try {
                        map.put(keysArray[i], Integer.parseInt(valuesArray[i]));
                        continue;
                    } catch (Exception e) {
                        // nothing to do
                    }

                    try {
                        map.put(keysArray[i], Long.parseLong(valuesArray[i]));
                        continue;
                    } catch (Exception e) {
                        // nothing to do
                    }
                    // if not integer and long value
                    map.put(keysArray[i], valuesArray[i]);
                }
            }
        }
        return map;
    }