// 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();

  @Override
  default boolean isClass() {
    return true;
  }

  @Override
  default ClassDefinition asClass() {
    return this;
  }

  boolean isClasspathClass();

  DexClasspathClass asClasspathClass();

  boolean isLibraryClass();

  DexLibraryClass asLibraryClass();

  boolean isProgramClass();

  DexProgramClass asProgramClass();
}
