This is an automated email from the ASF dual-hosted git repository. coheigea pushed a commit to branch coheigea/boolean-codemodel in repository https://gitbox.apache.org/repos/asf/cxf-xjc-utils.git
commit 5f0580f7281a5914aad080f5713d3f8d2b90c883 Author: Colm O hEigeartaigh <[email protected]> AuthorDate: Thu Oct 15 10:00:06 2026 +0100 Build BooleanGetAndIsPlugin getters with codemodel instead of raw source --- .../apache/cxf/xjc/bgi/BooleanGetAndIsPluginTest.java | 8 ++++++-- .../org/apache/cxf/xjc/bgi/BooleanGetAndIsPlugin.java | 18 ++++++++---------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/boolean-test/src/test/java/org/apache/cxf/xjc/bgi/BooleanGetAndIsPluginTest.java b/boolean-test/src/test/java/org/apache/cxf/xjc/bgi/BooleanGetAndIsPluginTest.java index 0acf46a..1dfb180 100644 --- a/boolean-test/src/test/java/org/apache/cxf/xjc/bgi/BooleanGetAndIsPluginTest.java +++ b/boolean-test/src/test/java/org/apache/cxf/xjc/bgi/BooleanGetAndIsPluginTest.java @@ -20,6 +20,7 @@ package org.apache.cxf.xjc.bgi; import org.apache.cxf.configuration.foo1.Foo; +import org.junit.Assert; import org.junit.Test; public class BooleanGetAndIsPluginTest { @@ -29,8 +30,11 @@ public class BooleanGetAndIsPluginTest { Foo foo = new org.apache.cxf.configuration.foo1.ObjectFactory().createFoo(); - foo.getBooleanAttr(); - foo.isBooleanAttr(); + // getXxx() delegates to isXxx() + Assert.assertTrue(foo.isBooleanAttr()); + Assert.assertTrue(foo.getBooleanAttr()); + foo.setBooleanAttr(false); + Assert.assertFalse(foo.getBooleanAttr()); } } diff --git a/boolean/src/main/java/org/apache/cxf/xjc/bgi/BooleanGetAndIsPlugin.java b/boolean/src/main/java/org/apache/cxf/xjc/bgi/BooleanGetAndIsPlugin.java index 07cc931..e0a5dc6 100644 --- a/boolean/src/main/java/org/apache/cxf/xjc/bgi/BooleanGetAndIsPlugin.java +++ b/boolean/src/main/java/org/apache/cxf/xjc/bgi/BooleanGetAndIsPlugin.java @@ -27,10 +27,9 @@ import java.util.logging.Logger; import org.xml.sax.ErrorHandler; -import com.sun.codemodel.JBlock; +import com.sun.codemodel.JExpr; import com.sun.codemodel.JMethod; import com.sun.codemodel.JMod; -import com.sun.codemodel.JType; import com.sun.tools.xjc.Options; import com.sun.tools.xjc.outline.ClassOutline; import com.sun.tools.xjc.outline.Outline; @@ -63,21 +62,20 @@ public class BooleanGetAndIsPlugin { private void processClass(ClassOutline clazz) { Collection<JMethod> methods = clazz.implClass.methods(); - Map<String, JType> methodsToAdd = new HashMap<String, JType>(); + Map<String, JMethod> methodsToAdd = new HashMap<String, JMethod>(); for (JMethod method : methods) { if (method.name().startsWith(IS_PREFIX) && requiresGetter(methods, method)) { - methodsToAdd.put(method.name(), method.type()); + methodsToAdd.put(method.name(), method); } } - Iterator<Entry<String, JType>> todo = methodsToAdd.entrySet().iterator(); + Iterator<Entry<String, JMethod>> todo = methodsToAdd.entrySet().iterator(); while (todo.hasNext()) { - Entry<String, JType> entry = todo.next(); - String newName = "get" + entry.getKey().substring(2); + JMethod isMethod = todo.next().getValue(); + String newName = "get" + isMethod.name().substring(2); LOG.info("Adding method " + newName); - JMethod newMethod = clazz.implClass.method(JMod.PUBLIC, entry.getValue(), newName); - JBlock body = newMethod.body(); - body.directStatement("return " + entry.getKey() + "();"); + JMethod newMethod = clazz.implClass.method(JMod.PUBLIC, isMethod.type(), newName); + newMethod.body()._return(JExpr.invoke(isMethod)); } }
