protected String getValueToUse()

in src/main/java/org/apache/sling/servlets/post/impl/helper/DefaultNodeNameGenerator.java [64:115]


    protected String getValueToUse(RequestParameterMap parameters, String paramName) {
        String valueToUse = null;
        RequestParameter[] pp = parameters.getValues(paramName);
        if (pp != null) {
            for (RequestParameter specialParam : pp) {
                if (specialParam != null && !specialParam.getString().isEmpty()) {
                    valueToUse = specialParam.getString();
                }

                if (valueToUse != null) {
                    if (valueToUse.isEmpty()) {
                        // empty value is not usable
                        valueToUse = null;
                    } else {
                        // found value, so stop looping
                        break;
                    }
                }
            }
        } else {
            // check for a paramName@ValueFrom param
            // SLING-130: VALUE_FROM_SUFFIX means take the value of this
            // property from a different field
            pp = parameters.getValues(String.format("%s%s", paramName, SlingPostConstants.VALUE_FROM_SUFFIX));
            if (pp != null) {
                for (RequestParameter specialParam : pp) {
                    if (specialParam != null && !specialParam.getString().isEmpty()) {
                        // retrieve the reference parameter value
                        RequestParameter[] refParams = parameters.getValues(specialParam.getString());
                        // @ValueFrom params must have exactly one value, else ignored
                        if (refParams != null && refParams.length == 1) {
                            specialParam = refParams[0];
                            if (specialParam != null && !specialParam.getString().isEmpty()) {
                                valueToUse = specialParam.getString();
                            }
                        }
                    }

                    if (valueToUse != null) {
                        if (valueToUse.isEmpty()) {
                            // empty value is not usable
                            valueToUse = null;
                        } else {
                            // found value, so stop looping
                            break;
                        }
                    }
                }
            }
        }
        return valueToUse;
    }