blob: fba6b8de526acd8166f5f33265c6f442dd2b6a0f [file] [log] [blame]
// Copyright (c) 2023, 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;
import java.util.Set;
/** Data provided in the primary callback of {@link DexFilePerClassFileConsumer}. */
@Keep
public interface DexFilePerClassFileConsumerData {
/** Class descriptor of the class from the input class-file. */
String getPrimaryClassDescriptor();
/** DEX encoded data in a ByteDataView wrapper. */
ByteDataView getByteDataView();
/** Copy of the bytes for the DEX encoded data. */
byte[] getByteDataCopy();
/** Class descriptors for all classes defined in the DEX data. */
Set<String> getClassDescriptors();
/** Diagnostics handler for reporting. */
DiagnosticsHandler getDiagnosticsHandler();
/**
* Class descriptor of the primary-class's synthetic context.
*
* <p>If primary class is a compiler-synthesized class (i.e. it is an input that was synthesized
* by a prior D8 intermediate compilation) then the value is the descriptor of the class that
* caused the primary class to be synthesized. The value is null in all other cases.
*/
String getSynthesizingContextForPrimaryClass();
}