public String getNodeName()

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;
    }