blob: 15c79e92ea7e8ff849730810630cf6896a402f96 [file]
// 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;
}
}