private void createListenerSetter(ClassNode classNode, PropertyNode propertyNode) { String setterName = "set" + MetaClassHelper.capitalize(propertyNode.getName()); if (classNode.getMethods(setterName).isEmpty()) { Statement setterBlock = createBindableStatement(propertyNode, fieldX(propertyNode.getField())); // create method void <setter>(<type> fieldName) createSetterMethod(classNode, propertyNode, setterName, setterBlock); } else { wrapSetterMethod(classNode, propertyNode.getName()); } }
private void createListenerSetter(SourceUnit source, AnnotationNode node, ClassNode classNode, PropertyNode propertyNode) { String setterName = "set" + MetaClassHelper.capitalize(propertyNode.getName()); if (classNode.getMethods(setterName).isEmpty()) { Expression fieldExpression = new FieldExpression(propertyNode.getField()); Statement setterBlock = createBindableStatement(propertyNode, fieldExpression); // create method void <setter>(<type> fieldName) createSetterMethod(classNode, propertyNode, setterName, setterBlock); } else { wrapSetterMethod(classNode, propertyNode.getName()); } }
private void createListenerSetter(SourceUnit source, AnnotationNode node, ClassNode classNode, PropertyNode propertyNode) { String setterName = "set" + MetaClassHelper.capitalize(propertyNode.getName()); if (classNode.getMethods(setterName).isEmpty()) { Expression fieldExpression = new FieldExpression(propertyNode.getField()); Statement setterBlock = createBindableStatement(propertyNode, fieldExpression); // create method void <setter>(<type> fieldName) createSetterMethod(classNode, propertyNode, setterName, setterBlock); } else { wrapSetterMethod(classNode, propertyNode.getName()); } }
private void createListenerSetter(SourceUnit source, AnnotationNode node, ClassNode classNode, PropertyNode propertyNode) { String setterName = "set" + MetaClassHelper.capitalize(propertyNode.getName()); if (classNode.getMethods(setterName).isEmpty()) { Expression fieldExpression = new FieldExpression(propertyNode.getField()); Statement setterBlock = createBindableStatement(propertyNode, fieldExpression); // create method void <setter>(<type> fieldName) createSetterMethod(classNode, propertyNode, setterName, setterBlock); } else { wrapSetterMethod(classNode, propertyNode.getName()); } }
@Override protected void createSetterMethod(final ClassNode declaringClass, final PropertyNode propertyNode, final String setterName, final Statement setterBlock) { super.createSetterMethod(declaringClass, propertyNode, setterName, setterBlock); final String argumentName = "value"; final Statement code = stmt(callThisX(setterName, args(varX(argumentName)))); final MethodNode setter = new MethodNode( propertyNode.getName(), propertyNode.getModifiers(), ClassHelper.VOID_TYPE, params(param(propertyNode.getType(), argumentName)), ClassNode.EMPTY_ARRAY, code); setter.setSynthetic(true); declaringClass.addMethod(setter); } }