private String getPrefix()

in src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletResourceProviderFactory.java [169:210]


    private String getPrefix(final ServiceReference<Servlet> ref) {
        Object value = ref.getProperty(SLING_SERVLET_PREFIX);
        if (value == null) {
            if (this.servletRoot != null) {
                return this.servletRoot;
            }
            value = this.servletRootIndex;
        }
        int index = -1;
        if (value instanceof Number) {
            index = ((Number) value).intValue();
        } else {
            String s = value.toString();
            if (!s.startsWith("/")) {
                boolean isNumber = false;
                try {
                    index = Integer.valueOf(s);
                    isNumber = true;
                } catch (NumberFormatException nfe) {
                    // ignore
                }
                if (!isNumber) {
                    if (log.isDebugEnabled()) {
                        log.debug(
                                "getPrefix({}): Configuration property is ignored {}",
                                getServiceReferenceInfo(ref),
                                value);
                    }
                    if (this.servletRoot != null) {
                        return this.servletRoot;
                    }
                    index = this.servletRootIndex;
                }
            } else {
                return s;
            }
        }
        if (index == -1 || index >= this.searchPath.size()) {
            index = this.searchPath.size() - 1;
        }
        return this.searchPath.get(index);
    }