Skip to content

Commit 6feb264

Browse files
Vincent Hémeryndoschek
authored andcommitted
Fix PrintUtil for multi-valued attributes
Signed-off-by: Vincent Hémery <vincent.hemery@bonitasoft.com>
1 parent db7a399 commit 6feb264

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

  • examples/org.eclipse.emfcloud.modelserver.example/src/main/java/org/eclipse/emfcloud/modelserver/example/util

examples/org.eclipse.emfcloud.modelserver.example/src/main/java/org/eclipse/emfcloud/modelserver/example/util/PrintUtil.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010
********************************************************************************/
1111
package org.eclipse.emfcloud.modelserver.example.util;
1212

13+
import java.util.Collection;
14+
import java.util.stream.Collectors;
15+
import java.util.stream.Stream;
16+
1317
import org.eclipse.emf.ecore.EAttribute;
1418
import org.eclipse.emf.ecore.EObject;
1519
import org.eclipse.emf.ecore.util.EcoreUtil;
@@ -122,8 +126,16 @@ public StringBuilder defaultCase(final EObject object) {
122126
beginObject(object.eClass().getName() + " {");
123127

124128
for (EAttribute attr : object.eClass().getEAllAttributes()) {
125-
print(String.format("%s: %s", attr.getName(),
126-
EcoreUtil.convertToString(attr.getEAttributeType(), object.eGet(attr))));
129+
Object value = object.eGet(attr);
130+
if (attr.isMany()) {
131+
Stream<String> printableValues = ((Collection<?>) value).stream()
132+
.map(v -> EcoreUtil.convertToString(attr.getEAttributeType(), v));
133+
print(String.format("%s: %s", attr.getName(),
134+
printableValues.collect(Collectors.toList()).toString()));
135+
} else {
136+
print(String.format("%s: %s", attr.getName(),
137+
EcoreUtil.convertToString(attr.getEAttributeType(), value)));
138+
}
127139
}
128140

129141
recurse(object);

0 commit comments

Comments
 (0)