blob: e64f101b2fada15dba4d54dd11c8dd04d10e2f7e [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.graph.lens;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexField;
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.ir.optimize.CustomLensCodeRewriter;
import com.android.tools.r8.utils.collections.BidirectionalManyToManyRepresentativeMap;
import com.android.tools.r8.utils.collections.BidirectionalManyToOneRepresentativeMap;
import java.util.Map;
public class NestedGraphLensWithCustomLensCodeRewriter extends NestedGraphLens {
private CustomLensCodeRewriter customLensCodeRewriter;
public NestedGraphLensWithCustomLensCodeRewriter(
AppView<?> appView,
BidirectionalManyToOneRepresentativeMap<DexField, DexField> fieldMap,
BidirectionalManyToOneRepresentativeMap<DexMethod, DexMethod> methodMap,
BidirectionalManyToManyRepresentativeMap<DexType, DexType> typeMap,
CustomLensCodeRewriter customLensCodeRewriter) {
super(appView, fieldMap, methodMap, typeMap);
this.customLensCodeRewriter = customLensCodeRewriter;
}
public NestedGraphLensWithCustomLensCodeRewriter(
AppView<?> appView,
BidirectionalManyToOneRepresentativeMap<DexField, DexField> fieldMap,
Map<DexMethod, DexMethod> methodMap,
BidirectionalManyToManyRepresentativeMap<DexType, DexType> typeMap,
BidirectionalManyToManyRepresentativeMap<DexMethod, DexMethod> newMethodSignatures) {
super(appView, fieldMap, methodMap, typeMap, newMethodSignatures);
}
@Override
public boolean hasCustomLensCodeRewriter() {
return true;
}
public void setCustomLensCodeRewriter(CustomLensCodeRewriter customLensCodeRewriter) {
this.customLensCodeRewriter = customLensCodeRewriter;
}
@Override
public CustomLensCodeRewriter getCustomLensCodeRewriter() {
assert customLensCodeRewriter != null;
return customLensCodeRewriter;
}
}