Class RecordRewriter
- java.lang.Object
-
- org.benf.cfr.reader.bytecode.analysis.opgraph.op4rewriters.RecordRewriter
-
public class RecordRewriter extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classRecordRewriter.IsCanonicalConstructor(package private) static classRecordRewriter.ThisCheck
-
Field Summary
Fields Modifier and Type Field Description private static java.util.Set<AccessFlag>recordFieldFlagsprivate static java.util.Set<AccessFlagMethod>recordGetterFlags
-
Constructor Summary
Constructors Constructor Description RecordRewriter()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static booleanclassArgEq(Expression expression, JavaTypeInstance thisType)private static booleancmpArgsEq(Expression cmpArgs, JavaTypeInstance thisType, java.util.List<ClassFileField> instances)private static ClassFileFieldgetCFF(LValue lhs, JavaRefTypeInstance thisType)private static MethodgetMethod(ClassFile classFile, java.util.List<JavaTypeInstance> args, java.lang.String name)private static StructuredStatementgetSingleCodeLine(Method method)private static voidhideConstructorIfEmpty(Method canonicalCons)private static voidhideDefaultGetter(Method method, ClassFileField classFileField, JavaRefTypeInstance thisType)private static voidhideDefaultUtilityMethods(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> instances)private static voidhideEquals(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> fields)private static voidhideHashCode(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> fields)private static voidhideIfMatch(JavaTypeInstance thisType, java.util.List<ClassFileField> fields, Method method, WildcardMatch wcm, StructuredStatement stm)private static voidhideToString(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> fields)private static booleanmethodHandleEq(Expression expression, java.lang.String name)private static booleanremoveImplicitAssignments(Method canonicalCons, java.util.List<ClassFileField> instances, JavaRefTypeInstance thisType)static voidrewrite(ClassFile classFile, DCCommonState state)private static booleanrewriteIfRecord(ClassFile classFile, DCCommonState state)private static booleanstringArgEq(Expression expression, java.lang.String name)
-
-
-
Field Detail
-
recordFieldFlags
private static java.util.Set<AccessFlag> recordFieldFlags
-
recordGetterFlags
private static java.util.Set<AccessFlagMethod> recordGetterFlags
-
-
Method Detail
-
rewrite
public static void rewrite(ClassFile classFile, DCCommonState state)
-
rewriteIfRecord
private static boolean rewriteIfRecord(ClassFile classFile, DCCommonState state)
-
hideDefaultUtilityMethods
private static void hideDefaultUtilityMethods(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> instances)
-
hideEquals
private static void hideEquals(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> fields)
-
hideToString
private static void hideToString(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> fields)
-
hideHashCode
private static void hideHashCode(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> fields)
-
hideIfMatch
private static void hideIfMatch(JavaTypeInstance thisType, java.util.List<ClassFileField> fields, Method method, WildcardMatch wcm, StructuredStatement stm)
-
stringArgEq
private static boolean stringArgEq(Expression expression, java.lang.String name)
-
methodHandleEq
private static boolean methodHandleEq(Expression expression, java.lang.String name)
-
classArgEq
private static boolean classArgEq(Expression expression, JavaTypeInstance thisType)
-
cmpArgsEq
private static boolean cmpArgsEq(Expression cmpArgs, JavaTypeInstance thisType, java.util.List<ClassFileField> instances)
-
getMethod
private static Method getMethod(ClassFile classFile, java.util.List<JavaTypeInstance> args, java.lang.String name)
-
getSingleCodeLine
private static StructuredStatement getSingleCodeLine(Method method)
-
hideDefaultGetter
private static void hideDefaultGetter(Method method, ClassFileField classFileField, JavaRefTypeInstance thisType)
-
hideConstructorIfEmpty
private static void hideConstructorIfEmpty(Method canonicalCons)
-
removeImplicitAssignments
private static boolean removeImplicitAssignments(Method canonicalCons, java.util.List<ClassFileField> instances, JavaRefTypeInstance thisType)
-
getCFF
private static ClassFileField getCFF(LValue lhs, JavaRefTypeInstance thisType)
-
-