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 }