Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxime Porhel2020-10-22 19:22:49 +0000
committerMaxime Porhel2021-02-22 20:05:34 +0000
commit819f384e8d4f91e35d1dcf9e11c74ba98d9a9f61 (patch)
tree54dfbbf1824844a2067f508d89c202d4e839d822
parentb4963e8b55063bc4ff1ff68185f78537974307b5 (diff)
downloadorg.eclipse.sirius-819f384e8d4f91e35d1dcf9e11c74ba98d9a9f61.tar.gz
org.eclipse.sirius-819f384e8d4f91e35d1dcf9e11c74ba98d9a9f61.tar.xz
org.eclipse.sirius-819f384e8d4f91e35d1dcf9e11c74ba98d9a9f61.zip
[571400] 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: 571400 Cherry-picked-from: 567517 Change-Id: I2a854fda59e7816fda4227ebd076e7fb97822605 Signed-off-by: Maxime Porhel <maxime.porhel@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.diagram.sequence.ui/src/org/eclipse/sirius/diagram/sequence/ui/tool/internal/ui/SequenceDragEditPartsTrackerEx.java7
-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
11 files changed, 88 insertions, 122 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.sequence.ui/src/org/eclipse/sirius/diagram/sequence/ui/tool/internal/ui/SequenceDragEditPartsTrackerEx.java b/plugins/org.eclipse.sirius.diagram.sequence.ui/src/org/eclipse/sirius/diagram/sequence/ui/tool/internal/ui/SequenceDragEditPartsTrackerEx.java
index b8bfeac72f..60161b44f4 100644
--- a/plugins/org.eclipse.sirius.diagram.sequence.ui/src/org/eclipse/sirius/diagram/sequence/ui/tool/internal/ui/SequenceDragEditPartsTrackerEx.java
+++ b/plugins/org.eclipse.sirius.diagram.sequence.ui/src/org/eclipse/sirius/diagram/sequence/ui/tool/internal/ui/SequenceDragEditPartsTrackerEx.java
@@ -75,7 +75,8 @@ public class SequenceDragEditPartsTrackerEx extends SiriusDragEditPartsTrackerEx
diagram.useCache(false);
diagram.clearAllCaches();
}
-
+ CacheHelper.setStructuralCacheEnabled(false);
+ CacheHelper.setVerticalRangeCacheEnabled(false);
CacheHelper.clearCaches();
}
@@ -86,7 +87,9 @@ public class SequenceDragEditPartsTrackerEx extends SiriusDragEditPartsTrackerEx
* the drag tracker source/owner edit part.
*/
public static void handleButtonDown(IGraphicalEditPart smep) {
- CacheHelper.initCaches();
+ CacheHelper.clearCaches();
+ CacheHelper.setStructuralCacheEnabled(true);
+ CacheHelper.setVerticalRangeCacheEnabled(true);
SequenceDiagram diagram = getSequenceDiagram(smep);
if (diagram != null) {
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 f7322af461..99b82c5dda 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
@@ -90,7 +90,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);
@@ -130,7 +130,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 aa516bae0b..aa6a0f411d 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
@@ -103,7 +103,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;
@@ -117,7 +117,7 @@ public abstract class AbstractNodeEvent extends AbstractSequenceNode implements
parent = getParentOperand().get();
}
- if (CacheHelper.isCacheEnabled()) {
+ if (CacheHelper.isStructuralCacheEnabled()) {
CacheHelper.getEventToParentEventCache().put(this, parent);
}
return parent;
@@ -154,7 +154,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;
@@ -162,7 +162,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;
@@ -240,7 +240,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;
@@ -252,7 +252,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 bb6dac6a10..c0791e51a3 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 dab2c9d8ef..b364548c37 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
@@ -378,7 +378,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;
@@ -408,7 +408,7 @@ public class Message extends AbstractSequenceElement implements ISequenceEvent {
parentOperand = targetParentOperand;
}
- if (CacheHelper.isCacheEnabled()) {
+ if (CacheHelper.isStructuralCacheEnabled()) {
CacheHelper.getEventToParentOperandCache().put(this, parentOperand);
}
@@ -481,9 +481,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 56c8a5605b..b3086be7bb 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
@@ -106,7 +106,7 @@ public class SequenceMessageViewQuery {
*/
public Range getVerticalRange() {
Range result = null;
- if (CacheHelper.isDragTrackerCacheEnabled()) {
+ if (CacheHelper.isVerticalRangeCacheEnabled()) {
result = CacheHelper.getViewToRangeCache().get(edge);
}
if (result == null) {
@@ -131,7 +131,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);
}
}
@@ -261,10 +261,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
@@ -285,10 +285,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 34d8387e66..a672a21801 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
@@ -57,7 +57,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) {
@@ -87,7 +87,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 a32acd4680..7a4508b36e 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
@@ -75,7 +75,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
@@ -121,6 +123,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 d4e251cf9c..fadce04d0b 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
@@ -32,9 +32,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<>();
@@ -60,98 +60,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();
}
/**
@@ -164,7 +130,7 @@ public final class CacheHelper {
}
/**
- * get subEvents cache.
+ * Get subEvents cache.
*
* @return the subEventsCache
*/
@@ -182,47 +148,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 7f6b91d951..c7fddbf5ca 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
@@ -65,9 +65,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();
@@ -85,9 +84,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();
@@ -105,9 +103,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();
@@ -125,9 +122,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();
@@ -145,9 +141,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();
@@ -165,9 +160,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();
@@ -264,9 +257,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 93b5bc6ebe..d2955c0143 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
@@ -95,7 +95,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