Skip to content

Commit e8b25a5

Browse files
committed
Properly stringify collection attributes
- Show them as proper XPath sequences
1 parent b71d5ec commit e8b25a5

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

src/main/java/net/sourceforge/pmd/util/fxdesigner/util/DesignerUtil.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.net.URL;
99
import java.util.ArrayList;
1010
import java.util.Arrays;
11+
import java.util.Collection;
1112
import java.util.Collections;
1213
import java.util.HashSet;
1314
import java.util.LinkedHashSet;
@@ -411,14 +412,21 @@ public static BuilderFactory customBuilderFactory(@NonNull DesignerRoot owner) {
411412

412413

413414
public static String attrToXpathString(Attribute attr) {
414-
String stringValue = attr.getStringValue();
415-
Object v = attr.getValue();
415+
return valueToXPathString(attr.getValue(), attr.getStringValue());
416+
}
417+
418+
private static String valueToXPathString(Object v, String stringValue) {
416419
if (v instanceof String || v instanceof Enum) {
417-
stringValue = "\"" + StringEscapeUtils.escapeJava(stringValue) + "\"";
420+
return "\"" + StringEscapeUtils.escapeJava(stringValue) + "\"";
418421
} else if (v instanceof Boolean) {
419-
stringValue = v + "()";
422+
return v + "()";
423+
} else if (v instanceof Collection) {
424+
return ((Collection<?>) v).stream()
425+
.map(o -> valueToXPathString(o, String.valueOf(o)))
426+
.collect(Collectors.joining(", ", "(", ")"));
420427
}
421-
return String.valueOf(stringValue);
428+
429+
return String.valueOf(v);
422430
}
423431

424432

0 commit comments

Comments
 (0)