Skip to content

Commit 7d1223a

Browse files
committed
Use DynamicAnnotationHelper in GenericTraceConstructor
1 parent b7d1008 commit 7d1223a

File tree

2 files changed

+8
-21
lines changed

2 files changed

+8
-21
lines changed

trace/generator/plugins/fr.inria.diverse.trace.gemoc/META-INF/MANIFEST.MF

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ Require-Bundle: fr.obeo.timeline;bundle-version="1.0.0",
1414
org.eclipse.xtext,
1515
fr.inria.diverse.trace.commons.model;bundle-version="0.1.0",
1616
org.gemoc.commons.eclipse;bundle-version="0.1.0",
17-
org.eclipse.emf.compare
17+
org.eclipse.emf.compare,
18+
org.gemoc.xdsmlframework.commons
1819
Export-Package: fr.inria.diverse.trace.gemoc.traceaddon
1920
Bundle-ActivationPolicy: lazy
2021

trace/generator/plugins/fr.inria.diverse.trace.gemoc/src/fr/inria/diverse/trace/gemoc/traceaddon/GenericTraceConstructor.java

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.eclipse.emf.ecore.EAttribute;
2424
import org.eclipse.emf.ecore.EClass;
2525
import org.eclipse.emf.ecore.EClassifier;
26-
import org.eclipse.emf.ecore.EModelElement;
2726
import org.eclipse.emf.ecore.EObject;
2827
import org.eclipse.emf.ecore.EReference;
2928
import org.eclipse.emf.ecore.EStructuralFeature;
@@ -34,6 +33,7 @@
3433
import org.gemoc.xdsmlframework.api.engine_addon.modelchangelistener.NonCollectionFieldModelChange;
3534
import org.gemoc.xdsmlframework.api.engine_addon.modelchangelistener.PotentialCollectionFieldModelChange;
3635
import org.gemoc.xdsmlframework.api.engine_addon.modelchangelistener.RemovedObjectModelChange;
36+
import org.gemoc.xdsmlframework.commons.DynamicAnnotationHelper;
3737

3838
import fr.inria.diverse.trace.commons.model.generictrace.BooleanAttributeValue;
3939
import fr.inria.diverse.trace.commons.model.generictrace.GenericDimension;
@@ -79,27 +79,13 @@ private Set<Resource> getAllExecutedModelResources() {
7979
allResources.removeIf(r -> r == null);
8080
return allResources;
8181
}
82-
83-
public static final String DYNAMIC_ANNOTATION_URI = "aspect";
84-
85-
private static boolean isDynamic(EModelElement o) {
86-
return o.getEAnnotations().stream().anyMatch(a -> a.getSource().equals(DYNAMIC_ANNOTATION_URI));
87-
}
8882

89-
public static boolean isDynamic(EClass c) {
90-
return isDynamic((EModelElement)c);
91-
}
92-
93-
public static boolean isDynamic(EStructuralFeature p) {
94-
return isDynamic((EModelElement) p) || isDynamic(p.getEContainingClass());
95-
}
96-
9783
private boolean addNewObjectToStateIfDynamic(EObject object, GenericState state) {
9884
final EClass c = object.eClass();
9985
final List<EStructuralFeature> mutableProperties = c.getEAllStructuralFeatures().stream()
100-
.filter(p -> isDynamic(p))
86+
.filter(p -> DynamicAnnotationHelper.isDynamic(p))
10187
.collect(Collectors.toList());
102-
if (isDynamic(object.eClass()) || !mutableProperties.isEmpty()) {
88+
if (DynamicAnnotationHelper.isDynamic(object.eClass()) || !mutableProperties.isEmpty()) {
10389
return addNewObjectToState(object, mutableProperties, lastState);
10490
}
10591
return true;
@@ -128,7 +114,7 @@ private GenericValue getGenericValue(EObject object, EStructuralFeature mutableP
128114
final List<EObject> modelElements = (List<EObject>) object.eGet(mutableProperty);
129115
final ManyReferenceValue value = GenerictraceFactory.eINSTANCE.createManyReferenceValue();
130116
for (EObject o : modelElements) {
131-
if (isDynamic(o.eClass())) {
117+
if (DynamicAnnotationHelper.isDynamic(o.eClass())) {
132118
value.getReferenceValues().add(exeToTraced.get(o));
133119
} else {
134120
value.getReferenceValues().add(o);
@@ -138,7 +124,7 @@ private GenericValue getGenericValue(EObject object, EStructuralFeature mutableP
138124
} else {
139125
final EObject o = (EObject) object.eGet(mutableProperty);
140126
final SingleReferenceValue value = GenerictraceFactory.eINSTANCE.createSingleReferenceValue();
141-
if (isDynamic(o.eClass())) {
127+
if (DynamicAnnotationHelper.isDynamic(o.eClass())) {
142128
value.setReferenceValue(exeToTraced.get(o));
143129
} else {
144130
value.setReferenceValue(o);
@@ -154,7 +140,7 @@ private boolean addNewObjectToState(EObject object, List<EStructuralFeature> mut
154140
boolean added = false;
155141
if (!exeToTraced.containsKey(object)) {
156142
final GenericTracedObject tracedObject = GenerictraceFactory.eINSTANCE.createGenericTracedObject();
157-
if (!isDynamic(object.eClass())) {
143+
if (!DynamicAnnotationHelper.isDynamic(object.eClass())) {
158144
tracedObject.setOriginalObject(object);
159145
}
160146
exeToTraced.put(object, tracedObject);

0 commit comments

Comments
 (0)