public NameInfo getPrincipalName()

in src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/PrincipalNameGeneratorImpl.java [199:241]


    public NameInfo getPrincipalName(Map<String, ?> parameters, AuthorizableType type,
            PrincipalNameFilter principalNameFilter, PrincipalNameGenerator defaultPrincipalNameGenerator) {
        String valueToUse = null;
        boolean doFilter = true;

        // find the first request parameter that matches one of
        // our parameterNames, in order, and has a value
        // 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 && parameterNames != null) {
                for (String param : parameterNames) {
                    valueToUse = getValueToUse(parameters, param);
                    if (valueToUse != null) {
                        break;
                    }
                }
            }
        }

        String result = valueToUse;
        // should we filter?
        if (doFilter && result != null && principalNameFilter != null) {
            // filter value so that it works as a principal name
            result = principalNameFilter.filter(result);
        }

        // max length
        if (doFilter && result != null && result.length() > maxLength) {
            result = result.substring(0, maxLength);
        }

        if (result != null) {
            return new NameInfo(result, doFilter);
        } else {
            return null;
        }
    }