Exemplo n.º 1
0
        protected override void TypeToDefEntryMapChanged(ClassEntry <V> classEntry, Type key)
        {
            Object obj = classEntry.typeToDefEntryMap.Get(key);

            if (obj == null)
            {
                classEntry.Remove(key);
                return;
            }
            if (obj == alreadyHandled)
            {
                classEntry.Put(key, alreadyHandled);
                return;
            }
            Object   existingItem = classEntry.Get(key);
            List <V> list         = (List <V>)(existingItem == alreadyHandled ? null : existingItem);

            if (list == null)
            {
                list = new List <V>();
                classEntry.Put(key, list);
            }
            if (obj is DefEntry <V> )
            {
                V extension = ((DefEntry <V>)obj).extension;
                if (!list.Contains(extension))
                {
                    list.Add(extension);
                }
                return;
            }
            IListElem <DefEntry <V> > pointer = ((InterfaceFastList <DefEntry <V> >)obj).First;

            while (pointer != null)
            {
                V extension = pointer.ElemValue.extension;
                if (!list.Contains(extension))
                {
                    list.Add(extension);
                }
                pointer = pointer.Next;
            }
        }
Exemplo n.º 2
0
        protected virtual void TypeToDefEntryMapChanged(ClassEntry <V> classEntry, Type key)
        {
            Object obj = classEntry.typeToDefEntryMap.Get(key);

            if (obj == null)
            {
                classEntry.Remove(key);
                return;
            }
            if (obj == alreadyHandled)
            {
                classEntry.Put(key, alreadyHandled);
                return;
            }
            if (obj is DefEntry <V> )
            {
                classEntry.Put(key, ((DefEntry <V>)obj).extension);
                return;
            }
            DefEntry <V> firstDefEntry = ((InterfaceFastList <DefEntry <V> >)obj).First.ElemValue;

            classEntry.Put(key, firstDefEntry.extension);
        }