[ 
https://issues.apache.org/jira/browse/GROOVY-5752?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul King closed GROOVY-5752.
-----------------------------

> DelegateASTTransformation#addGetterIfNeeded doesn't take boolean isX 
> accessors into account
> -------------------------------------------------------------------------------------------
>
>                 Key: GROOVY-5752
>                 URL: https://issues.apache.org/jira/browse/GROOVY-5752
>             Project: Groovy
>          Issue Type: Bug
>          Components: xforms
>    Affects Versions: 2.0.5, 2.4.0-rc-1
>            Reporter: Joris Kuipers
>            Assignee: Paul King
>             Fix For: 2.4.8
>
>
> I'm using @Delegate on a field whose type includes boolean properties. The 
> resulting byte code properly delegates non-overridden getters and setters, 
> but not boolean isX() accessors. This is due to 
> DelegateASTTransformation#addGetterIfNeeded not considering isX accessors. 
> Right now I've fixed this like this, wrapping the existing method in a for 
> loop iterating over both 'get' and 'is':
> {code}
>     private void addGetterIfNeeded(FieldNode fieldNode, ClassNode owner, 
> PropertyNode prop, String name) {
>       for (String accessor: new String[] {"get", "is"}) {
>               String getterName = accessor + Verifier.capitalize(name);
>               if (owner.getGetterMethod(getterName) == null) {
>                       owner.addMethod(getterName,
>                                       ACC_PUBLIC,
>                                       nonGeneric(prop.getType()),
>                                       Parameter.EMPTY_ARRAY,
>                                       null,
>                                       new ReturnStatement(
>                                                       new PropertyExpression(
>                                                                       new 
> VariableExpression(fieldNode),
>                                                                       name)));
>               }
>       }
>     }
> {code}
> I could include a JUnit test, but the bug seems obvious enough looking at the 
> DelegateASTTransformation code.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to