in src/main/java/org/apache/sling/servlets/post/impl/helper/DefaultNodeNameGenerator.java [128:183]
public String getNodeName(
SlingJakartaHttpServletRequest request,
String basePath,
boolean requirePrefix,
JakartaNodeNameGenerator defaultNodeNameGenerator) {
RequestParameterMap parameters = request.getRequestParameterMap();
String valueToUse = null;
boolean doFilter = true;
// find the first request parameter that matches one of
// our parameterNames, in order, and has a value
if (parameters != null) {
// we first check for the special sling parameters
valueToUse = getValueToUse(parameters, SlingPostConstants.RP_NODE_NAME);
if (valueToUse != null) {
doFilter = false;
}
if (valueToUse == null) {
valueToUse = getValueToUse(parameters, SlingPostConstants.RP_NODE_NAME_HINT);
}
if (valueToUse == null) {
for (String param : parameterNames) {
if (requirePrefix) {
param = SlingPostConstants.ITEM_PREFIX_RELATIVE_CURRENT.concat(param);
}
valueToUse = getValueToUse(parameters, param);
if (valueToUse != null) {
break;
}
}
}
}
String result;
// should we filter?
if (valueToUse != null) {
if (doFilter) {
// filter value so that it works as a node name
result = filter.filter(valueToUse);
} else {
result = valueToUse;
}
} else {
// default value if none provided
result = nextCounter() + "_" + System.currentTimeMillis();
}
if (doFilter) {
// max length
if (result.length() > maxLength) {
result = result.substring(0, maxLength);
}
}
return result;
}