public class RecordRewriter
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
(package private) static class |
RecordRewriter.IsCanonicalConstructor |
Modifier and Type | Field and Description |
---|---|
private static java.util.Set<AccessFlag> |
recordFieldFlags |
private static java.util.Set<AccessFlagMethod> |
recordGetterFlags |
Constructor and Description |
---|
RecordRewriter() |
Modifier and Type | Method and Description |
---|---|
private static boolean |
classArgEq(Expression expression,
JavaTypeInstance thisType) |
private static boolean |
cmpArgsEq(Expression cmpArgs,
JavaTypeInstance thisType,
java.util.List<ClassFileField> instances) |
private static ClassFileField |
getCFF(LValue lhs,
JavaRefTypeInstance thisType) |
private static Method |
getMethod(ClassFile classFile,
java.util.List<JavaTypeInstance> args,
java.lang.String name) |
private static StructuredStatement |
getSingleCodeLine(Method method) |
private static void |
hideConstructorIfEmpty(Method canonicalCons) |
private static void |
hideDefaultGetter(Method method,
ClassFileField classFileField,
JavaRefTypeInstance thisType) |
private static void |
hideDefaultUtilityMethods(ClassFile classFile,
JavaTypeInstance thisType,
java.util.List<ClassFileField> instances) |
private static void |
hideEquals(ClassFile classFile,
JavaTypeInstance thisType,
java.util.List<ClassFileField> fields) |
private static void |
hideHashCode(ClassFile classFile,
JavaTypeInstance thisType,
java.util.List<ClassFileField> fields) |
private static void |
hideIfMatch(JavaTypeInstance thisType,
java.util.List<ClassFileField> fields,
Method method,
WildcardMatch wcm,
StructuredStatement stm) |
private static void |
hideToString(ClassFile classFile,
JavaTypeInstance thisType,
java.util.List<ClassFileField> fields) |
private static boolean |
isThis(Expression obj,
JavaTypeInstance thisType) |
private static boolean |
methodHandleEq(Expression expression,
java.lang.String name) |
private static void |
removeImplicitAssignments(Method canonicalCons,
java.util.List<ClassFileField> instances,
JavaRefTypeInstance thisType) |
static void |
rewrite(ClassFile classFile,
DCCommonState state) |
private static boolean |
rewriteIfRecord(ClassFile classFile,
DCCommonState state) |
private static boolean |
stringArgEq(Expression expression,
java.lang.String name) |
private static java.util.Set<AccessFlag> recordFieldFlags
private static java.util.Set<AccessFlagMethod> recordGetterFlags
public static void rewrite(ClassFile classFile, DCCommonState state)
private static boolean rewriteIfRecord(ClassFile classFile, DCCommonState state)
private static void hideDefaultUtilityMethods(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> instances)
private static void hideEquals(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> fields)
private static void hideToString(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> fields)
private static void hideHashCode(ClassFile classFile, JavaTypeInstance thisType, java.util.List<ClassFileField> fields)
private static void hideIfMatch(JavaTypeInstance thisType, java.util.List<ClassFileField> fields, Method method, WildcardMatch wcm, StructuredStatement stm)
private static boolean stringArgEq(Expression expression, java.lang.String name)
private static boolean methodHandleEq(Expression expression, java.lang.String name)
private static boolean classArgEq(Expression expression, JavaTypeInstance thisType)
private static boolean cmpArgsEq(Expression cmpArgs, JavaTypeInstance thisType, java.util.List<ClassFileField> instances)
private static Method getMethod(ClassFile classFile, java.util.List<JavaTypeInstance> args, java.lang.String name)
private static StructuredStatement getSingleCodeLine(Method method)
private static void hideDefaultGetter(Method method, ClassFileField classFileField, JavaRefTypeInstance thisType)
private static void hideConstructorIfEmpty(Method canonicalCons)
private static void removeImplicitAssignments(Method canonicalCons, java.util.List<ClassFileField> instances, JavaRefTypeInstance thisType)
private static boolean isThis(Expression obj, JavaTypeInstance thisType)
private static ClassFileField getCFF(LValue lhs, JavaRefTypeInstance thisType)