}
private void generateClassReadBody(MethodBinding binding, FieldBinding field, CodeStream codeStream) {
if (field.isPrivate() || !field.canBeSeenBy(binding.declaringClass.fPackage)) {
PrivilegedHandler handler = (PrivilegedHandler) Scope.findPrivilegedHandler(binding.declaringClass);
if (handler == null) {
// one is now required!
ReferenceBinding typebinding = binding.declaringClass;
if (typebinding instanceof ReferenceBinding) {
SourceTypeBinding sourceBinding = (SourceTypeBinding) typebinding;
handler = new PrivilegedHandler((AspectDeclaration) sourceBinding.scope.referenceContext);
sourceBinding.privilegedHandler = handler;
}
}
PrivilegedFieldBinding fBinding = (PrivilegedFieldBinding) handler.getPrivilegedAccessField(field, null);
if (field.isStatic()) {
codeStream.invokestatic(fBinding.reader);
} else {
codeStream.aload_0();