class Util {

    public static String makeNCName(String text) {
        if (StringUtils.isEmpty(text)) {
            return text;
        }

        StringBuilder res = new StringBuilder();

        // handle start
        String start = text.substring(0, 1);
        Matcher m = Util.NCNameStartChar_Pattern.matcher(start);
        if (m.matches()) {
            res.append(start);
        } else {
            // not a valid character
            res.append("_");
        }

        // handle remaining characters;
        for (int i = 1; i < text.length(); i++) {
            String s = text.substring(i, i + 1);
            m = Util.NCNameChar_RegExp_Pattern.matcher(s);
            if (m.matches()) {
                res.append(s);
            } else {
                // not a valid character
                res.append("_");
            }
        }

        return res.toString();
    }

}