| // 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.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; | |
| } | |
| } |