diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/.ratings index e394ca9914fdd47add342bb6abf34589f7b40d87..9f583729c761a0887771ba5a2451bf09106a7547 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/.ratings +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/.ratings @@ -1,4 +1,4 @@ DelegatingControllerFactory.java ad214d83b5821b39862b7c382c91a13c3dfddbd0 GREEN DelegatingFactoryBase.java f421742267610f41bb6196346026d2f239d90ed0 GREEN -DelegatingModelFactory.java 87ad29bc457b6316392625fb63221039bbb7c616 GREEN +DelegatingModelFactory.java 717b706781879efe9efcb5ce4bf53723e39a3e1b YELLOW DelegatingVisualFactory.java 7e834acd12ae4d1c2b2b32a5456dc9f2b6d4e466 GREEN diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/DelegatingModelFactory.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/DelegatingModelFactory.java index 87ad29bc457b6316392625fb63221039bbb7c616..717b706781879efe9efcb5ce4bf53723e39a3e1b 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/DelegatingModelFactory.java +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/DelegatingModelFactory.java @@ -17,6 +17,7 @@ package org.fortiss.tooling.kernel.ui.extension.base.factory; import static java.util.stream.Collectors.toList; import static org.apache.commons.lang3.reflect.ConstructorUtils.getMatchingAccessibleConstructor; +import static org.conqat.lib.commons.collections.CollectionUtils.isNullOrEmpty; import static org.fortiss.tooling.kernel.utils.EcoreUtils.getInterfaceType; import static org.fortiss.tooling.kernel.utils.LoggingUtils.error; @@ -80,7 +81,8 @@ public class DelegatingModelFactory extends DelegatingFactoryBase<IModelFactory> @Override public List<?> getContentAnchorageModels(Object parent) { return getDelegateFactories().stream().map(f -> f.getContentAnchorageModels(parent)) - .filter(cc -> cc != null).findFirst().orElse(null); + .filter(lm -> !isNullOrEmpty(lm)).flatMap(Collection::stream).distinct() + .collect(toList()); } /** {@inheritDoc} */ @@ -114,21 +116,24 @@ public class DelegatingModelFactory extends DelegatingFactoryBase<IModelFactory> @Override public List<?> getContentModels() { return getDelegateFactories().stream().map(f -> f.getContentModels()) - .flatMap(Collection::stream).collect(toList()); + .filter(lm -> !isNullOrEmpty(lm)).flatMap(Collection::stream).distinct() + .collect(toList()); } /** {@inheritDoc} */ @Override public List<?> getDiagramAnchorageModels() { return getDelegateFactories().stream().map(f -> f.getDiagramAnchorageModels()) - .flatMap(Collection::stream).collect(toList()); + .filter(lm -> !isNullOrEmpty(lm)).flatMap(Collection::stream).distinct() + .collect(toList()); } /** {@inheritDoc} */ @Override public List<?> getLinkModels() { return getDelegateFactories().stream().map(f -> f.getLinkModels()) - .flatMap(Collection::stream).collect(toList()); + .filter(lm -> !isNullOrEmpty(lm)).flatMap(Collection::stream).distinct() + .collect(toList()); } /** {@inheritDoc} */