 	import weavejs.api.data.IAttributeColumn;
 	import weavejs.api.data.IQualifiedKey;
 	import weavejs.api.data.IDataSource;
-	import weavejs.data.column.DynamicColumn;
 	import weavejs.data.column.DateColumn;
 	import weavejs.data.column.NumberColumn;
 	import weavejs.data.column.ProxyColumn;
 	import weavejs.data.column.StringColumn;
 	import weavejs.data.key.QKeyManager;
 	import weavejs.util.StandardLib;
+	import weavejs.util.JS;
 	
 	public class DataSourceUtils
 	{

		public static function hasRemoteColumnDependencies(dataSource:IDataSource):Boolean
		{
			/* Possibly cache this and check for changes? */
			for each (var column:DynamicColumn in Weave.getDescendants(dataSource, DynamicColumn))
			{
				for each (var columnDataSource:IDataSource in ColumnUtils.getDataSources(column))
				{
					if (columnDataSource === dataSource) continue;
					if (!columnDataSource.isLocal)
						return true;
				}
			}
			return false;
		}
		

			return DataType.NUMBER;
		}

		private static var _weakMap_dataSource_isLocal:Object = new JS.WeakMap();
		/**
		 * Determine whether a datasource that uses columns from other datasources that are remote.
		 * @param  dataSource The datasource to test.
