File tree 2 files changed +17
-7
lines changed
gitiles-servlet/src/main/java/com/google/gitiles
2 files changed +17
-7
lines changed Original file line number Diff line number Diff line change 52
52
/** Base servlet class for Gitiles servlets that serve Soy templates. */
53
53
public abstract class BaseServlet extends HttpServlet {
54
54
private static final long serialVersionUID = 1L ;
55
- private static final String ACCESS_ATTRIBUTE = BaseServlet .class .getName () + "/GitilesAccess" ;
56
55
private static final String DATA_ATTRIBUTE = BaseServlet .class .getName () + "/Data" ;
57
56
private static final String STREAMING_ATTRIBUTE = BaseServlet .class .getName () + "/Streaming" ;
58
57
@@ -366,12 +365,7 @@ protected void renderTextError(
366
365
}
367
366
368
367
protected GitilesAccess getAccess (HttpServletRequest req ) {
369
- GitilesAccess access = (GitilesAccess ) req .getAttribute (ACCESS_ATTRIBUTE );
370
- if (access == null ) {
371
- access = accessFactory .forRequest (req );
372
- req .setAttribute (ACCESS_ATTRIBUTE , access );
373
- }
374
- return access ;
368
+ return GitilesAccess .getAccess (req , accessFactory );
375
369
}
376
370
377
371
protected void setCacheHeaders (HttpServletRequest req , HttpServletResponse res ) {
Original file line number Diff line number Diff line change 16
16
17
17
import java .io .IOException ;
18
18
import java .util .Map ;
19
+ import java .util .Optional ;
19
20
import java .util .Set ;
20
21
import javax .annotation .Nullable ;
21
22
import javax .servlet .http .HttpServletRequest ;
30
31
* information about the host and repository.
31
32
*/
32
33
public interface GitilesAccess {
34
+ /** Access for the current request, if it has been initialized. */
35
+ public static Optional <GitilesAccess > getAccess (HttpServletRequest req ) {
36
+ return Optional .ofNullable ((GitilesAccess ) req .getAttribute (GitilesAccess .class .getName ()));
37
+ }
38
+
39
+ /** Access for the current request. */
40
+ public static GitilesAccess getAccess (HttpServletRequest req , Factory factory ) {
41
+ GitilesAccess access = getAccess (req ).orElse (null );
42
+ if (access == null ) {
43
+ access = factory .forRequest (req );
44
+ req .setAttribute (GitilesAccess .class .getName (), access );
45
+ }
46
+ return access ;
47
+ }
48
+
33
49
/** Factory for per-request access. */
34
50
public interface Factory {
35
51
GitilesAccess forRequest (HttpServletRequest req );
You can’t perform that action at this time.
0 commit comments