public T adaptTo()

in src/main/java/org/apache/sling/servlets/resolver/internal/ScriptResource.java [107:154]


    public <T> T adaptTo(final Class<T> type) {
        if (type == javax.servlet.Servlet.class) {
            Resource activeResource = this.getActiveResource();
            while (activeResource instanceof ResourceWrapper) {
                activeResource = ((ResourceWrapper) activeResource).getResource();
            }
            if (!(activeResource instanceof ServletResource)) {
                final javax.servlet.Servlet s = (javax.servlet.Servlet) super.adaptTo(type);
                if (s != null) {
                    return (T) s;
                }
                final Servlet sj = (Servlet) super.adaptTo(Servlet.class);
                if (sj != null) {
                    return (T) ServletWrapperUtil.toJavaxServlet(sj);
                }
            }
        } else if (type == Servlet.class) {
            Resource activeResource = this.getActiveResource();
            while (activeResource instanceof ResourceWrapper) {
                activeResource = ((ResourceWrapper) activeResource).getResource();
            }
            if (!(activeResource instanceof ServletResource)) {
                final Servlet s = (Servlet) super.adaptTo(type);
                if (s != null) {
                    return (T) s;
                }
                final javax.servlet.Servlet sx = (javax.servlet.Servlet) super.adaptTo(javax.servlet.Servlet.class);
                if (sx != null) {
                    return (T) ServletWrapperUtil.toJakartaServlet(sx);
                }
            }
        } else if (type == SlingJakartaScript.class) {
            final SlingJakartaScript s = (SlingJakartaScript) super.adaptTo(type);
            if (s != null) {
                return (T) s;
            }
            final SlingScript legacy = (SlingScript) super.adaptTo(SlingScript.class);
            if (legacy != null) {
                return (T) new SlingScriptWrapper(legacy);
            }
        } else if (type == SlingScript.class) {
            final SlingScript s = (SlingScript) super.adaptTo(type);
            if (s != null) {
                return (T) s;
            }
        }
        return this.getActiveResource().adaptTo(type);
    }