public void GetAll(ICollection <EventBean> result, AnyMap parent) { var map = parent; foreach (var entry in map) { _next.GetAll(result, entry.Value as AnyMap); } }
public void Remove(EventBean theEvent, AnyMap parent) { Object sortable = _propertyGetter.Get(theEvent); if (sortable == null) { if (_nullKeys != null) { _nullKeys.Remove(theEvent); } return; } sortable = EventBeanUtility.Coerce(sortable, _coercionType); // if this is a leaf, remove event if (_next == null) { var eventMap = parent; if (eventMap == null) { return; } var events = eventMap.Get(sortable) as ICollection <EventBean>; if (events == null) { return; } if (!events.Remove(theEvent)) { return; } if (events.IsEmpty()) { parent.Remove(sortable); } } else { var innerIndex = (AnyMap)parent.Get(sortable); if (innerIndex == null) { return; } _next.Remove(theEvent, innerIndex); if (innerIndex.IsEmpty()) { parent.Remove(sortable); } } }
public void Enter(EventBean theEvent, AnyMap parent) { var mk = EventBeanUtility.GetMultiKey(theEvent, _propertyGetters, _keyCoercionTypes); var innerIndex = (AnyMap)parent.Get(mk); if (innerIndex == null) { innerIndex = new OrderedDictionary <Object, Object>(); parent.Put(mk, innerIndex); } _next.Enter(theEvent, innerIndex); }
public void Remove(EventBean theEvent, AnyMap parent) { var mk = EventBeanUtility.GetMultiKey(theEvent, _propertyGetters, _keyCoercionTypes); var innerIndex = (AnyMap)parent.Get(mk); if (innerIndex == null) { return; } _next.Remove(theEvent, innerIndex); if (innerIndex.IsEmpty()) { parent.Remove(mk); } }
public void Enter(EventBean theEvent, AnyMap parent) { Object sortable = _propertyGetter.Get(theEvent); if (sortable == null) { if (_nullKeys == null) { _nullKeys = new HashSet <EventBean>(); } _nullKeys.Add(theEvent); return; } sortable = EventBeanUtility.Coerce(sortable, _coercionType); // if this is a leaf, enter event if (_next == null) { var eventMap = parent; var events = eventMap.Get(sortable) as ICollection <EventBean>; if (events == null) { events = new HashSet <EventBean>(); eventMap.Put(sortable, events); } events.Add(theEvent); } else { AnyMap innerIndex = (AnyMap)parent.Get(sortable); if (innerIndex == null) { innerIndex = new OrderedDictionary <object, object>(); parent.Put(sortable, innerIndex); } _next.Enter(theEvent, innerIndex); } }
public void GetAll(ICollection <EventBean> result, AnyMap parent) { if (_next == null) { var eventMap = parent; foreach (var entry in eventMap) { result.AddAll(entry.Value as ICollection <EventBean>); } } else { var eventMap = parent; foreach (var entry in eventMap) { _next.GetAll(result, entry.Value as AnyMap); } } if (_nullKeys != null) { result.AddAll(_nullKeys); } }