View Javadoc

1   /*
2    * Copyright 2007 Tim Peierls
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *         http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.directwebremoting.guice;
17  
18  /**
19   * A partially implemented handler for objects contained in contexts that 
20   * are closing. Concrete extensions of this class only have to define 
21   * {@code close} and have a constructor that calls {@code super(T.class)}.
22   * @author Tim Peierls [tim at peierls dot net]
23   */
24  public abstract class AbstractContextCloseHandler<T> implements ContextCloseHandler<T>
25  {   
26      protected AbstractContextCloseHandler(Class<T> type)
27      {
28          this.type = type;
29      }
30      
31      public abstract void close(T object) throws Exception;
32      
33      public Class<T> type()
34      {
35          return type;
36      }
37      
38      private final Class<T> type;
39  }