GraniteFunctions.java 2.44 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  org.apache.jackrabbit.util.Text
 *  org.apache.sling.api.SlingHttpServletRequest
 *  org.apache.sling.commons.json.JSONArray
 */
package com.adobe.granite.ui.components.impl;

import org.apache.jackrabbit.util.Text;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.commons.json.JSONArray;

public final class GraniteFunctions {
    private static final ThreadLocal<SlingHttpServletRequest> request = new ThreadLocal();

    private GraniteFunctions() {
    }

    public static void setRequest(SlingHttpServletRequest r) {
        request.set(r);
    }

    public static String uritemplate(String s) {
        return GraniteFunctions.uritemplate(s, false);
    }

    public static String uritemplate(String s, boolean abs) {
        if (abs) {
            return request.get().getContextPath() + s;
        }
        return GraniteFunctions.url(s);
    }

    public static String url(String s) {
        if (s.startsWith("/")) {
            return request.get().getContextPath() + s;
        }
        return s;
    }

    public static JSONArray toJSONArray(String[] array) {
        if (array == null) {
            return null;
        }
        JSONArray a = new JSONArray();
        for (String s : array) {
            a.put((Object)s);
        }
        return a;
    }

    public static String toQueryString(String name, String[] array) {
        if (array == null) {
            return "";
        }
        StringBuilder sb = new StringBuilder();
        int i = 0;
        for (String s : array) {
            if (i > 0) {
                sb.append("&");
            }
            sb.append(Text.escape((String)name));
            sb.append("=");
            sb.append(Text.escape((String)s));
            ++i;
        }
        return sb.toString();
    }

    public static String concat(Object o1, Object o2) {
        String s1 = o1 == null ? "" : o1.toString();
        String s2 = o2 == null ? "" : o2.toString();
        return s1.concat(s2);
    }

    public static String getRelativeParent(String path, int level) {
        return Text.getRelativeParent((String)path, (int)level);
    }

    public static boolean contains(String haystack, String needle) {
        return haystack.contains(needle);
    }

    public static boolean containsIgnoreCase(String haystack, String needle) {
        return haystack.toLowerCase().contains(needle.toLowerCase());
    }
}