in src/main/java/org/apache/sling/servlets/post/impl/helper/DefaultNodeNameGenerator.java [64:116]
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;
}