View Javadoc

1   /**
2    * Copyright 2010 The Apache Software Foundation
3    *
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *     http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing, software
15   * distributed under the License is distributed on an "AS IS" BASIS,
16   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17   * See the License for the specific language governing permissions and
18   * limitations under the License.
19   */
20  package org.apache.hadoop.hbase.master;
21  
22  import org.apache.commons.logging.Log;
23  import org.apache.commons.logging.LogFactory;
24  import org.apache.hadoop.hbase.HConstants;
25  import org.apache.hadoop.hbase.HRegionInfo;
26  import org.apache.hadoop.hbase.TableNotDisabledException;
27  import org.apache.hadoop.hbase.client.Put;
28  import org.apache.hadoop.hbase.ipc.HRegionInterface;
29  import org.apache.hadoop.hbase.util.Writables;
30  
31  import java.io.IOException;
32  
33  abstract class ColumnOperation extends TableOperation {
34    private final Log LOG = LogFactory.getLog(this.getClass());
35  
36    protected ColumnOperation(final HMaster master, final byte [] tableName)
37    throws IOException {
38      super(master, tableName);
39    }
40  
41    @Override
42    protected void processScanItem(String serverName, final HRegionInfo info)
43    throws IOException {
44      if (isEnabled(info)) {
45        throw new TableNotDisabledException(tableName);
46      }
47    }
48  
49    protected void updateRegionInfo(HRegionInterface server, byte [] regionName,
50      HRegionInfo i) throws IOException {
51      Put put = new Put(i.getRegionName());
52      put.add(HConstants.CATALOG_FAMILY, HConstants.REGIONINFO_QUALIFIER, Writables.getBytes(i));
53      server.put(regionName, put);
54      if (LOG.isDebugEnabled()) {
55        LOG.debug("updated columns in row: " + i.getRegionNameAsString());
56      }
57    }
58  }