in src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletResource.java [136:175]
public <T> T adaptTo(Class<T> type) {
Resource wrappedResource = this.wrapped.get();
if (type == Servlet.class && servlet != null) {
return (T) servlet; // unchecked cast
}
if (type == javax.servlet.Servlet.class && servlet != null) {
return (T) ServletWrapperUtil.toJavaxServlet(servlet); // unchecked cast
}
if (type == InputStream.class && isBundledScriptServlet() != null) {
InputStream result = isBundledScriptServlet().getInputStream();
if (result != null) {
return (T) result;
}
}
if (type == BundledRenderUnit.class && isBundledScriptServlet() != null) {
return (T) isBundledScriptServlet().getBundledRenderUnit();
}
if (wrappedResource != null) {
T result = wrappedResource.adaptTo(type);
if (result != null) {
return result;
}
}
if (type == ValueMap.class) {
final Map<String, Object> props = new HashMap<>();
props.put("sling:resourceType", this.getResourceType());
props.put("sling:resourceSuperType", this.getResourceSuperType());
if (servlet != null) {
props.put("servletName", this.getServletName());
props.put("servletClass", this.servlet.getClass().getName());
}
return (T) new ValueMapDecorator(props); // unchecked cast
}
return super.adaptTo(type);
}