Skip to content

Commit b5c08a5

Browse files
authored
Fix multi-field name parsing (#340)
- Update test suite to include validation for multiple field declarations using AssertJ. - Refactor `getName` method in `FieldImpl` for more efficient retrieval of fully qualified names.
1 parent fa31230 commit b5c08a5

File tree

2 files changed

+9
-12
lines changed

2 files changed

+9
-12
lines changed

impl/src/main/java/org/jboss/forge/roaster/model/impl/FieldImpl.java

+2-12
Original file line numberDiff line numberDiff line change
@@ -291,17 +291,7 @@ public FieldSource<O> setVisibility(final Visibility scope)
291291
@Override
292292
public String getName()
293293
{
294-
String result = null;
295-
for (Object f : field.fragments())
296-
{
297-
if (f instanceof VariableDeclarationFragment)
298-
{
299-
VariableDeclarationFragment frag = (VariableDeclarationFragment) f;
300-
result = frag.getName().getFullyQualifiedName();
301-
break;
302-
}
303-
}
304-
return result;
294+
return fragment.getName().getFullyQualifiedName();
305295
}
306296

307297
@Override
@@ -499,4 +489,4 @@ public int getColumnNumber()
499489
{
500490
return cu.getColumnNumber(getStartPosition());
501491
}
502-
}
492+
}

tests/src/test/java/org/jboss/forge/test/roaster/model/FieldMultipleTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.jboss.forge.roaster.model.source.JavaClassSource;
1414
import org.junit.jupiter.api.Test;
1515

16+
import static org.assertj.core.api.Assertions.assertThat;
1617
import static org.junit.jupiter.api.Assertions.assertEquals;
1718
import static org.junit.jupiter.api.Assertions.assertFalse;
1819
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -125,4 +126,10 @@ public void testMultipleFieldDeclarationWithInitializers()
125126
assertEquals(1, fields.get(2).getType().getArrayDimensions());
126127
}
127128

129+
@Test
130+
public void testMultipleFieldDeclarationParse()
131+
{
132+
JavaClassSource javaClassSource = Roaster.parse(JavaClassSource.class, "public class Test { private String a,b; }");
133+
assertThat(javaClassSource.getFields()).hasSize(2).extracting(FieldSource::getName).containsExactly("a", "b");
134+
}
128135
}

0 commit comments

Comments
 (0)