1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.codec;
19
20 import java.io.IOException;
21 import java.io.InputStream;
22
23 import org.apache.hadoop.hbase.Cell;
24
25 public abstract class BaseDecoder implements Codec.Decoder {
26 protected final InputStream in;
27 private boolean hasNext = true;
28 private Cell current = null;
29
30 public BaseDecoder(final InputStream in) {
31 this.in = in;
32 }
33
34 @Override
35 public boolean advance() {
36 if (!this.hasNext) return this.hasNext;
37 try {
38 if (this.in.available() <= 0) {
39 this.hasNext = false;
40 return this.hasNext;
41 }
42 this.current = parseCell();
43 } catch (IOException e) {
44 throw new RuntimeException(e);
45 }
46 return this.hasNext;
47 }
48
49
50
51
52
53 protected abstract Cell parseCell() throws IOException;
54
55 @Override
56 public Cell current() {
57 return this.current;
58 }
59 }