View Javadoc

1   /*
2    * Copyright 2011 The Apache Software Foundation
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package org.apache.hadoop.hbase.coprocessor;
18  
19  import java.util.List;
20  import java.util.Map;
21  
22  import com.google.common.collect.ImmutableList;
23  import org.apache.hadoop.hbase.CoprocessorEnvironment;
24  import org.apache.hadoop.hbase.HRegionInfo;
25  import org.apache.hadoop.hbase.KeyValue;
26  import org.apache.hadoop.hbase.client.Delete;
27  import org.apache.hadoop.hbase.client.Get;
28  import org.apache.hadoop.hbase.client.Increment;
29  import org.apache.hadoop.hbase.client.Put;
30  import org.apache.hadoop.hbase.client.Result;
31  import org.apache.hadoop.hbase.client.Scan;
32  import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
33  import org.apache.hadoop.hbase.filter.WritableByteArrayComparable;
34  import org.apache.hadoop.hbase.regionserver.HRegion;
35  import org.apache.hadoop.hbase.regionserver.InternalScanner;
36  import org.apache.hadoop.hbase.regionserver.RegionScanner;
37  import org.apache.hadoop.hbase.regionserver.Store;
38  import org.apache.hadoop.hbase.regionserver.StoreFile;
39  import org.apache.hadoop.hbase.regionserver.wal.HLogKey;
40  import org.apache.hadoop.hbase.regionserver.wal.WALEdit;
41  
42  import java.io.IOException;
43  
44  /**
45   * An abstract class that implements RegionObserver.
46   * By extending it, you can create your own region observer without
47   * overriding all abstract methods of RegionObserver.
48   */
49  public abstract class BaseRegionObserver implements RegionObserver {
50    @Override
51    public void start(CoprocessorEnvironment e) throws IOException { }
52  
53    @Override
54    public void stop(CoprocessorEnvironment e) throws IOException { }
55  
56    @Override
57    public void preOpen(ObserverContext<RegionCoprocessorEnvironment> e) { }
58  
59    @Override
60    public void postOpen(ObserverContext<RegionCoprocessorEnvironment> e) { }
61  
62    @Override
63    public void preClose(ObserverContext<RegionCoprocessorEnvironment> e,
64        boolean abortRequested) { }
65  
66    @Override
67    public void postClose(ObserverContext<RegionCoprocessorEnvironment> e,
68        boolean abortRequested) { }
69  
70    @Override
71    public void preFlush(ObserverContext<RegionCoprocessorEnvironment> e) { }
72  
73    @Override
74    public void postFlush(ObserverContext<RegionCoprocessorEnvironment> e) { }
75  
76    @Override
77    public void preSplit(ObserverContext<RegionCoprocessorEnvironment> e) { }
78  
79    @Override
80    public void postSplit(ObserverContext<RegionCoprocessorEnvironment> e,
81        HRegion l, HRegion r) { }
82  
83    @Override
84    public void preCompactSelection(final ObserverContext<RegionCoprocessorEnvironment> c,
85        final Store store, final List<StoreFile> candidates) { }
86  
87    @Override
88    public void postCompactSelection(final ObserverContext<RegionCoprocessorEnvironment> c,
89        final Store store, final ImmutableList<StoreFile> selected) { }
90  
91    @Override
92    public InternalScanner preCompact(ObserverContext<RegionCoprocessorEnvironment> e,
93        final Store store, final InternalScanner scanner) {
94      return scanner;
95    }
96  
97    @Override
98    public void postCompact(ObserverContext<RegionCoprocessorEnvironment> e,
99        final Store store, final StoreFile resultFile) { }
100 
101   @Override
102   public void preGetClosestRowBefore(final ObserverContext<RegionCoprocessorEnvironment> e,
103       final byte [] row, final byte [] family, final Result result)
104     throws IOException {
105   }
106 
107   @Override
108   public void postGetClosestRowBefore(final ObserverContext<RegionCoprocessorEnvironment> e,
109       final byte [] row, final byte [] family, final Result result)
110       throws IOException {
111   }
112 
113   @Override
114   public void preGet(final ObserverContext<RegionCoprocessorEnvironment> e,
115       final Get get, final List<KeyValue> results) throws IOException {
116   }
117 
118   @Override
119   public void postGet(final ObserverContext<RegionCoprocessorEnvironment> e,
120       final Get get, final List<KeyValue> results) throws IOException {
121   }
122 
123   @Override
124   public boolean preExists(final ObserverContext<RegionCoprocessorEnvironment> e,
125       final Get get, final boolean exists) throws IOException {
126     return exists;
127   }
128 
129   @Override
130   public boolean postExists(final ObserverContext<RegionCoprocessorEnvironment> e,
131       final Get get, boolean exists) throws IOException {
132     return exists;
133   }
134 
135   @Override
136   public void prePut(final ObserverContext<RegionCoprocessorEnvironment> e, 
137       final Put put, final WALEdit edit, final boolean writeToWAL) throws IOException {
138   }
139 
140   @Override
141   public void postPut(final ObserverContext<RegionCoprocessorEnvironment> e, 
142       final Put put, final WALEdit edit, final boolean writeToWAL) throws IOException {
143   }
144 
145   @Override
146   public void preDelete(final ObserverContext<RegionCoprocessorEnvironment> e, 
147       final Delete delete, final WALEdit edit, final boolean writeToWAL) throws IOException {
148   }
149 
150   @Override
151   public void postDelete(final ObserverContext<RegionCoprocessorEnvironment> e,
152       final Delete delete, final WALEdit edit, final boolean writeToWAL) throws IOException {
153   }
154 
155   @Override
156   public boolean preCheckAndPut(final ObserverContext<RegionCoprocessorEnvironment> e,
157       final byte [] row, final byte [] family, final byte [] qualifier,
158       final CompareOp compareOp, final WritableByteArrayComparable comparator,
159       final Put put, final boolean result) throws IOException {
160     return result;
161   }
162 
163   @Override
164   public boolean postCheckAndPut(final ObserverContext<RegionCoprocessorEnvironment> e,
165       final byte [] row, final byte [] family, final byte [] qualifier,
166       final CompareOp compareOp, final WritableByteArrayComparable comparator,
167       final Put put, final boolean result) throws IOException {
168     return result;
169   }
170 
171   @Override
172   public boolean preCheckAndDelete(final ObserverContext<RegionCoprocessorEnvironment> e,
173       final byte [] row, final byte [] family, final byte [] qualifier,
174       final CompareOp compareOp, final WritableByteArrayComparable comparator,
175       final Delete delete, final boolean result) throws IOException {
176     return result;
177   }
178 
179   @Override
180   public boolean postCheckAndDelete(final ObserverContext<RegionCoprocessorEnvironment> e,
181       final byte [] row, final byte [] family, final byte [] qualifier,
182       final CompareOp compareOp, final WritableByteArrayComparable comparator,
183       final Delete delete, final boolean result) throws IOException {
184     return result;
185   }
186 
187   @Override
188   public long preIncrementColumnValue(final ObserverContext<RegionCoprocessorEnvironment> e,
189       final byte [] row, final byte [] family, final byte [] qualifier,
190       final long amount, final boolean writeToWAL) throws IOException {
191     return amount;
192   }
193 
194   @Override
195   public long postIncrementColumnValue(final ObserverContext<RegionCoprocessorEnvironment> e,
196       final byte [] row, final byte [] family, final byte [] qualifier,
197       final long amount, final boolean writeToWAL, long result)
198       throws IOException {
199     return result;
200   }
201 
202   @Override
203   public void preIncrement(final ObserverContext<RegionCoprocessorEnvironment> e,
204       final Increment increment, final Result result) throws IOException {
205   }
206 
207   @Override
208   public void postIncrement(final ObserverContext<RegionCoprocessorEnvironment> e,
209       final Increment increment, final Result result) throws IOException {
210   }
211 
212   @Override
213   public RegionScanner preScannerOpen(final ObserverContext<RegionCoprocessorEnvironment> e,
214       final Scan scan, final RegionScanner s) throws IOException {
215     return s;
216   }
217 
218   @Override
219   public RegionScanner postScannerOpen(final ObserverContext<RegionCoprocessorEnvironment> e,
220       final Scan scan, final RegionScanner s) throws IOException {
221     return s;
222   }
223 
224   @Override
225   public boolean preScannerNext(final ObserverContext<RegionCoprocessorEnvironment> e,
226       final InternalScanner s, final List<Result> results,
227       final int limit, final boolean hasMore) throws IOException {
228     return hasMore;
229   }
230 
231   @Override
232   public boolean postScannerNext(final ObserverContext<RegionCoprocessorEnvironment> e,
233       final InternalScanner s, final List<Result> results, final int limit,
234       final boolean hasMore) throws IOException {
235     return hasMore;
236   }
237 
238   @Override
239   public void preScannerClose(final ObserverContext<RegionCoprocessorEnvironment> e,
240       final InternalScanner s) throws IOException {
241   }
242 
243   @Override
244   public void postScannerClose(final ObserverContext<RegionCoprocessorEnvironment> e,
245       final InternalScanner s) throws IOException {
246   }
247 
248   @Override
249   public void preWALRestore(ObserverContext<RegionCoprocessorEnvironment> env, HRegionInfo info,
250       HLogKey logKey, WALEdit logEdit) throws IOException {
251   }
252 
253   @Override
254   public void postWALRestore(ObserverContext<RegionCoprocessorEnvironment> env,
255       HRegionInfo info, HLogKey logKey, WALEdit logEdit) throws IOException {
256   }
257 }