Exemplo n.º 1
0
        public object Get(EventBean eventBean)
        {
            var und = eventBean.Underlying;
            if (und == null) {
                throw new PropertyAccessException(
                    "Unexpected null underlying event encountered, expecting org.w3c.dom.XmlNode instance as underlying");
            }

            var xnode = und as XElement;
            if (xnode == null) {
                var node = und as XmlNode;
                if (node == null) {
                    throw new PropertyAccessException(
                        "Unexpected underlying event of type '" +
                        und.GetType().FullName +
                        "' encountered, expecting System.Xml.XmlNode as underlying");
                }

                if (Log.IsDebugEnabled) {
                    Log.Debug(
                        "Running XPath '{0}' for property '{1}' against Node XML : {2}",
                        _expressionText,
                        _property,
                        SchemaUtil.Serialize((XmlNode) und));
                }

                return GetFromUnderlying(node.CreateNavigator());
            }

            return GetFromUnderlying(xnode.CreateNavigator());
        }