private void createField(ClassNode classNode, String propertyName, boolean isLazy, boolean isStrict) { int modifiers = isLazy ? ACC_PRIVATE | ACC_STATIC | ACC_VOLATILE : ACC_PUBLIC | ACC_FINAL | ACC_STATIC; Expression initialValue = isLazy ? null : ctorX(classNode); final FieldNode fieldNode = classNode.addField(propertyName, modifiers, newClass(classNode), initialValue); createConstructor(classNode, fieldNode, propertyName, isStrict); final BlockStatement body = new BlockStatement(); body.addStatement(isLazy ? lazyBody(classNode, fieldNode) : nonLazyBody(fieldNode)); addGeneratedMethod(classNode, getGetterName(propertyName), ACC_STATIC | ACC_PUBLIC, newClass(classNode), Parameter.EMPTY_ARRAY, ClassNode.EMPTY_ARRAY, body); }