public static String expandRelative()

in src/java/org/apache/turbine/util/ServletUtils.java [54:102]


    public static String expandRelative(ServletConfig config,
                                        String text)
    {
        if (StringUtils.isEmpty(text))
        {
            return text;
        }

        if (config == null)
        {
            return null;
        }

        final String expandedText;

        // attempt to make it relative
        if (Stream.of("/", "./", "\\", ".\\").noneMatch(text::startsWith))
        {
            StringBuilder sb = new StringBuilder();
            sb.append("./");
            sb.append(text);
            expandedText = sb.toString();
        }
        else
        {
            expandedText = text;
        }

        ServletContext context = config.getServletContext();
        String base = StringUtils.defaultIfEmpty(context.getRealPath("/"),
                Turbine.getApplicationRoot());

        if (StringUtils.isEmpty(base))
        {
            return expandedText;
        }

        StringTokenizer tokenizer = new StringTokenizer(expandedText, File.pathSeparator);
        StringBuilder buffer = new StringBuilder();
        while (tokenizer.hasMoreTokens())
        {
            buffer.append(base).append(tokenizer.nextToken());
            if (tokenizer.hasMoreTokens())
            {
                buffer.append(File.pathSeparator);
            }
        }
        return buffer.toString();
    }