From c156348116dcacb8ae1aac9256eecdafde01896b Mon Sep 17 00:00:00 2001 From: Konrad Windszus Date: Wed, 11 Feb 2026 16:54:48 +0100 Subject: [PATCH] Use correct getter method prefix for type "Boolean" Calculate prefix only once in getPrefix(JavaFieldMetadata) and use that in "generateEquals(...)" and "generateToString(...)" This closes #543 --- .../modello/plugin/java/JavaModelloGenerator.java | 13 +++++++++---- .../src/test/resources/models/tostring.mdo | 6 ++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/modello-plugins/modello-plugin-java/src/main/java/org/codehaus/modello/plugin/java/JavaModelloGenerator.java b/modello-plugins/modello-plugin-java/src/main/java/org/codehaus/modello/plugin/java/JavaModelloGenerator.java index 19cdeb5f0..157c38b1f 100644 --- a/modello-plugins/modello-plugin-java/src/main/java/org/codehaus/modello/plugin/java/JavaModelloGenerator.java +++ b/modello-plugins/modello-plugin-java/src/main/java/org/codehaus/modello/plugin/java/JavaModelloGenerator.java @@ -347,6 +347,7 @@ private JMethod generateEquals(ModelClass modelClass) { for (ModelField identifier : modelClass.getIdentifierFields(getGeneratedVersion())) { String name = identifier.getName(); + // for primitives reference field directly if ("boolean".equals(identifier.getType()) || "byte".equals(identifier.getType()) || "char".equals(identifier.getType()) @@ -357,7 +358,10 @@ private JMethod generateEquals(ModelClass modelClass) { || "long".equals(identifier.getType())) { sc.add("result = result && " + name + " == that." + name + ";"); } else { - name = "get" + capitalise(name) + "()"; + // non-primitives use getters + JavaFieldMetadata javaFieldMetadata = (JavaFieldMetadata) identifier.getMetadata(JavaFieldMetadata.ID); + String prefix = getPrefix(javaFieldMetadata); + name = prefix + capitalise(name) + "()"; sc.add("result = result && ( " + name + " == null ? that." + name + " == null : " + name + ".equals( that." + name + " ) );"); } @@ -396,10 +400,11 @@ private JMethod generateToString(ModelClass modelClass, boolean onlyIdentifierFi for (Iterator j = fields.iterator(); j.hasNext(); ) { ModelField identifier = j.next(); - String getter = "boolean".equals(identifier.getType()) ? "is" : "get"; + JavaFieldMetadata javaFieldMetadata = (JavaFieldMetadata) identifier.getMetadata(JavaFieldMetadata.ID); + String prefix = getPrefix(javaFieldMetadata); sc.add("buf.append( \"" + identifier.getName() + " = '\" );"); - sc.add("buf.append( " + getter + capitalise(identifier.getName()) + "() );"); + sc.add("buf.append( " + prefix + capitalise(identifier.getName()) + "() );"); sc.add("buf.append( \"'\" );"); if (j.hasNext()) { @@ -1173,7 +1178,7 @@ private JMethod createGetter(JField field, ModelField modelField) { JavaFieldMetadata javaFieldMetadata = (JavaFieldMetadata) modelField.getMetadata(JavaFieldMetadata.ID); - String prefix = javaFieldMetadata.isBooleanGetter() ? "is" : "get"; + String prefix = getPrefix(javaFieldMetadata); JType returnType = field.getType(); String interfaceCast = ""; diff --git a/modello-plugins/modello-plugin-java/src/test/resources/models/tostring.mdo b/modello-plugins/modello-plugin-java/src/test/resources/models/tostring.mdo index b2a945919..50e9ebb30 100644 --- a/modello-plugins/modello-plugin-java/src/test/resources/models/tostring.mdo +++ b/modello-plugins/modello-plugin-java/src/test/resources/models/tostring.mdo @@ -25,6 +25,12 @@ double true + + flag + 1.0.0 + Boolean + true +