blob: da0f128951f77b3905768e81a19e925ec4c32247 [file] [log] [blame]
// Copyright (c) 2021, 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.graph;
import com.android.tools.r8.references.ClassReference;
import java.util.function.Consumer;
public interface ClassDefinition extends Definition {
Iterable<DexType> allImmediateSupertypes();
void forEachClassField(Consumer<? super DexClassAndField> consumer);
void forEachClassMethod(Consumer<? super DexClassAndMethod> consumer);
MethodCollection getMethodCollection();
ClassReference getClassReference();
DexType getType();
boolean isInterface();
@Override
default boolean isClass() {
return true;
}
@Override
default ClassDefinition asClass() {
return this;
}
boolean isClasspathClass();
DexClasspathClass asClasspathClass();
boolean isLibraryClass();
DexLibraryClass asLibraryClass();
boolean isProgramClass();
DexProgramClass asProgramClass();
}