KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > coldcore > coloradoftp > filter > impl > GenericDataFilter


1 /**
2  * @see com.coldcore.coloradoftp.filter.DataFilter
3  *
4  * This filter does nothing but forwards data is it is.
5  * It can be used as a filter for TYPE I, STRU F and MODE S.
6  */

7 package com.coldcore.coloradoftp.filter.impl;
8
9 import com.coldcore.coloradoftp.filter.DataFilter;
10
11 import java.io.IOException JavaDoc;
12 import java.nio.ByteBuffer JavaDoc;
13 import java.nio.channels.ReadableByteChannel JavaDoc;
14 import java.nio.channels.WritableByteChannel JavaDoc;
15
16 public class GenericDataFilter implements DataFilter {
17
18   protected WritableByteChannel JavaDoc wbc;
19   protected ReadableByteChannel JavaDoc rbc;
20   protected String JavaDoc name;
21   protected boolean upload;
22
23
24   public void setChannel(WritableByteChannel JavaDoc wbc) {
25     this.wbc = wbc;
26     upload = true;
27   }
28
29
30   public void setChannel(ReadableByteChannel JavaDoc rbc) {
31     this.rbc = rbc;
32     upload = false;
33   }
34
35
36   public boolean mayModifyDataLength() {
37     return false;
38   }
39
40
41   public boolean isOpen() {
42     return upload ? wbc.isOpen() : rbc.isOpen();
43   }
44
45
46   public void close() throws IOException JavaDoc {
47     if (upload) wbc.close();
48     else rbc.close();
49   }
50
51
52   public int write(ByteBuffer JavaDoc src) throws IOException JavaDoc {
53     //Do nothing, pass as it is
54
return wbc.write(src);
55   }
56
57
58   public int read(ByteBuffer JavaDoc dst) throws IOException JavaDoc {
59     //Do nothing, pass as it is
60
return rbc.read(dst);
61   }
62
63
64   public String JavaDoc getName() {
65     return name;
66   }
67
68
69   public void setName(String JavaDoc name) {
70     this.name = name;
71   }
72 }
73
Popular Tags