code: public static String setter(TypeName beanClass, String beanName, ModelProperty property) {		
  		if (property.getParent()!=null && ((ModelClass<?>) property.getParent()).isImmutablePojo()) {
  			return ImmutableUtility.IMMUTABLE_PREFIX + property.getName();
  		} else {
  			String prefix=""; 
  			if (beanName!=null) {
  				prefix=beanName+".";
  			}
  			if (property.isPublicField()) {
  				return prefix+property.getName();
  			} else if (property.isFieldWithSetter()) {
  				return prefix+"set" + converterField2Method.convert(property.getName());
  			} 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
  @return the string