Exemplo n.º 1
0
        public EventBean Wrap(Object underlying)
        {
            if (underlying is XmlNode)
            {
                return(_eventAdapterService.AdapterForTypedDOM((XmlNode)underlying, _type));
            }

            return(_eventAdapterService.AdapterForTypedDOM((XElement)underlying, _type));
        }
Exemplo n.º 2
0
        public EventBean GetEvent(XObject result)
        {
            if (_fragmentType == null)
            {
                FragmentEventType type = _xmlEventType.GetFragmentType(_propertyExpression);
                if (type == null)
                {
                    return(null);
                }
                _fragmentType = type.FragmentType;
            }

            return(_eventAdapterService.AdapterForTypedDOM(result, _fragmentType));
        }
Exemplo n.º 3
0
 /// <summary>Return an adapter for the given type of event using the pre-validated object. </summary>
 /// <param name="theEvent">value object</param>
 /// <param name="eventType">type of event</param>
 /// <param name="eventAdapterService">service for instances</param>
 /// <returns>event adapter</returns>
 public static EventBean AdapterForType(Object theEvent, EventType eventType, EventAdapterService eventAdapterService)
 {
     if (theEvent == null)
     {
         return(null);
     }
     if (eventType is BeanEventType)
     {
         return(eventAdapterService.AdapterForTypedObject(theEvent, eventType));
     }
     else if (eventType is MapEventType)
     {
         return(eventAdapterService.AdapterForTypedMap((IDictionary <string, object>)theEvent, eventType));
     }
     else if (eventType is ObjectArrayEventType)
     {
         return(eventAdapterService.AdapterForTypedObjectArray((Object[])theEvent, eventType));
     }
     else if (eventType is BaseConfigurableEventType)
     {
         return(eventAdapterService.AdapterForTypedDOM((XmlNode)theEvent, eventType));
     }
     else
     {
         return(null);
     }
 }
Exemplo n.º 4
0
        public EventBean GetEvent(XmlNode result)
        {
            if (_eventType == null)
            {
                EventType candidateEventType = _eventAdapterService.GetEventTypeByName(_eventTypeName);
                if (candidateEventType == null)
                {
                    Log.Warn("Event type by name '" + _eventTypeName + "' was not found for property '" + _propertyName + "'");
                    return(null);
                }
                if (!(candidateEventType is BaseXMLEventType))
                {
                    Log.Warn("Event type by name '" + _eventTypeName + "' is not an XML event type for property '" + _propertyName + "'");
                    return(null);
                }
                _eventType = candidateEventType;
            }

            return(_eventAdapterService.AdapterForTypedDOM(result, _eventType));
        }
Exemplo n.º 5
0
        private void SendEvent(Object node, bool isRoute)
        {
            XmlNode namedNode;

            if (node is XmlDocument)
            {
                namedNode = ((XmlDocument)node).DocumentElement;
            }
            else if (node is XmlElement)
            {
                namedNode = (XmlElement)node;
            }
            else
            {
                throw new EPException("Unexpected event object type '" + node.GetType().FullName + "' encountered, please supply a System.Xml.XmlDocument or Element node");
            }

            if (_validateRootElement)
            {
                var theNodeName = namedNode.LocalName;
                if (theNodeName == null)
                {
                    theNodeName = namedNode.Name;
                }

                if (!theNodeName.Equals(_baseXmlEventType.RootElementName))
                {
                    throw new EPException("Unexpected root element name '" + theNodeName + "' encountered, expected a root element name of '" + _baseXmlEventType.RootElementName + "'");
                }
            }

            EventBean theEvent = _eventAdapterService.AdapterForTypedDOM(namedNode, _baseXmlEventType);

            if (isRoute)
            {
                _runtimeEventSender.RouteEventBean(theEvent);
            }
            else
            {
                if ((ThreadingOption.IsThreadingEnabledValue) && (_threadingService.IsInboundThreading))
                {
                    _threadingService.SubmitInbound(new InboundUnitSendWrapped(theEvent, _runtimeEventSender).Run);
                }
                else
                {
                    _runtimeEventSender.ProcessWrappedEvent(theEvent);
                }
            }
        }