code: protected void createSetterMethod(ClassNode declaringClass, PropertyNode propertyNode, String setterName,
                                        Statement setterBlock, List<AnnotationNode> annotations) {
          Parameter[] setterParameterTypes = {new Parameter(propertyNode.getType(), "value")};
          int mod = propertyNode.getModifiers() | Modifier.FINAL;
  
          MethodNode setter = new MethodNode(setterName, mod, ClassHelper.VOID_TYPE, setterParameterTypes,
              ClassNode.EMPTY_ARRAY, setterBlock);
          if (annotations != null) setter.addAnnotations(annotations);
          setter.setSynthetic(true);
          declaringClass.addMethod(setter);
      }
docs: Creates a setter method and adds it to the declaring class.  The setter has the form:
  <p>
  void <setter>(<type> fieldName)
  
  @param declaringClass The class to which the method is added
  @param propertyNode   The property node being accessed by this setter
  @param setterName     The name of the setter method
  @param setterBlock    The code body of the method