// this.value = newVal;
// }
JMethod $set = writer.declareMethod( codeModel.VOID, "set"+prop.getName(true) );
JType setterType = exposedType;
if(forcePrimitiveAccess) setterType = setterType.unboxify();
JVar $value = writer.addParameter( setterType, "value" );
JBlock body = $set.body();
if ($value.type().equals(implType)) {
body.assign(JExpr._this().ref(ref()), $value);
} else {
body.assign(JExpr._this().ref(ref()), castToImplType($value));