diff options
author | Maxime Porhel | 2020-10-22 19:22:49 +0000 |
---|---|---|
committer | Maxime Porhel | 2020-10-23 13:59:41 +0000 |
commit | b03f01a4478f82ffaf66d802446820e053ce57f4 (patch) | |
tree | 388cb6225e8fcc509be364d47c5f3a48edb6bf22 /plugins/org.eclipse.sirius.diagram.sequence/src | |
parent | a031b0e2ca079e9aa325b75575112056e690f01c (diff) | |
download | org.eclipse.sirius-b03f01a4478f82ffaf66d802446820e053ce57f4.tar.gz org.eclipse.sirius-b03f01a4478f82ffaf66d802446820e053ce57f4.tar.xz org.eclipse.sirius-b03f01a4478f82ffaf66d802446820e053ce57f4.zip |
[567517] Refactor CacheHelper
- Identify structural and range dependant cache.
- Clear range dependant caches as soon as a RangeSetter.setVerticalRange
is called.
- Rename the cache activator and tester methods
Bug: 567517
Change-Id: I2a854fda59e7816fda4227ebd076e7fb97822605
Signed-off-by: Maxime Porhel <maxime.porhel@obeo.fr>
Diffstat (limited to 'plugins/org.eclipse.sirius.diagram.sequence/src')
10 files changed, 83 insertions, 120 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/AbstractFrame.java b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/AbstractFrame.java index 02d04c317b..aa4d58cc11 100644 --- a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/AbstractFrame.java +++ b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/AbstractFrame.java @@ -91,7 +91,7 @@ public abstract class AbstractFrame extends AbstractSequenceNode implements ISeq * @return the covered lifelines. */ public Collection<Lifeline> computeCoveredLifelines() { - if (CacheHelper.isCacheEnabled()) { + if (CacheHelper.isStructuralCacheEnabled()) { Collection<Lifeline> coverage = CacheHelper.getCoverageCache().get(this); if (coverage != null) { return new ArrayList<Lifeline>(coverage); @@ -132,7 +132,7 @@ public abstract class AbstractFrame extends AbstractSequenceNode implements ISeq DslCommonPlugin.PROFILER.stopWork(COVERAGE); - if (CacheHelper.isCacheEnabled()) { + if (CacheHelper.isStructuralCacheEnabled()) { CacheHelper.getCoverageCache().put(this, coveredLifelines); } diff --git a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/AbstractNodeEvent.java b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/AbstractNodeEvent.java index 74d97d4bdc..00ca0f5a7d 100644 --- a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/AbstractNodeEvent.java +++ b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/AbstractNodeEvent.java @@ -105,7 +105,7 @@ public abstract class AbstractNodeEvent extends AbstractSequenceNode implements @Override public ISequenceEvent getParentEvent() { - if (CacheHelper.isCacheEnabled()) { + if (CacheHelper.isStructuralCacheEnabled()) { ISequenceEvent parentEvent = CacheHelper.getEventToParentEventCache().get(this); if (parentEvent != null) { return parentEvent; @@ -119,7 +119,7 @@ public abstract class AbstractNodeEvent extends AbstractSequenceNode implements parent = getParentOperand().get(); } - if (CacheHelper.isCacheEnabled()) { + if (CacheHelper.isStructuralCacheEnabled()) { CacheHelper.getEventToParentEventCache().put(this, parent); } return parent; @@ -156,7 +156,7 @@ public abstract class AbstractNodeEvent extends AbstractSequenceNode implements */ @Override public Option<Operand> getParentOperand() { - if (CacheHelper.isCacheEnabled()) { + if (CacheHelper.isStructuralCacheEnabled()) { Option<Operand> parentOperand = CacheHelper.getEventToParentOperandCache().get(this); if (parentOperand != null) { return parentOperand; @@ -164,7 +164,7 @@ public abstract class AbstractNodeEvent extends AbstractSequenceNode implements } Option<Operand> parentOperand = new ParentOperandFinder(this).getParentOperand(); - if (CacheHelper.isCacheEnabled()) { + if (CacheHelper.isStructuralCacheEnabled()) { CacheHelper.getEventToParentOperandCache().put(this, parentOperand); } return parentOperand; @@ -242,7 +242,7 @@ public abstract class AbstractNodeEvent extends AbstractSequenceNode implements * @return the hierarchical parent event of this event, if any. */ protected ISequenceEvent getHierarchicalParentEvent(String noFoundParentExceptionMessage) { - if (CacheHelper.isCacheEnabled()) { + if (CacheHelper.isStructuralCacheEnabled()) { ISequenceEvent hierarchicalParent = CacheHelper.getAbstractNodeEventToHierarchicalParentCache().get(this); if (hierarchicalParent != null) { return hierarchicalParent; @@ -254,7 +254,7 @@ public abstract class AbstractNodeEvent extends AbstractSequenceNode implements View parentView = (View) viewContainer; Option<ISequenceEvent> parentElement = ISequenceElementAccessor.getISequenceEvent(parentView); if (parentElement.some()) { - if (CacheHelper.isCacheEnabled()) { + if (CacheHelper.isStructuralCacheEnabled()) { CacheHelper.getAbstractNodeEventToHierarchicalParentCache().put(this, parentElement.get()); } diff --git a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/Execution.java b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/Execution.java index 2716ef96e9..fba1d656cb 100644 --- a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/Execution.java +++ b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/Execution.java @@ -199,7 +199,7 @@ public class Execution extends AbstractNodeEvent { private Option<Message> getCompoundMessage(boolean start) { Message result = null; Option<Message> resultOption = Options.newNone(); - if (CacheHelper.isCacheEnabled()) { + if (CacheHelper.isStructuralCacheEnabled()) { if (start) { result = CacheHelper.getStartCompoundMessageCache().get(this); } else { @@ -236,7 +236,7 @@ public class Execution extends AbstractNodeEvent { } private void putMessageInCache(boolean start, Message message) { - if (CacheHelper.isCacheEnabled()) { + if (CacheHelper.isStructuralCacheEnabled()) { if (start) { CacheHelper.getStartCompoundMessageCache().put(this, message); } else { diff --git a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/Message.java b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/Message.java index 2f7ead0fa4..c0f9c203dd 100644 --- a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/Message.java +++ b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/Message.java @@ -380,7 +380,7 @@ public class Message extends AbstractSequenceElement implements ISequenceEvent { @Override public Option<Operand> getParentOperand() { - if (CacheHelper.isCacheEnabled()) { + if (CacheHelper.isStructuralCacheEnabled()) { Option<Operand> parentOperand = CacheHelper.getEventToParentOperandCache().get(this); if (parentOperand != null) { return parentOperand; @@ -410,7 +410,7 @@ public class Message extends AbstractSequenceElement implements ISequenceEvent { parentOperand = targetParentOperand; } - if (CacheHelper.isCacheEnabled()) { + if (CacheHelper.isStructuralCacheEnabled()) { CacheHelper.getEventToParentOperandCache().put(this, parentOperand); } @@ -483,9 +483,9 @@ public class Message extends AbstractSequenceElement implements ISequenceEvent { if (isReflective()) { Lifeline lifeline = getLifeline().get(); SequenceDiagram diagram = getDiagram(); - EventEndsOrdering semanticOrdering = diagram.getSequenceDDiagram().getSemanticOrdering(); List<EventEnd> msgEnds = EventEndHelper.findEndsFromSemanticOrdering(this); if (msgEnds.size() == 2) { + EventEndsOrdering semanticOrdering = diagram.getSequenceDDiagram().getSemanticOrdering(); int start = semanticOrdering.getEventEnds().indexOf(msgEnds.get(0)); int end = semanticOrdering.getEventEnds().indexOf(msgEnds.get(1)); if (Math.abs(start - end) > 1) { diff --git a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/query/SequenceMessageViewQuery.java b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/query/SequenceMessageViewQuery.java index 71ba3117db..2f004904fc 100644 --- a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/query/SequenceMessageViewQuery.java +++ b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/query/SequenceMessageViewQuery.java @@ -108,7 +108,7 @@ public class SequenceMessageViewQuery { */ public Range getVerticalRange() { Range result = null; - if (CacheHelper.isDragTrackerCacheEnabled()) { + if (CacheHelper.isVerticalRangeCacheEnabled()) { result = CacheHelper.getViewToRangeCache().get(edge); } if (result == null) { @@ -133,7 +133,7 @@ public class SequenceMessageViewQuery { result = new Range(Math.min(firstY, lastY), Math.max(firstY, lastY)); } } - if (CacheHelper.isDragTrackerCacheEnabled()) { + if (CacheHelper.isVerticalRangeCacheEnabled()) { CacheHelper.getViewToRangeCache().put(edge, result); } } @@ -263,10 +263,10 @@ public class SequenceMessageViewQuery { View source = edge.getSource(); Range sourceRange = new Range(0, 0); if (source instanceof Node) { - boolean cacheEnabled = CacheHelper.isDragTrackerCacheEnabled(); - CacheHelper.setDragTrackerCacheEnabled(false); + boolean cacheEnabled = CacheHelper.isVerticalRangeCacheEnabled(); + CacheHelper.setVerticalRangeCacheEnabled(false); sourceRange = new SequenceNodeQuery((Node) source).getVerticalRange(); - CacheHelper.setDragTrackerCacheEnabled(cacheEnabled); + CacheHelper.setVerticalRangeCacheEnabled(cacheEnabled); } return getAnchorAbsolutePosition(srcAnchor, sourceRange); // could not return 0 : other utility method take 0,5 precision point @@ -287,10 +287,10 @@ public class SequenceMessageViewQuery { } View target = edge.getTarget(); if (target instanceof Node) { - boolean cacheEnabled = CacheHelper.isDragTrackerCacheEnabled(); - CacheHelper.setDragTrackerCacheEnabled(false); + boolean cacheEnabled = CacheHelper.isVerticalRangeCacheEnabled(); + CacheHelper.setVerticalRangeCacheEnabled(false); Range targetRange = new SequenceNodeQuery((Node) target).getVerticalRange(); - CacheHelper.setDragTrackerCacheEnabled(cacheEnabled); + CacheHelper.setVerticalRangeCacheEnabled(cacheEnabled); return getAnchorAbsolutePosition(tgtAnchor, targetRange); } diff --git a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/query/SequenceNodeQuery.java b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/query/SequenceNodeQuery.java index 1ac179dfb8..d3ccab68f6 100644 --- a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/query/SequenceNodeQuery.java +++ b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/query/SequenceNodeQuery.java @@ -60,7 +60,7 @@ public class SequenceNodeQuery { if (!(element instanceof DDiagramElement)) { result = null; } else { - if (CacheHelper.isDragTrackerCacheEnabled()) { + if (CacheHelper.isVerticalRangeCacheEnabled()) { result = CacheHelper.getViewToRangeCache().get(node); } if (result == null) { @@ -90,7 +90,7 @@ public class SequenceNodeQuery { if (isShifted()) { result = result.shifted(IBorderItemOffsets.DEFAULT_OFFSET.height); } - if (CacheHelper.isDragTrackerCacheEnabled()) { + if (CacheHelper.isVerticalRangeCacheEnabled()) { CacheHelper.getViewToRangeCache().put(node, result); } } diff --git a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/refresh/RefreshLayoutCommand.java b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/refresh/RefreshLayoutCommand.java index c323f0466a..26179a39ac 100644 --- a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/refresh/RefreshLayoutCommand.java +++ b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/refresh/RefreshLayoutCommand.java @@ -77,7 +77,9 @@ public class RefreshLayoutCommand extends RecordingCommand { IPermissionAuthority permissionAuthority = PermissionAuthorityRegistry.getDefault().getPermissionAuthority(sequenceDDiagram); if (permissionAuthority != null && permissionAuthority.canEditInstance(sequenceDDiagram)) { sequenceDiagram.useCache(true); - CacheHelper.initRefreshLayoutCaches(); + CacheHelper.clearCaches(); + CacheHelper.setStructuralCacheEnabled(true); + CacheHelper.setVerticalRangeCacheEnabled(false); try { /* * Everything has been committed, so we should be in a stable state where it is safe to refresh both @@ -123,6 +125,9 @@ public class RefreshLayoutCommand extends RecordingCommand { } finally { sequenceDiagram.useCache(false); sequenceDiagram.clearAllCaches(); + + CacheHelper.setStructuralCacheEnabled(false); + CacheHelper.setVerticalRangeCacheEnabled(false); CacheHelper.clearCaches(); } } diff --git a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/util/CacheHelper.java b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/util/CacheHelper.java index cef82a7a6d..8f0072a257 100644 --- a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/util/CacheHelper.java +++ b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/util/CacheHelper.java @@ -34,9 +34,9 @@ import org.eclipse.sirius.ext.base.Option; */ public final class CacheHelper { - private static boolean dragTrackercacheEnabled; + private static boolean structuralCacheEnabled; - private static boolean refreshLayoutcacheEnabled; + private static boolean verticalRangeCacheEnabled; private static Map<AbstractFrame, Collection<Lifeline>> coverageCache = new ConcurrentHashMap<>(); @@ -62,98 +62,64 @@ public final class CacheHelper { } /** - * Return if all caches types are enabled. + * Return true if the structural caches are enabled. * - * @return if all caches are enabled. + * @return true if the structural caches are enabled. */ - public static boolean isCacheEnabled() { - return dragTrackercacheEnabled || refreshLayoutcacheEnabled; + public static boolean isStructuralCacheEnabled() { + return structuralCacheEnabled; } /** - * Return if drag tracker cache is enabled. + * Set if the structural cache cache is enabled. * - * @return if drag tracker cache is enabled. - */ - public static boolean isDragTrackerCacheEnabled() { - return dragTrackercacheEnabled; - } - - /** - * Return if refresh layout cache is enabled. - * - * @return if refresh layout cache is enabled. + * @param enabled + * boolean */ - public static boolean isRefreshLayoutCacheEnabled() { - return refreshLayoutcacheEnabled; + public static void setStructuralCacheEnabled(boolean enabled) { + CacheHelper.structuralCacheEnabled = enabled; } /** - * Set if drag tracker cache is enabled. + * Return true if the vertical range cache is enabled. * - * @param enabled - * boolean + * @return true if the vertical range cache is enabled. */ - public static void setDragTrackerCacheEnabled(boolean enabled) { - CacheHelper.dragTrackercacheEnabled = enabled; + public static boolean isVerticalRangeCacheEnabled() { + return verticalRangeCacheEnabled; } /** - * Set if refresh layout cache is enabled. + * Set if vertical range is enabled. * * @param enabled * boolean */ - public static void setRefreshLayoutCacheEnabled(boolean enabled) { - CacheHelper.refreshLayoutcacheEnabled = enabled; + public static void setVerticalRangeCacheEnabled(boolean enabled) { + CacheHelper.verticalRangeCacheEnabled = enabled; } /** - * Clear drag tracker caches. - */ - public static void clearDragTrackerCaches() { - viewToRangeCache.clear(); - clearRefreshLayoutCaches(); - } - - /** - * Clear refresh layout caches. + * Clear and disable all caches. */ - public static void clearRefreshLayoutCaches() { + public static void clearCaches() { + // Structural caches coverageCache.clear(); - subEventsCache.clear(); startCompoundMessageCache.clear(); endCompoundMessageCache.clear(); nodeEventToHierarchicalParentCache.clear(); - eventToParentOperandCache.clear(); - eventToParentEventCache.clear(); + clearRangeDependantCaches(); } /** - * Clear and disable all caches. + * Clear and disable range dependant caches. */ - public static void clearCaches() { - CacheHelper.setDragTrackerCacheEnabled(false); - CacheHelper.setRefreshLayoutCacheEnabled(false); - CacheHelper.clearDragTrackerCaches(); - } - - /** - * Init and enable all caches. - */ - public static void initCaches() { - clearCaches(); - CacheHelper.setDragTrackerCacheEnabled(true); - CacheHelper.setRefreshLayoutCacheEnabled(false); - } - - /** - * Init and enable refresh layout caches. - */ - public static void initRefreshLayoutCaches() { - clearCaches(); - CacheHelper.setRefreshLayoutCacheEnabled(true); - CacheHelper.setDragTrackerCacheEnabled(false); + public static void clearRangeDependantCaches() { + // Range dependant cache + subEventsCache.clear(); + eventToParentOperandCache.clear(); + eventToParentEventCache.clear(); + viewToRangeCache.clear(); } /** @@ -166,7 +132,7 @@ public final class CacheHelper { } /** - * get subEvents cache. + * Get subEvents cache. * * @return the subEventsCache */ @@ -184,47 +150,48 @@ public final class CacheHelper { } /** - * get start message cache. + * Get start message cache. * - * @return the message + * @return the cache */ public static ConcurrentHashMap<ISequenceEvent, Message> getStartCompoundMessageCache() { return startCompoundMessageCache; } /** - * get end message cache. + * Get end message cache. * - * @return the message + * @return the cache */ public static ConcurrentHashMap<ISequenceEvent, Message> getEndCompoundMessageCache() { return endCompoundMessageCache; } /** - * get end message cache. + * Get hierarchical parent cache. * - * @return the message + * @return the cache */ public static ConcurrentHashMap<AbstractNodeEvent, ISequenceEvent> getAbstractNodeEventToHierarchicalParentCache() { return nodeEventToHierarchicalParentCache; } /** - * get end message cache. + * Get parent operand cache. * - * @return the message + * @return the cache */ public static ConcurrentHashMap<ISequenceEvent, Option<Operand>> getEventToParentOperandCache() { return eventToParentOperandCache; } /** - * get end message cache. + * Get parent event cache. * - * @return the message + * @return the cache */ public static ConcurrentHashMap<ISequenceEvent, ISequenceEvent> getEventToParentEventCache() { return eventToParentEventCache; } + } diff --git a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/util/RangeSetter.java b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/util/RangeSetter.java index b0f47886e2..899781fe2e 100644 --- a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/util/RangeSetter.java +++ b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/util/RangeSetter.java @@ -67,9 +67,8 @@ public final class RangeSetter { * the vertical range of the given sequence event. */ public static void setVerticalRange(AbstractNodeEvent self, Range range) { - if (CacheHelper.isDragTrackerCacheEnabled()) { - CacheHelper.clearCaches(); - } + CacheHelper.clearRangeDependantCaches(); + Range oldRange = self.getVerticalRange(); int deltaY = range.getLowerBound() - oldRange.getLowerBound(); int size = range.width(); @@ -87,9 +86,8 @@ public final class RangeSetter { * the vertical range of the given sequence event. */ public static void setVerticalRange(State self, Range range) { - if (CacheHelper.isDragTrackerCacheEnabled()) { - CacheHelper.clearCaches(); - } + CacheHelper.clearRangeDependantCaches(); + Range oldRange = self.getVerticalRange(); int deltaY = range.getLowerBound() - oldRange.getLowerBound(); int size = range.width(); @@ -107,9 +105,8 @@ public final class RangeSetter { * the vertical range of the given sequence event. */ public static void setVerticalRange(InteractionUse self, Range range) { - if (CacheHelper.isDragTrackerCacheEnabled()) { - CacheHelper.clearCaches(); - } + CacheHelper.clearRangeDependantCaches(); + Range oldRange = self.getVerticalRange(); int deltaY = range.getLowerBound() - oldRange.getLowerBound(); int size = range.width(); @@ -127,9 +124,8 @@ public final class RangeSetter { * the vertical range of the given sequence event. */ public static void setVerticalRange(CombinedFragment self, Range range) { - if (CacheHelper.isDragTrackerCacheEnabled()) { - CacheHelper.clearCaches(); - } + CacheHelper.clearRangeDependantCaches(); + Range oldRange = self.getVerticalRange(); int deltaY = range.getLowerBound() - oldRange.getLowerBound(); int size = range.width(); @@ -147,9 +143,8 @@ public final class RangeSetter { * the vertical range of the given sequence event. */ public static void setVerticalRange(Operand self, Range range) { - if (CacheHelper.isDragTrackerCacheEnabled()) { - CacheHelper.clearCaches(); - } + CacheHelper.clearRangeDependantCaches(); + Range oldRange = self.getVerticalRange(); int deltaY = range.getLowerBound() - oldRange.getLowerBound(); int size = range.width(); @@ -167,9 +162,7 @@ public final class RangeSetter { * the vertical range of the given sequence event. */ public static void setVerticalRange(Lifeline self, Range range) { - if (CacheHelper.isDragTrackerCacheEnabled()) { - CacheHelper.clearCaches(); - } + CacheHelper.clearRangeDependantCaches(); InstanceRole instanceRole = self.getInstanceRole(); Rectangle irepBounds = instanceRole.getBounds(); @@ -266,9 +259,7 @@ public final class RangeSetter { * the vertical range of the given sequence event. */ public static void setVerticalRange(Message self, Range range) { - if (CacheHelper.isDragTrackerCacheEnabled()) { - CacheHelper.clearCaches(); - } + CacheHelper.clearRangeDependantCaches(); RangeSetter.handlePotentialLostEnd(self.getSourceElement(), range); RangeSetter.handlePotentialLostEnd(self.getTargetElement(), range); diff --git a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/util/SubEventsHelper.java b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/util/SubEventsHelper.java index 75fcab6540..7f91c02c9b 100644 --- a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/util/SubEventsHelper.java +++ b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/util/SubEventsHelper.java @@ -97,7 +97,7 @@ public final class SubEventsHelper { List<ISequenceEvent> result = getValidSubEvents(); Collections.sort(result, RangeHelper.lowerBoundOrdering().onResultOf(ISequenceEvent.VERTICAL_RANGE)); - if (CacheHelper.isCacheEnabled()) { + if (CacheHelper.isStructuralCacheEnabled()) { CacheHelper.getSubEventsCache().put(parentEvent, new ArrayList<>(result)); } return result; |