return;
}
final Set<String> propertyNamesToIncludeInWhiteList = getPropertyNamesToIncludeInWhiteList(sourceUnit, classNode);
final ListExpression listExpression = new ListExpression();
if (propertyNamesToIncludeInWhiteList.size() > 0) {
for (String propertyName : propertyNamesToIncludeInWhiteList) {
listExpression.addExpression(new ConstantExpression(propertyName));
final FieldNode declaredField = getDeclaredFieldInInheritanceHierarchy(classNode, propertyName);
boolean isSimpleType = false;
if (declaredField != null) {
final ClassNode type = declaredField.getType();
if (type != null) {
isSimpleType = SIMPLE_TYPES.contains(type);
}
}
if (!isSimpleType) {
listExpression.addExpression(new ConstantExpression(propertyName + "_*"));
listExpression.addExpression(new ConstantExpression(propertyName + ".*"));
}
}
} else {
listExpression.addExpression(new ConstantExpression(NO_BINDABLE_PROPERTIES));
}
classNode.addField(DEFAULT_DATABINDING_WHITELIST,
Modifier.STATIC | Modifier.PUBLIC | Modifier.FINAL, new ClassNode(List.class),
listExpression);