code: private static String setter(ModelProperty property, String value) {
  		if (property.getParent()!=null && ((ModelClass<?>) property.getParent()).isImmutablePojo()) {
  			return ImmutableUtility.IMMUTABLE_PREFIX + property.getName() + "=" + value;
  		} else {
  			if (property.isPublicField())
  				return property.getName() + "=" + value;
  			else if (property.isFieldWithSetter()) {
  				return "set" + converterField2Method.convert(property.getName()) + "(" + value + ")";
  			} else {
  				throw new PropertyVisibilityException(String.format("property '%s' of class '%s' can not be modify",
  						property.getName(), property.getParent().getElement().asType()));
  			}
  		}
  
  	}
docs: Setter.
  
  @param beanClass
  the bean class
  @param property
  the property
  @param value
  the value
  @return the string