private static List parseParams()

in commons/src/main/java/com/epam/eco/schemacatalog/domain/metadata/format/TagParser.java [71:106]


    private static List<Object> parseParams(TagType type, String text) {
        if (type.paramCount() == 0) {
            return Collections.emptyList();
        }

        List<Object> params = Arrays.asList(new Object[type.paramCount()]);

        int startIdx = text.indexOf(TYPE_END);
        if (startIdx < 0) {
            return params;
        }

        startIdx += TYPE_END.length();

        int endIdx = text.indexOf(TAG_END, startIdx);
        if (endIdx < 0) {
            return params;
        }

        if (startIdx >= endIdx) {
            return params;
        }

        String paramsText = text.substring(startIdx, endIdx);
        String[] paramTokens = StringUtils.splitPreserveAllTokens(paramsText, PARAM_DELIMITER);
        for (int i = 0; i < params.size(); i++) {
            if (paramTokens.length <= i) {
                break;
            }

            Object param = parseParam(paramTokens[i], type.paramType(i));
            param = unescapeParam(param);
            params.set(i, param);
        }
        return params;
    }