Ejemplo n.º 1
0
 /// <summary>
 ///     Ctor.
 /// </summary>
 /// <param name="copyMethod">for copying the events to preprocess</param>
 /// <param name="entries">descriptors for pre-processing to apply</param>
 public InternalEventRouterPreprocessor(
     EventBeanCopyMethod copyMethod,
     IList<InternalEventRouterEntry> entries)
 {
     this.copyMethod = copyMethod;
     entries.SortInPlace(COMPARATOR);
     this.entries = entries.ToArray();
     empty = this.entries.Length == 0;
 }
Ejemplo n.º 2
0
 /// <summary>
 ///     Ctor.
 /// </summary>
 /// <param name="wrapperEventType">wrapper type</param>
 /// <param name="eventAdapterService">event adapter creation</param>
 /// <param name="underlyingCopyMethod">copy method for the underlying event</param>
 public WrapperEventBeanCopyMethod(
     WrapperEventType wrapperEventType,
     EventBeanTypedEventFactory eventAdapterService,
     EventBeanCopyMethod underlyingCopyMethod)
 {
     this.wrapperEventType = wrapperEventType;
     this.eventAdapterService = eventAdapterService;
     this.underlyingCopyMethod = underlyingCopyMethod;
 }
Ejemplo n.º 3
0
 public InternalEventRouterDesc(UpdateDesc updateDesc,
                                EventBeanCopyMethod copyMethod,
                                TypeWidener[] wideners,
                                EventType eventType,
                                Attribute[] annotations)
 {
     UpdateDesc  = updateDesc;
     CopyMethod  = copyMethod;
     Wideners    = wideners;
     EventType   = eventType;
     Annotations = annotations;
 }
Ejemplo n.º 4
0
        public EventBeanCopyMethod GetCopyMethod(String[] properties)
        {
            if (_writableProperties == null)
            {
                InitializeWriters();
            }

            bool isOnlyMap = true;

            for (int i = 0; i < properties.Length; i++)
            {
                if (_underlyingMapType.GetWritableProperty(properties[i]) == null)
                {
                    isOnlyMap = false;
                }
            }

            bool isOnlyUnderlying = true;

            if (!isOnlyMap)
            {
                if (!(_underlyingEventType is EventTypeSPI))
                {
                    return(null);
                }
                var spi = (EventTypeSPI)_underlyingEventType;
                for (int i = 0; i < properties.Length; i++)
                {
                    if (spi.GetWritableProperty(properties[i]) == null)
                    {
                        isOnlyUnderlying = false;
                    }
                }
            }

            if (isOnlyMap)
            {
                return(new WrapperEventBeanMapCopyMethod(this, _eventAdapterService));
            }

            EventBeanCopyMethod undCopyMethod = ((EventTypeSPI)_underlyingEventType).GetCopyMethod(properties);

            if (undCopyMethod == null)
            {
                return(null);
            }
            if (isOnlyUnderlying)
            {
                return(new WrapperEventBeanUndCopyMethod(this, _eventAdapterService, undCopyMethod));
            }

            return(new WrapperEventBeanCopyMethod(this, _eventAdapterService, undCopyMethod));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Ctor.
        /// </summary>
        /// <param name="copyMethod">for copying the events to preprocess</param>
        /// <param name="entries">descriptors for pre-processing to apply</param>
        public InternalEventRouterPreprocessor(EventBeanCopyMethod copyMethod, IEnumerable <InternalEventRouterEntry> entries)
        {
            var tempIndex = 0;
            var tempList  = entries
                            .Select(tempEntry => new Pair <int, InternalEventRouterEntry>(tempIndex++, tempEntry))
                            .ToList();

            tempList.Sort(DoCompare);

            _copyMethod = copyMethod;
            _entries    = tempList.Select(pair => pair.Second).ToArray();
            _empty      = _entries.Length == 0;
        }
Ejemplo n.º 6
0
 /// <summary>Ctor. </summary>
 /// <param name="wrapperEventType">wrapper type</param>
 /// <param name="eventAdapterService">for creating events</param>
 /// <param name="underlyingCopyMethod">for copying the underlying event</param>
 public WrapperEventBeanUndCopyMethod(WrapperEventType wrapperEventType, EventAdapterService eventAdapterService, EventBeanCopyMethod underlyingCopyMethod)
 {
     _wrapperEventType     = wrapperEventType;
     _eventAdapterService  = eventAdapterService;
     _underlyingCopyMethod = underlyingCopyMethod;
 }
Ejemplo n.º 7
0
 public EventBeanUpdateHelper(EventBeanCopyMethod copyMethod, EventBeanUpdateItem[] updateItems)
 {
     _copyMethod  = copyMethod;
     _updateItems = updateItems;
 }