| // Copyright (c) 2026, 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.apimodel; |
| |
| import com.android.tools.r8.references.ClassReference; |
| import com.android.tools.r8.references.MethodReference; |
| import com.android.tools.r8.utils.AndroidApiLevel; |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| public class ApiAmendments { |
| |
| public static class ClassAmendment { |
| private final ClassReference classReference; |
| private final AndroidApiLevel apiLevel; |
| |
| public ClassAmendment(ClassReference classReference, AndroidApiLevel apiLevel) { |
| this.classReference = classReference; |
| this.apiLevel = apiLevel; |
| } |
| |
| public ClassReference getClassReference() { |
| return classReference; |
| } |
| |
| public AndroidApiLevel getApiLevel() { |
| return apiLevel; |
| } |
| } |
| |
| public static class MethodAmendment { |
| private final MethodReference methodReference; |
| private final AndroidApiLevel apiLevel; |
| |
| public MethodAmendment(MethodReference methodReference, AndroidApiLevel apiLevel) { |
| this.methodReference = methodReference; |
| this.apiLevel = apiLevel; |
| } |
| |
| public MethodReference getMethodReference() { |
| return methodReference; |
| } |
| |
| public AndroidApiLevel getApiLevel() { |
| return apiLevel; |
| } |
| } |
| |
| public static class FieldAmendment { |
| private final FieldTypelessReference fieldReference; |
| private final AndroidApiLevel apiLevel; |
| |
| public FieldAmendment(FieldTypelessReference fieldReference, AndroidApiLevel apiLevel) { |
| this.fieldReference = fieldReference; |
| this.apiLevel = apiLevel; |
| } |
| |
| public FieldTypelessReference getFieldReference() { |
| return fieldReference; |
| } |
| |
| public AndroidApiLevel getApiLevel() { |
| return apiLevel; |
| } |
| } |
| |
| private final List<ClassAmendment> classes = new ArrayList<>(); |
| private final List<MethodAmendment> methods = new ArrayList<>(); |
| private final List<FieldAmendment> fields = new ArrayList<>(); |
| |
| public void addClass(ClassReference classReference, AndroidApiLevel apiLevel) { |
| classes.add(new ClassAmendment(classReference, apiLevel)); |
| } |
| |
| public void addMethod(MethodReference methodReference, AndroidApiLevel apiLevel) { |
| methods.add(new MethodAmendment(methodReference, apiLevel)); |
| } |
| |
| public void addField(FieldTypelessReference fieldReference, AndroidApiLevel apiLevel) { |
| fields.add(new FieldAmendment(fieldReference, apiLevel)); |
| } |
| |
| public List<ClassAmendment> getClasses() { |
| return classes; |
| } |
| |
| public List<MethodAmendment> getMethods() { |
| return methods; |
| } |
| |
| public List<FieldAmendment> getFields() { |
| return fields; |
| } |
| } |