001/**
002 *
003 * Licensed to the Apache Software Foundation (ASF) under one
004 * or more contributor license agreements.  See the NOTICE file
005 * distributed with this work for additional information
006 * regarding copyright ownership.  The ASF licenses this file
007 * to you under the Apache License, Version 2.0 (the
008 * "License"); you may not use this file except in compliance
009 * with the License.  You may obtain a copy of the License at
010 *
011 *     http://www.apache.org/licenses/LICENSE-2.0
012 *
013 * Unless required by applicable law or agreed to in writing, software
014 * distributed under the License is distributed on an "AS IS" BASIS,
015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016 * See the License for the specific language governing permissions and
017 * limitations under the License.
018 */
019package org.apache.hadoop.hbase.mob.compactions;
020
021import org.apache.yetus.audience.InterfaceAudience;
022
023/**
024 * The compaction request for mob files.
025 */
026@InterfaceAudience.Private
027public abstract class MobCompactionRequest {
028
029  protected long selectionTime;
030  protected CompactionType type = CompactionType.PART_FILES;
031
032  public void setCompactionType(CompactionType type) {
033    this.type = type;
034  }
035
036  /**
037   * Gets the selection time.
038   * @return The selection time.
039   */
040  public long getSelectionTime() {
041    return this.selectionTime;
042  }
043
044  /**
045   * Gets the compaction type.
046   * @return The compaction type.
047   */
048  public CompactionType getCompactionType() {
049    return type;
050  }
051
052  protected enum CompactionType {
053
054    /**
055     * Part of mob files are selected.
056     */
057    PART_FILES,
058
059    /**
060     * All of mob files are selected.
061     */
062    ALL_FILES;
063  }
064}