View Javadoc

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, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.omid.transaction;
19  
20  import java.io.IOException;
21  import java.util.List;
22  
23  import org.apache.hadoop.hbase.client.Get;
24  import org.apache.hadoop.hbase.client.Put;
25  import org.apache.hadoop.hbase.client.Result;
26  import org.apache.hadoop.hbase.client.ResultScanner;
27  import org.apache.hadoop.hbase.client.Scan;
28  import org.apache.hadoop.hbase.client.Table;
29  
30  
31  
32  // This class wraps the HTableInterface object when doing client side filtering.
33  public class HTableAccessWrapper implements TableAccessWrapper {
34  
35      private final Table writeTable;
36      private final Table readTable;
37      
38      public HTableAccessWrapper(Table table, Table healerTable) {
39          this.readTable = table;
40          this.writeTable = healerTable;
41      }
42  
43      @Override
44      public Result[] get(List<Get> get) throws IOException {
45          return readTable.get(get);
46      }
47  
48      @Override
49      public Result get(Get get) throws IOException {
50          return readTable.get(get);
51      }
52  
53      @Override
54      public void put(Put put) throws IOException {
55          writeTable.put(put);
56      }
57  
58      @Override
59      public ResultScanner getScanner(Scan scan) throws IOException {
60          return readTable.getScanner(scan);
61      }
62  
63      @Override
64      public void close() throws Exception {
65          writeTable.close();
66          readTable.close();
67      }
68  }