@SuppressWarnings("RedundantIfStatement") boolean shouldFieldBeIgnored(FieldNode fieldNode) { if (fieldNode == keyField) return true; if (fieldNode == ownerField) return true; if (getAnnotation(fieldNode, IGNORE_ANNOTATION) != null) return true; if (fieldNode.isFinal()) return true; if (fieldNode.getName().startsWith("$")) return true; if ((fieldNode.getModifiers() & ACC_TRANSIENT) != 0) return true; return false; }
@SuppressWarnings("unchecked") private boolean makeGetPrivateFieldWithBridgeMethod( final Expression receiver, final ClassNode receiverType, final String fieldName, final boolean safe, final boolean implicitThis) { FieldNode field = receiverType.getField(fieldName); ClassNode classNode = controller.getClassNode(); if (field != null && Modifier.isPrivate(field.getModifiers()) && (StaticInvocationWriter.isPrivateBridgeMethodsCallAllowed(receiverType, classNode) || StaticInvocationWriter.isPrivateBridgeMethodsCallAllowed(classNode, receiverType)) && !receiverType.equals(classNode)) { Map<String, MethodNode> accessors = (Map<String, MethodNode>) receiverType .redirect() .getNodeMetaData(StaticCompilationMetadataKeys.PRIVATE_FIELDS_ACCESSORS); if (accessors != null) { MethodNode methodNode = accessors.get(fieldName); if (methodNode != null) { MethodCallExpression mce = new MethodCallExpression( receiver, methodNode.getName(), new ArgumentListExpression( field.isStatic() ? new ConstantExpression(null) : receiver)); mce.setMethodTarget(methodNode); mce.setSafe(safe); mce.setImplicitThis(implicitThis); mce.visit(controller.getAcg()); return true; } } } return false; }
boolean shouldFieldBeIgnoredForValidation(FieldNode fieldNode) { if (getAnnotation(fieldNode, IGNORE_ANNOTATION) != null) return true; if (fieldNode.getName().startsWith("$")) return true; if ((fieldNode.getModifiers() & ACC_TRANSIENT) != 0) return true; return false; }