### Question:
ViewBindingObjectClassGen implements SourceCodeWritable { public void defineSimpleOneWayPropertyClasses() { for(SimpleOneWayPropertyInfo propInfo : simpleOneWayPropertyInfoList) { JDefinedClass definedBindingAttributeClass = propInfo.defineBindingClass(new ClassDefinitionCallback() { @Override public JDefinedClass define(String typeName) { try{ return definedClass._class(JMod.PUBLIC|JMod.STATIC, typeName); }catch(JClassAlreadyExistsException e) { throw new RuntimeException("Class '"+typeName+"' already exists", e); } } }); AbstractJClass propertyClass = codeModel.ref(propInfo.propertyType()); AbstractJClass oneWayPropertyInterface = codeModel.ref(OneWayPropertyViewAttribute.class).narrow( viewClass, propertyClass); definedBindingAttributeClass._implements(oneWayPropertyInterface); JMethod method = definedBindingAttributeClass.method(JMod.PUBLIC, codeModel.VOID, "updateView"); method.annotate(Override.class); JVar viewParam = method.param(viewClass, "view"); JVar newValueParam = method.param(propertyClass, "newValue"); JBlock body = method.body(); body.invoke(viewParam, propInfo.propertySetter()).arg(newValueParam); } } ViewBindingObjectClassGen(ViewBindingInfo viewBindingInfo); @Override void writeTo(AbstractCodeWriter output); void defineFields(); void defineConstructor(); void defineSimpleOneWayPropertyClasses(); void defineMapBindingAttributesMethod();  }### Answer:
@Test public void shouldDefineSimpleOneWayPropertyClasses() throws JClassAlreadyExistsException { ViewBindingInfo info = createViewBindingInfo(DefineSimpleOneWayPropertyClasses.class, Lists.newArrayList(new SimpleOneWayPropertyInfo(setterOf("imageAlpha")), new SimpleOneWayPropertyInfo(setterOf("scaleType")))); ViewBindingObjectClassGen gen = new ViewBindingObjectClassGen(info); gen.defineSimpleOneWayPropertyClasses(); assertOutputSameTextFile(gen, "DefineSimpleOneWayPropertyClasses_VB.java.txt"); }