Exemplo n.º 1
0
        /// <summary>
        /// 지정된 속성을 인덱스로 추가합니다.
        /// </summary>
        /// <param name="propertyName"></param>
        private void AddAllToIndex(string propertyName)
        {
            if (IsDebugEnabled)
            {
                log.Debug("컬렉션의 모든 요소의 속성[{0}] 의 값을 인덱싱합니다.", propertyName);
            }

            if (PropertyHasIndex(propertyName) == false)
            {
                _indexes.Add(propertyName, new MultiMap <int, T>());
            }

            foreach (T item in this)
            {
                AddToIndex(item, propertyName, _indexes[propertyName]);
            }
        }
        public override void Initialize(ArrayList attribList)
        {
            IIndexStore store = null;

            if (attribList != null && attribList.Count > 0)
            {
                IEnumerator e = attribList.GetEnumerator();

                while (e.MoveNext())
                {
                    string attribName = e.Current.ToString();
                    if (commonRbStores != null && commonRbStores.ContainsKey(_type + ":" + attribName))
                    {
                        HashStore commonStore = (HashStore)commonRbStores[_type + ":" + attribName];
                        IndexTable.Add(attribName, commonStore);
                    }
                    else
                    {
                        store = new HashStore();
                        IndexTable.Add(attribName, store);
                    }
                }
                if (commonRbStores != null && commonRbStores.ContainsKey(TAG_INDEX_KEY))
                {
                    store = (HashStore)commonRbStores[TAG_INDEX_KEY];
                    IndexTable.Add(TAG_INDEX_KEY, store);
                }
                else
                {
                    store = new HashStore();
                    IndexTable.Add(TAG_INDEX_KEY, store);
                }
            }

            if (!IndexTable.ContainsKey(TAG_INDEX_KEY) && commonRbStores != null && commonRbStores.ContainsKey(TAG_INDEX_KEY))
            {
                store = (HashStore)commonRbStores[TAG_INDEX_KEY];
                IndexTable.Add(TAG_INDEX_KEY, store);
            }
        }