if (excludes.contains(fieldNode.getName())) continue;
Expression fieldExpr = new VariableExpression(fieldNode);
Expression from = new MethodCallExpression(fieldExpr, "clone", MethodCallExpression.NO_ARGUMENTS);
Expression to = new PropertyExpression(result, fieldNode.getName());
Statement doClone = assignStatement(to, from);
Statement doNothing = new EmptyStatement();
body.addStatement(new IfStatement(isInstanceOf(fieldExpr, CLONEABLE_TYPE), doClone, doNothing));
}
body.addStatement(new ReturnStatement(result));
ClassNode[] exceptions = {ClassHelper.make(CloneNotSupportedException.class)};
cNode.addMethod("clone", ACC_PUBLIC, ClassHelper.OBJECT_TYPE, new Parameter[0], exceptions, body);