KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > mina > common > support > DefaultConnectFuture


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements. See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership. The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied. See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  *
19  */

20 package org.apache.mina.common.support;
21
22 import org.apache.mina.common.ConnectFuture;
23 import org.apache.mina.common.IoSession;
24 import org.apache.mina.common.RuntimeIOException;
25
26 /**
27  * A default implementation of {@link ConnectFuture}.
28  *
29  * @author The Apache Directory Project (mina-dev@directory.apache.org)
30  * @version $Rev: 555855 $, $Date: 2007-07-13 12:19:00 +0900 (금, 13 7월 2007) $
31  */

32 public class DefaultConnectFuture extends DefaultIoFuture implements
33         ConnectFuture {
34     /**
35      * Returns a new {@link ConnectFuture} which is already marked as 'failed to connect'.
36      */

37     public static ConnectFuture newFailedFuture(Throwable JavaDoc exception) {
38         DefaultConnectFuture failedFuture = new DefaultConnectFuture();
39         failedFuture.setException(exception);
40         return failedFuture;
41     }
42
43     /**
44      * Creates a new instance.
45      */

46     public DefaultConnectFuture() {
47         super(null);
48     }
49
50     @Override JavaDoc
51     public IoSession getSession() throws RuntimeIOException {
52         Object JavaDoc v = getValue();
53         if (v instanceof RuntimeIOException) {
54             throw (RuntimeIOException) v;
55         } else if (v instanceof Throwable JavaDoc) {
56             throw (RuntimeIOException) new RuntimeIOException(
57                     "Failed to get the session.").initCause((Throwable JavaDoc) v);
58         } else {
59             return (IoSession) v;
60         }
61     }
62
63     public boolean isConnected() {
64         return getValue() instanceof IoSession;
65     }
66
67     public void setSession(IoSession session) {
68         setValue(session);
69     }
70
71     public void setException(Throwable JavaDoc exception) {
72         setValue(exception);
73     }
74 }
75
Popular Tags