/// ------------------------------------------------------------------------------------
 /// <summary>
 /// Initializes a new instance of the <see cref="FilteredSequenceHandler"/> class.
 /// </summary>
 /// <param name="cache">The FDO cache</param>
 /// <param name="owningClassId">The ID of the class which will own this virtual
 /// property</param>
 /// <param name="filterInstance">Number used to make filters unique for each main
 /// window</param>
 /// <param name="filter">A CmFilter that specifies the details of how to filter the
 /// notes (can be null)</param>
 /// <param name="sortMethod">TODO (TE-3941): use this. A CmSortSpec that specifies the
 /// details of how to sort the notes (can be null)</param>
 /// <param name="flidProvider">The method that provides the flid that is used to
 /// retrieve all records.</param>
 /// ------------------------------------------------------------------------------------
 public FilteredSequenceHandler(FdoCache cache, int owningClassId, int filterInstance,
                                IFilter filter, ISortSpec sortMethod, IFlidProvider flidProvider)
 {
     m_cache        = cache;
     m_filter       = filter;
     m_flidProvider = flidProvider;
     if (m_filter != null)
     {
         m_filter.InitCriteria();
     }
     m_sortMethod     = sortMethod;
     ClassName        = m_cache.GetClassName((uint)owningClassId);
     FieldName        = GetVirtualPropertyName(filter, sortMethod, filterInstance);
     Type             = (int)CellarModuleDefns.kcptReferenceSequence;
     ComputeEveryTime = false;
     cache.InstallVirtualProperty(this);
 }
 /// ------------------------------------------------------------------------------------
 /// <summary>
 /// Initializes a new instance of the <see cref="FilteredSequenceHandler"/> class. Use
 /// this version of the constructor when no filtering or sorting is desired.
 /// </summary>
 /// <param name="cache">The FDO cache</param>
 /// <param name="owningClassId">The ID of the class which will own this virtual
 /// property</param>
 /// <param name="filterInstance">Number used to make filters unique for each main
 /// window</param>
 /// <param name="flidProvider">The method that provides the flid that is used to
 /// retrieve all records.</param>
 /// ------------------------------------------------------------------------------------
 public FilteredSequenceHandler(FdoCache cache, int owningClassId, int filterInstance,
                                IFlidProvider flidProvider) :
     this(cache, owningClassId, filterInstance, null, null, flidProvider)
 {
 }
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Initializes a new instance of the <see cref="FilteredSequenceHandler"/> class. Use
		/// this version of the constructor when no filtering or sorting is desired.
		/// </summary>
		/// <param name="cache">The FDO cache</param>
		/// <param name="owningClassId">The ID of the class which will own this virtual
		/// property</param>
		/// <param name="filterInstance">Number used to make filters unique for each main
		/// window</param>
		/// <param name="flidProvider">The method that provides the flid that is used to
		/// retrieve all records.</param>
		/// ------------------------------------------------------------------------------------
		public FilteredSequenceHandler(FdoCache cache, int owningClassId, int filterInstance,
			IFlidProvider flidProvider) :
			this(cache, owningClassId, filterInstance, null, null, flidProvider)
		{
		}
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Initializes a new instance of the <see cref="FilteredSequenceHandler"/> class.
		/// </summary>
		/// <param name="cache">The FDO cache</param>
		/// <param name="owningClassId">The ID of the class which will own this virtual
		/// property</param>
		/// <param name="filterInstance">Number used to make filters unique for each main
		/// window</param>
		/// <param name="filter">A CmFilter that specifies the details of how to filter the
		/// notes (can be null)</param>
		/// <param name="sortMethod">TODO (TE-3941): use this. A CmSortSpec that specifies the
		/// details of how to sort the notes (can be null)</param>
		/// <param name="flidProvider">The method that provides the flid that is used to
		/// retrieve all records.</param>
		/// ------------------------------------------------------------------------------------
		public FilteredSequenceHandler(FdoCache cache, int owningClassId, int filterInstance,
			IFilter filter, ISortSpec sortMethod, IFlidProvider flidProvider)
		{
			m_cache = cache;
			m_filter = filter;
			m_flidProvider = flidProvider;
			if (m_filter != null)
				m_filter.InitCriteria();
			m_sortMethod = sortMethod;
			ClassName = m_cache.GetClassName((uint)owningClassId);
			FieldName = GetVirtualPropertyName(filter, sortMethod, filterInstance);
			Type = (int) CellarModuleDefns.kcptReferenceSequence;
			ComputeEveryTime = false;
			cache.InstallVirtualProperty(this);
		}