 	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;

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


		
		private function handleUpdatedKeys():void
		{
			_keysAreUnique = ArrayUtils.union(keysArray).length == keysArray.length;
		}
		
		private var _keysAreUnique:Boolean = true;
