KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > ubik > net > nio > dispatcher > CycleCommand


1 package org.sapia.ubik.net.nio.dispatcher;
2
3 import java.io.IOException JavaDoc;
4 import java.nio.ByteBuffer JavaDoc;
5
6 import org.sapia.ubik.net.nio.Cycle;
7 import org.sapia.ubik.net.nio.util.ReadHelper;
8 import org.sapia.ubik.net.nio.util.WriteHelper;
9
10 /**
11  * @author Yanick Duchesne
12  *
13  * <dl>
14  * <dt><b>Copyright: </b>
15  * <dd>Copyright &#169; 2002-2005 <a HREF="http://www.sapia-oss.org">Sapia Open
16  * Source Software </a>. All Rights Reserved.</dd>
17  * </dt>
18  * <dt><b>License: </b>
19  * <dd>Read the license.txt file of the jar or visit the <a
20  * HREF="http://www.sapia-oss.org/license.html">license page </a> at the Sapia
21  * OSS web site</dd>
22  * </dt>
23  * </dl>
24  */

25 public class CycleCommand implements Runnable JavaDoc {
26   
27   private Cycle _cycle;
28   private ReadHelper _reader = new ReadHelper();
29   private WriteHelper _writer = new WriteHelper();
30   
31   public CycleCommand(){
32   }
33   
34   CycleCommand init(Cycle cycle){
35     _cycle = cycle;
36     return this;
37   }
38   
39   /**
40    * @see java.lang.Runnable#run()
41    */

42   public void run() {
43     ByteBuffer JavaDoc input = _cycle.getByteBuffer();
44     switch(_cycle.state()){
45     
46     case Cycle.STATE_READ:
47       try {
48         _reader.read(_cycle);
49       } catch(IOException JavaDoc e) {
50         _cycle.error(e);
51       } catch(RuntimeException JavaDoc e) {
52         _cycle.error(e);
53       }
54       break;
55     case Cycle.STATE_WRITE:
56       try {
57         _writer.write(_cycle);
58       } catch(IOException JavaDoc e) {
59         _cycle.error(e);
60       } catch(RuntimeException JavaDoc e) {
61         _cycle.error(e);
62       }
63       break;
64     case Cycle.STATE_PROCESS:
65       _cycle.getHandler().process(_cycle);
66       break;
67     default:
68       _cycle.error(new IllegalStateException JavaDoc("Not in processing state"));
69     }
70     _cycle.next();
71   }
72
73 }
74
Popular Tags