From cec6e141380ed42b08211c0305fcc1f5b1742251 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vincent=20H=C3=A9mery?= Date: Thu, 9 Jan 2025 11:13:35 +0100 Subject: [PATCH] Fix PrintUtil for multi-valued attributes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Vincent Hémery --- .../modelserver/example/util/PrintUtil.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/examples/org.eclipse.emfcloud.modelserver.example/src/main/java/org/eclipse/emfcloud/modelserver/example/util/PrintUtil.java b/examples/org.eclipse.emfcloud.modelserver.example/src/main/java/org/eclipse/emfcloud/modelserver/example/util/PrintUtil.java index 95146abe..6d00ecf3 100644 --- a/examples/org.eclipse.emfcloud.modelserver.example/src/main/java/org/eclipse/emfcloud/modelserver/example/util/PrintUtil.java +++ b/examples/org.eclipse.emfcloud.modelserver.example/src/main/java/org/eclipse/emfcloud/modelserver/example/util/PrintUtil.java @@ -10,6 +10,10 @@ ********************************************************************************/ package org.eclipse.emfcloud.modelserver.example.util; +import java.util.Collection; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.util.EcoreUtil; @@ -122,8 +126,16 @@ public StringBuilder defaultCase(final EObject object) { beginObject(object.eClass().getName() + " {"); for (EAttribute attr : object.eClass().getEAllAttributes()) { - print(String.format("%s: %s", attr.getName(), - EcoreUtil.convertToString(attr.getEAttributeType(), object.eGet(attr)))); + Object value = object.eGet(attr); + if (attr.isMany()) { + Stream printableValues = ((Collection) value).stream() + .map(v -> EcoreUtil.convertToString(attr.getEAttributeType(), v)); + print(String.format("%s: %s", attr.getName(), + printableValues.collect(Collectors.toList()).toString())); + } else { + print(String.format("%s: %s", attr.getName(), + EcoreUtil.convertToString(attr.getEAttributeType(), value))); + } } recurse(object);