Fix for issue where relations from Ascape Graph have null values. Fix
regression on Escape code gen for time function.
diff --git a/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.zest/src/org/eclipse/amp/agf/zest/ZestContentProvider.java b/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.zest/src/org/eclipse/amp/agf/zest/ZestContentProvider.java
index 7804097..9db59d5 100644
--- a/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.zest/src/org/eclipse/amp/agf/zest/ZestContentProvider.java
+++ b/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.zest/src/org/eclipse/amp/agf/zest/ZestContentProvider.java
@@ -31,59 +31,62 @@
/**
*
* @author mparker
- *
+ *
*/
public class ZestContentProvider implements IGraphEntityContentProvider {
- IGraphProvider graphProvider;
+ IGraphProvider graphProvider;
- ICompositionProvider compostionProvider;
+ ICompositionProvider compostionProvider;
- private Collection<Object> graphs;
+ private Collection<Object> graphs;
- public ZestContentProvider(IGraphProvider graphProvider, ICompositionProvider compostionProvider) {
- this.graphProvider = graphProvider;
- this.compostionProvider = compostionProvider;
- }
+ public ZestContentProvider(IGraphProvider graphProvider, ICompositionProvider compostionProvider) {
+ this.graphProvider = graphProvider;
+ this.compostionProvider = compostionProvider;
+ }
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ }
- public void dispose() {
- }
+ public void dispose() {
+ }
- Collection<Object> collectGraphs(Object parent, Collection<Object> buildCollection) {
- if (graphProvider.isGraph(parent)) {
- buildCollection.add(parent);
- }
- if (compostionProvider.isChildrenComposition(parent)) {
- for (Object child : compostionProvider.getIteratable(parent)) {
- collectGraphs(child, buildCollection);
- }
- }
- return buildCollection;
- }
+ Collection<Object> collectGraphs(Object parent, Collection<Object> buildCollection) {
+ if (graphProvider.isGraph(parent)) {
+ buildCollection.add(parent);
+ }
+ if (compostionProvider.isChildrenComposition(parent)) {
+ for (Object child : compostionProvider.getIteratable(parent)) {
+ collectGraphs(child, buildCollection);
+ }
+ }
+ return buildCollection;
+ }
- public Object[] getElements(Object parent) {
- Collection allElements = new HashSet();
- graphs = collectGraphs(parent, new HashSet<Object>());
- for (Object graph : graphs) {
- Map<Object, Object> graphMap = graphProvider.getAdjacencyMap(graph);
- Collection values = graphMap.values();
- for (Object valueMember : values) {
- allElements.addAll(((Collection) valueMember));
- }
- allElements.addAll(graphMap.keySet());
- }
- return allElements.toArray();
- }
+ public Object[] getElements(Object parent) {
+ Collection allElements = new HashSet();
+ graphs = collectGraphs(parent, new HashSet<Object>());
+ for (Object graph : graphs) {
+ Map<Object, Object> graphMap = graphProvider.getAdjacencyMap(graph);
+ Collection values = graphMap.values();
+ for (Object valueMember : values) {
+ Collection collection = (Collection) valueMember;
+ if (!collection.isEmpty() && collection.iterator().next() != null) {
+ allElements.addAll(collection);
+ }
+ }
+ allElements.addAll(graphMap.keySet());
+ }
+ return allElements.toArray();
+ }
- public Object[] getConnectedTo(Object object) {
- List neighborsFor = new ArrayList();
- // TODO one graph optimization
- for (Object graph : graphs) {
- neighborsFor.addAll(graphProvider.getNeighborsFor(graph, object));
- }
- return neighborsFor.toArray();
- }
+ public Object[] getConnectedTo(Object object) {
+ List neighborsFor = new ArrayList();
+ // TODO one graph optimization
+ for (Object graph : graphs) {
+ neighborsFor.addAll(graphProvider.getNeighborsFor(graph, object));
+ }
+ return neighborsFor.toArray();
+ }
};
\ No newline at end of file
diff --git a/org.eclipse.amp.amf/examples/org.eclipse.amp.amf.examples.sd/srcgen/sdl/SIR/sd/SIR.java b/org.eclipse.amp.amf/examples/org.eclipse.amp.amf.examples.sd/srcgen/sdl/SIR/sd/SIR.java
index 5128627..fb7e764 100644
--- a/org.eclipse.amp.amf/examples/org.eclipse.amp.amf.examples.sd/srcgen/sdl/SIR/sd/SIR.java
+++ b/org.eclipse.amp.amf/examples/org.eclipse.amp.amf.examples.sd/srcgen/sdl/SIR/sd/SIR.java
@@ -213,7 +213,7 @@
* <!-- end-user-doc -->
* @generated
*/
- private static final long serialVersionUID = 684614444640209893L;
+ private static final long serialVersionUID = 1L;
/**
* <!-- begin-user-doc -->
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.escape/src/metaabm/escape/tmpl/EscapeAspect.xpt b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.escape/src/metaabm/escape/tmpl/EscapeAspect.xpt
index 2e8d13e..baa8326 100644
--- a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.escape/src/metaabm/escape/tmpl/EscapeAspect.xpt
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.escape/src/metaabm/escape/tmpl/EscapeAspect.xpt
@@ -273,7 +273,7 @@
«ELSEIF function.id() == "uniformDistribution"-»
randomInRange(«inputs.expression(path, inner).toString(", ")»);
«ELSEIF function.id() == "timeNow"-»
- «path.last().accessPath(this, inner)»«reference.owner.parent != null ? "getScape()." : ""»getPeriod()
+ «path.last().accessPath(this, inner)»«reference.owner != null ? "getScape()." : ""»getPeriod()
«ELSEIF function.id() == "available"-»
isAvailable()
«ELSEIF function.id() == "withinBoundaries"-»