blob: bd9081e3eb445de9b5101054b434c992a83a54d3 [file] [log] [blame]
// Copyright (c) 2018, 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.utils.codeinspector;
import com.android.tools.r8.naming.MemberNaming.Signature;
public abstract class MemberSubject extends ClassOrMemberSubject {
public abstract Signature getOriginalSignature();
public abstract Signature getFinalSignature();
public String getOriginalName() {
return getOriginalName(true);
}
public String getOriginalName(boolean qualified) {
Signature originalSignature = getOriginalSignature();
if (originalSignature != null) {
String name = originalSignature.name;
if (!qualified) {
int index = name.lastIndexOf(".");
if (index >= 0) {
return name.substring(index + 1);
}
}
return name;
}
return null;
}
public String getFinalName() {
Signature finalSignature = getFinalSignature();
return finalSignature == null ? null : finalSignature.name;
}
public abstract String getFinalSignatureAttribute();
public FieldSubject asFieldSubject() {
return null;
}
public boolean isFieldSubject() {
return false;
}
public MethodSubject asMethodSubject() {
return null;
}
public boolean isMethodSubject() {
return false;
}
}