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"-»