import org.aspectj.org.eclipse.jdt.internal.compiler.env.IBinaryNestedType;
import org.aspectj.org.eclipse.jdt.internal.compiler.env.IBinaryType;
import org.aspectj.org.eclipse.jdt.internal.compiler.env.IBinaryTypeAnnotation;
+import org.aspectj.org.eclipse.jdt.internal.compiler.env.IRecordComponent;
import org.aspectj.org.eclipse.jdt.internal.compiler.env.ITypeAnnotationWalker;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.ExternalAnnotationStatus;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment;
// this is the extra state that enables us to be an IBinaryType
char[] enclosingTypeName;
- boolean isLocal, isAnonymous, isMember;
+ boolean isLocal, isAnonymous, isMember, isRecord;
char[] sourceFileName;
char[] fileName;
char[] sourceName;
IBinaryNestedType[] memberTypes;
IBinaryAnnotation[] annotations;
IBinaryTypeAnnotation[] typeAnnotations;
+ IRecordComponent[] recordComponents;
public CompactTypeStructureRepresentation(ClassFileReader cfr, boolean isAspect) {
// }
this.superclassName = cfr.getSuperclassName(); // slashes...
interfaces = cfr.getInterfaceNames();
+ isRecord = cfr.isRecord();
+ recordComponents = cfr.getRecordComponents();
}
return isLocal;
}
+ @Override
+ public boolean isRecord() {
+ return isRecord;
+ }
+
public boolean isMember() {
return isMember;
}
return binFields;
}
+ @Override
+ public IRecordComponent[] getRecordComponents() {
+ return recordComponents;
+ }
+
public IBinaryMethod[] getMethods() {
return binMethods;
}
return ExternalAnnotationStatus.NOT_EEA_CONFIGURED;
}
-}
\ No newline at end of file
+}