Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxime Porhel2020-10-22 19:22:49 +0000
committerMaxime Porhel2020-10-23 13:59:41 +0000
commitb03f01a4478f82ffaf66d802446820e053ce57f4 (patch)
tree388cb6225e8fcc509be364d47c5f3a48edb6bf22 /plugins/org.eclipse.sirius.diagram.sequence/src
parenta031b0e2ca079e9aa325b75575112056e690f01c (diff)
downloadorg.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')
-rw-r--r--plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/AbstractFrame.java4
-rw-r--r--plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/AbstractNodeEvent.java12
-rw-r--r--plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/Execution.java4
-rw-r--r--plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/elements/Message.java6
-rw-r--r--plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/query/SequenceMessageViewQuery.java16
-rw-r--r--plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/query/SequenceNodeQuery.java4
-rw-r--r--plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/refresh/RefreshLayoutCommand.java7
-rw-r--r--plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/util/CacheHelper.java115
-rw-r--r--plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/util/RangeSetter.java33
-rw-r--r--plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/util/SubEventsHelper.java2
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;

Back to the top