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