// Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

package com.android.tools.r8.horizontalclassmerging;

import com.android.tools.r8.classmerging.Policy;
import com.android.tools.r8.graph.DexProgramClass;

public abstract class SingleClassPolicy extends Policy {
  /**
   * Determine if {@param program} can be merged with any other classes.
   *
   * @return {@code false} if the class should not be merged, otherwise {@code true}.
   */
  public abstract boolean canMerge(DexProgramClass program);

  @Override
  public boolean isSingleClassPolicy() {
    return true;
  }

  @Override
  public SingleClassPolicy asSingleClassPolicy() {
    return this;
  }
}
