public void propagateValues(List<String> cliValues) {

        int argValueIdx = 0;
        int valueIdx = 0;

        while (argValueIdx < cliValues.size()) {

            if (argValueIdx >= values.size()) { // more data then values ... abort
                break;
            } else {
                IValue<?> value = values.get(valueIdx);

                if (!value.isMultiValued()) {
                    value.setCurrentValueFromCli(cliValues.get( argValueIdx ) );
                    argValueIdx++;
                    valueIdx++;
                } else {
                    String t = "";

                    for (int i = argValueIdx; i < cliValues.size(); i++) {
                        t += cliValues.get( argValueIdx ) + " ";
                        argValueIdx++;
                    }

                    value.setCurrentValueFromCli(t);

                    break;
                }
            }
        } // end while
    }