 	import weavejs.data.hierarchy.ColumnTreeNode;
 	import weavejs.data.key.QKeyManager;
 	import weavejs.net.ResponseType;
+	import weavejs.util.ArrayUtils;
 	import weavejs.util.JS;
-	import weavejs.util.StandardLib;
+	import weavejs.util.StandardLib;
 	
 	/**
 	 * 
 	 * @author adufilie
 	 * @author skolman
 	 */
-	public class CSVDataSource extends AbstractDataSource implements IDataSource_File
+	public class CSVDataSource extends AbstractDataSource implements IDataSource_File, ILinkableObjectWithNewProperties
 	{
 		WeaveAPI.ClassRegistry.registerImplementation(IDataSource, CSVDataSource, "CSV file");
 

		
		private var nullValues:Array = [null, "", "null", "\\N", "NaN"];
		
		// backwards compatibility
		[Deprecated(replacement="keyColumn")] public function set keyColName(value:String):void { keyColumn.state = value; }
		[Deprecated(replacement="csvData")] public function set csvDataString(value:String):void { setCSVDataString(value); }
		[Deprecated(replacement="getColumnById")] public function getColumnByName(name:String):IAttributeColumn { return getColumnById(name); }
	}
}

	import weavejs.WeaveAPI;
	import weavejs.api.core.ICallbackCollection;
	import weavejs.api.core.ILinkableHashMap;
	import weavejs.api.core.ILinkableObjectWithNewProperties;
	import weavejs.api.data.ColumnMetadata;
	import weavejs.api.data.DataType;
	import weavejs.api.data.IAttributeColumn;
