/// <summary>
 /// Cache the dataflow tree
 /// </summary>
 /// <param name="categories">
 /// The SDMX category schemes
 /// </param>
 /// <param name="dataflows">
 /// The SDMX dataflow schemes
 /// </param>
 /// /// <param name="categorisations">
 /// The SDMX categorisation
 /// </param>
 public void SetDataflowTree(IEnumerable<ICategorySchemeObject> categories, ISet<IDataflowObject> dataflows, IEnumerable<ICategorisationObject> categorisations, ISet<IDataStructureObject> dataStructure)
 {
     this._dataflowTreeList = new DataflowTreeBuilder(categories, dataflows,categorisations, dataStructure);
 }
 /// <summary>
 /// Reset everything
 /// </summary>
 public void Reset()
 {
     this._dataflow = null;
     this._structure = null;
     this._keyFamily = null;
     this._dataflowTreeList = null;
     this._componentIndex.Clear();
     this._conceptMap.Clear();
     this._criteriaComponentIdx = 0;
     this._workPageIdx = 0;
     this.Clear();
     this._sessionPrefix = Guid.NewGuid().ToString();
 }