1 // Copyright 2012 Google Inc. All Rights Reserved.
3 package com
.google
.appengine
.tools
.development
;
5 import com
.google
.apphosting
.api
.ApiProxy
;
6 import com
.google
.apphosting
.api
.ApiProxy
.Environment
;
8 import java
.util
.Collection
;
11 * Helper class for {@link RequestEndListener}. This class provides two alternate ways to register
12 * a {@link RequestEndListener}. The first method works with classes that implement a {@link
13 * RequestEndListener}:
15 * RequestEndListener listener = ...;
16 * RequestEndListenerHelper.register(listener);
18 * The second method is for classes able to extend this class:
20 * RequestEndListenerHelper listener = ...;
21 * listener.register();
24 public abstract class RequestEndListenerHelper
implements RequestEndListener
{
26 * Register the current instance to be called when a request ends.
28 public void register() {
33 * Register a RequestEndListener to be called when a request ends.
35 * @param listener The listener to register.
37 public static void register(RequestEndListener listener
) {
38 getListeners().add(listener
);
42 * Get the collection of all the registered RequestEndListeners. The collection is mutable
43 * so the caller may add or remove listeners
45 * @return The collection of registered RequestEndListeners.
47 public static Collection
<RequestEndListener
> getListeners() {
48 Environment environment
= ApiProxy
.getCurrentEnvironment();
49 @SuppressWarnings("unchecked")
50 Collection
<RequestEndListener
> listenerSet
= (Collection
<RequestEndListener
>)
51 environment
.getAttributes().get(LocalEnvironment
.REQUEST_END_LISTENERS
);