AbstractCompositeRenderCondition.java
2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*
* Decompiled with CFR 0_118.
*
* Could not load the following classes:
* javax.servlet.RequestDispatcher
* javax.servlet.ServletException
* javax.servlet.ServletRequest
* javax.servlet.ServletResponse
* org.apache.sling.api.SlingHttpServletRequest
* org.apache.sling.api.SlingHttpServletResponse
* org.apache.sling.api.request.RequestDispatcherOptions
* org.apache.sling.api.resource.Resource
* org.apache.sling.api.resource.ValueMap
* org.apache.sling.api.wrappers.ValueMapDecorator
*/
package com.adobe.granite.ui.components.rendercondition;
import com.adobe.granite.ui.components.rendercondition.RenderCondition;
import com.adobe.granite.ui.components.rendercondition.SimpleRenderCondition;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.request.RequestDispatcherOptions;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.api.wrappers.ValueMapDecorator;
public abstract class AbstractCompositeRenderCondition
implements RenderCondition {
protected SlingHttpServletRequest request;
protected SlingHttpServletResponse response;
protected Resource resource;
public AbstractCompositeRenderCondition(SlingHttpServletRequest request, SlingHttpServletResponse response, Resource resource) {
this.request = request;
this.response = response;
this.resource = resource;
}
/*
* WARNING - Removed try catching itself - possible behaviour change.
*/
protected RenderCondition call(Resource resource) throws ServletException, IOException {
try {
RenderCondition condition;
ValueMap vm = resource != null ? resource.getValueMap() : new ValueMapDecorator(new HashMap());
String resourceType = (String)vm.get("sling:resourceType", (Object)"granite/ui/components/foundation/renderconditions/simple");
RequestDispatcher dispatcher = this.request.getRequestDispatcher(resource, new RequestDispatcherOptions(resourceType));
if (dispatcher != null) {
dispatcher.include((ServletRequest)this.request, (ServletResponse)this.response);
condition = (RenderCondition)this.request.getAttribute(RenderCondition.class.getName());
if (condition != null) {
RenderCondition renderCondition = condition;
return renderCondition;
}
}
condition = SimpleRenderCondition.TRUE;
return condition;
}
finally {
this.request.removeAttribute(RenderCondition.class.getName());
}
}
}