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);