View Javadoc

1   package cz.cuni.amis.pogamut.base.communication.connection;
2   
3   import java.io.IOException;
4   import java.io.Reader;
5   
6   import cz.cuni.amis.pogamut.base.component.bus.exception.ComponentNotRunningException;
7   import cz.cuni.amis.pogamut.base.component.bus.exception.ComponentPausedException;
8   import cz.cuni.amis.utils.exception.PogamutIOException;
9   
10  public abstract class WorldReader extends Reader {
11  
12  	public boolean ready() throws PogamutIOException {
13  		try {
14  			return super.ready();
15  		} catch (IOException e) {
16  			throw new PogamutIOException(e, this);
17  		}
18  	}
19  	
20  	@Override
21  	public abstract void close() throws PogamutIOException;
22  
23  	@Override
24  	public abstract int read(char[] arg0, int arg1, int arg2) throws PogamutIOException, ComponentNotRunningException, ComponentPausedException;
25  
26  	public static class WorldReaderWrapper extends WorldReader {
27  
28  		private Reader reader;
29  
30  		public WorldReaderWrapper(Reader reader) {
31  			this.reader = reader;
32  		}
33  		
34  		@Override
35  		public void close() throws PogamutIOException {
36  			try {
37  				reader.close();
38  			} catch (IOException e) {
39  				throw new PogamutIOException(e, this);
40  			}
41  		}
42  
43  		@Override
44  		public int read(char[] arg0, int arg1, int arg2)
45  				throws PogamutIOException, ComponentNotRunningException {
46  			try {
47  				return reader.read(arg0, arg1, arg2);
48  			} catch (IOException e) {
49  				throw new PogamutIOException(e, this);
50  			}
51  		}
52  		
53  	}
54  	
55  }