class DomainParameterParser {

    public static Entry<String, Object> generateParameterEntry(final String parameter) {
        final String key;
        final Object value;
        log.debug("parsing: " + parameter);
        final String[] firstSplit = parameter.split(Pattern.quote("("), 2);
        key = firstSplit[0].trim();
        log.debug("got key: " + key);
        final String tempString = firstSplit[1];
        log.debug("parsing second part: " + tempString);
        final String[] secondSplit = tempString.split(Pattern.quote(")"), 2);
        final String type = secondSplit[0].trim();
        log.debug("got type: " + type);
        final String tempSecondString = secondSplit[1];
        log.debug("parsing third part:" + tempSecondString);
        final String[] thirdSplit = tempSecondString.split("=", 2);
        final String valueString = thirdSplit[1];
        log.debug("got value: " + valueString);
        value = createValueInstance(type, valueString);
        return new AbstractMap.SimpleEntry<>(key, value);
    }

    private  DomainParameterParser();

}