cd.setLabel(matcher.group(1));
fillLabelAndMnemonic(matcher.group(1), cd);
    public static ActionDescriptor parse(String value) {        if (StringUtils.isBlank(value)) {            throw new IllegalArgumentException("value is required");        }        final ActionDescriptor cd = new ActionDescriptor();        Matcher matcher = PATTERN_1.matcher(value);        if (matcher.matches()) {            fillLabelAndMnemonic(matcher.group(1), cd);            cd.setKeyStroke(matcher.group(2));            cd.setDescription(matcher.group(3));            return cd;        }        matcher = PATTERN_2.matcher(value);        if (matcher.matches()) {            fillLabelAndMnemonic(matcher.group(1), cd);            cd.setKeyStroke(matcher.group(2));            return cd;        }        matcher = PATTERN_3.matcher(value);        if (matcher.matches()) {            fillLabelAndMnemonic(matcher.group(1), cd);            cd.setDescription(matcher.group(2));            return cd;        }        matcher = PATTERN_4.matcher(value);        if (matcher.matches()) {            cd.setLabel(matcher.group(1));                        return cd;        }        throw new IllegalArgumentException(                "Unknown command descriptor format: " + value);    }