[531720] Optimize DesignServices.getDisplayedEClasses and related
Bug: 531720
Change-Id: I4dafb814d49b240ebdb34d9eb952d9f7a6dcb8b9
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
diff --git a/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java b/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java
index c56674b..fbbab68 100644
--- a/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java
+++ b/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java
@@ -69,6 +69,7 @@
import org.eclipse.sirius.diagram.EdgeTarget;
import org.eclipse.sirius.diagram.business.api.query.DDiagramQuery;
import org.eclipse.sirius.diagram.business.internal.helper.task.operations.CreateViewTask;
+import org.eclipse.sirius.diagram.business.internal.query.DDiagramInternalQuery;
import org.eclipse.sirius.diagram.description.AbstractNodeMapping;
import org.eclipse.sirius.diagram.description.DiagramElementMapping;
import org.eclipse.sirius.diagram.description.tool.CreateView;
@@ -250,7 +251,7 @@
public Set<EClass> getDisplayedEClasses(DSemanticDiagram diagram) {
Set<EClass> result = Sets.newLinkedHashSet();
- Iterator<DNodeList> it = Iterators.filter(new DDiagramQuery(diagram).getAllDiagramElements().iterator(),
+ Iterator<DNodeList> it = Iterators.filter(new DDiagramInternalQuery(diagram).getContainers().iterator(),
DNodeList.class);
while (it.hasNext()) {
DNodeList dec = it.next();
@@ -263,9 +264,9 @@
public Set<EClassifier> getDisplayedEClassifiers(DSemanticDiagram diagram) {
Set<EClassifier> result = Sets.newLinkedHashSet();
- Iterator<DNodeList> it = Iterators.filter(new DDiagramQuery(diagram).getAllDiagramElements().iterator(),
- DNodeList.class);
- while (it.hasNext()) {
+ Iterator<DNodeList> it = Iterators.filter(new DDiagramInternalQuery(diagram).getContainers().iterator(),
+ DNodeList.class);
+ while (it.hasNext()) {
DNodeList dec = it.next();
if (dec.getTarget() instanceof EClassifier && dec.isVisible()) {
result.add((EClassifier) dec.getTarget());
@@ -276,8 +277,8 @@
private Set<EClass> getInternalEClasses(DSemanticDiagram diagram) {
Set<EClass> result = Sets.newLinkedHashSet();
- Iterator<DNodeList> it = Iterators.filter(new DDiagramQuery(diagram).getAllDiagramElements().iterator(),
- DNodeList.class);
+ Iterator<DNodeList> it = Iterators.filter(new DDiagramInternalQuery(diagram).getContainers().iterator(),
+ DNodeList.class);
while (it.hasNext()) {
DNodeList dec = it.next();
if (dec.getTarget() instanceof EClass) {