Example #1
0
 string Dump(ResetableIterator it)
 {
     it = (ResetableIterator)it.Clone();
     System.Text.StringBuilder sb = new System.Text.StringBuilder();
     sb.Append('(');
     do
     {
         XPathNavigator nav = it.Current.Clone();
         nav.MoveToAttribute("id1", "");
         sb.Append(nav.Value);
         sb.Append(", ");
     } while (it.MoveNext());
     sb.Length = sb.Length - 2;
     sb.Append(')');
     return(sb.ToString());
 }
        protected object ProcessResult(object value)
        {
            if (value is string)
            {
                return(value);
            }
            if (value is double)
            {
                return(value);
            }
            if (value is bool)
            {
                return(value);
            }
            if (value is XPathNavigator)
            {
                return(value);
            }
            if (value is int)
            {
                return((double)((int)value));
            }
            if (value == null)
            {
                this.queryIterator = XPathEmptyIterator.Instance;
                return(this);
            }
            ResetableIterator iterator = value as ResetableIterator;

            if (iterator != null)
            {
                this.queryIterator = (ResetableIterator)iterator.Clone();
                return(this);
            }
            XPathNodeIterator nodeIterator = value as XPathNodeIterator;

            if (nodeIterator != null)
            {
                this.queryIterator = new XPathArrayIterator(nodeIterator);
                return(this);
            }
            IXPathNavigable navigable = value as IXPathNavigable;

            if (navigable != null)
            {
                return(navigable.CreateNavigator());
            }
            if (value is short)
            {
                return((double)((short)value));
            }
            if (value is long)
            {
                return((double)((long)value));
            }
            if (value is uint)
            {
                return((double)((uint)value));
            }
            if (value is ushort)
            {
                return((double)((ushort)value));
            }
            if (value is ulong)
            {
                return((double)((ulong)value));
            }
            if (value is float)
            {
                return((double)((float)value));
            }
            if (value is decimal)
            {
                return((double)((decimal)value));
            }
            return(value.ToString());
        }
Example #3
0
        protected object ProcessResult(object value)
        {
            if (value is string)
            {
                return(value);
            }
            if (value is double)
            {
                return(value);
            }
            if (value is bool)
            {
                return(value);
            }
            if (value is XPathNavigator)
            {
                return(value);
            }
            if (value is Int32)
            {
                return((double)(Int32)value);
            }

            if (value == null)
            {
                queryIterator = XPathEmptyIterator.Instance;
                return(this); // We map null to NodeSet to let $null/foo work well.
            }

            ResetableIterator resetable = value as ResetableIterator;

            if (resetable != null)
            {
                // We need Clone() value because variable may be used several times
                // and they shouldn't
                queryIterator = (ResetableIterator)resetable.Clone();
                return(this);
            }
            XPathNodeIterator nodeIterator = value as XPathNodeIterator;

            if (nodeIterator != null)
            {
                queryIterator = new XPathArrayIterator(nodeIterator);
                return(this);
            }
            IXPathNavigable navigable = value as IXPathNavigable;

            if (navigable != null)
            {
                return(navigable.CreateNavigator());
            }

            if (value is Int16)
            {
                return((double)(Int16)value);
            }
            if (value is Int64)
            {
                return((double)(Int64)value);
            }
            if (value is UInt32)
            {
                return((double)(UInt32)value);
            }
            if (value is UInt16)
            {
                return((double)(UInt16)value);
            }
            if (value is UInt64)
            {
                return((double)(UInt64)value);
            }
            if (value is Single)
            {
                return((double)(Single)value);
            }
            if (value is Decimal)
            {
                return((double)(Decimal)value);
            }
            return(value.ToString());
        }
Example #4
0
        protected object ProcessResult(object value)
        {
            if (value is string)
            {
                return(value);
            }
            if (value is double)
            {
                return(value);
            }
            if (value is bool)
            {
                return(value);
            }
            if (value is XPathNavigator)
            {
                return(value);
            }
            if (value is int)
            {
                return((double)(int)value);
            }

            if (value == null)
            {
                _queryIterator = XPathEmptyIterator.Instance;
                return(this); // We map null to NodeSet to let $null/foo work well.
            }

            ResetableIterator resetable = value as ResetableIterator;

            if (resetable != null)
            {
                // We need Clone() value because variable may be used several times
                // and they shouldn't
                _queryIterator = (ResetableIterator)resetable.Clone();
                return(this);
            }
            XPathNodeIterator nodeIterator = value as XPathNodeIterator;

            if (nodeIterator != null)
            {
                _queryIterator = new XPathArrayIterator(nodeIterator);
                return(this);
            }
            IXPathNavigable navigable = value as IXPathNavigable;

            if (navigable != null)
            {
                return(navigable.CreateNavigator());
            }

            if (value is short)
            {
                return((double)(short)value);
            }
            if (value is long)
            {
                return((double)(long)value);
            }
            if (value is uint)
            {
                return((double)(uint)value);
            }
            if (value is ushort)
            {
                return((double)(ushort)value);
            }
            if (value is ulong)
            {
                return((double)(ulong)value);
            }
            if (value is float)
            {
                return((double)(float)value);
            }
            if (value is decimal)
            {
                return((double)(decimal)value);
            }
            return(value.ToString());
        }