protected override ValueProxy Promote(ValueProxy val) { return new IntegerProxy((Integer)Convert.ToDecimal(val)); }
protected override ValueProxy Mul(ValueProxy val) { return new Int(_value * ((SByteProxy)val)._value); }
protected override bool Eq(ValueProxy val) { return _value == ((IntegerProxy)val)._value; }
protected override bool Gt(ValueProxy val) { return _value > ((SByteProxy)val)._value; }
protected override ValueProxy Add(ValueProxy val) { return new Int(_value + ((SByteProxy)val)._value); }
protected override Integer IDiv(ValueProxy val) { throw new OperatorMismatchException(Funcs.IDiv, this, val); }
protected override ValueProxy Promote(ValueProxy val) { return new Short(Convert.ToInt16(val)); }
protected override bool Gt(ValueProxy val) { return(((IComparable)_value).CompareTo(val.Value) > 0); }
protected override ValueProxy Mod(ValueProxy value) { throw new XPath2Exception("", Resources.BinaryOperatorNotDefined, "op:mod", new SequenceType(_value.GetType(), XmlTypeCardinality.One), new SequenceType(value.Value.GetType(), XmlTypeCardinality.One)); }
protected override ValueProxy Promote(ValueProxy val) { throw new NotImplementedException(); }
protected override bool Eq(ValueProxy val) { return(_value.Equals(val.Value)); }
protected override ValueProxy Div(ValueProxy val) { return new Float(_value / ((Float)val)._value); }
protected override ValueProxy Mul(ValueProxy val) { return new Float(_value * ((Float)val)._value); }
protected override Integer IDiv(ValueProxy value) { throw new XPath2Exception("", Properties.Resources.BinaryOperatorNotDefined, "op:idiv", new SequenceType(_value.GetType(), XmlTypeCardinality.One), new SequenceType(value.Value.GetType(), XmlTypeCardinality.One)); }
protected override ValueProxy Div(ValueProxy val) { return new DecimalProxy(Convert.ToDecimal(_value) / Convert.ToDecimal(val)); }
private IEnumerable <XPathItem> CreateEnumerator(object[] dataPool, AbstractNode expr, XPath2NodeIterator baseIter) { XPath2NodeIterator iter = baseIter.Clone(); ValueNode numexpr = expr as ValueNode; if (numexpr != null && numexpr.Content is Integer) { Integer pos = (Integer)numexpr.Content; foreach (XPathItem item in iter) { if (pos == 1) { yield return(item); break; } else { pos--; } } } else { ContextProvider provider = new ContextProvider(iter); object res = Undefined.Value; while (iter.MoveNext()) { if (m_contextSensitive || res == Undefined.Value) { res = expr.Execute(provider, dataPool); } if (res == Undefined.Value) { if (!m_contextSensitive) { break; } continue; } XPath2NodeIterator iter2 = res as XPath2NodeIterator; XPathItem item; if (iter2 != null) { iter2 = iter2.Clone(); if (!iter2.MoveNext()) { continue; } item = iter2.Current.Clone(); if (!item.IsNode && iter2.MoveNext()) { throw new XPath2Exception("FORG0006", Resources.FORG0006, "fn:boolean()", new SequenceType(XmlTypeCode.AnyAtomicType, XmlTypeCardinality.OneOrMore)); } } else { item = res as XPathItem; if (item == null) { item = new XPath2Item(res); } } if (item.IsNode) { yield return(iter.Current); } else { if (ValueProxy.IsNumeric(item.ValueType)) { if (CoreFuncs.OperatorEq(iter.CurrentPosition + 1, item.GetTypedValue()) == CoreFuncs.True) { yield return(iter.Current); if (!m_contextSensitive) { break; } } } else if (CoreFuncs.GetBooleanValue(item)) { yield return(iter.Current); } } } } }
protected override bool Gt(ValueProxy val) { return String.CompareOrdinal(_value, ((StringProxy)val)._value) > 0; }
protected override bool Eq(ValueProxy val) { return _value == ((DecimalProxy)val)._value; }
protected override ValueProxy Sub(ValueProxy val) { throw new XPath2Exception("", Properties.Resources.BinaryOperatorNotDefined, "op:sub", new SequenceType(Value.GetType(), XmlTypeCardinality.One), new SequenceType(val.Value.GetType(), XmlTypeCardinality.One)); }
protected override bool Gt(ValueProxy val) { return _value > ((DecimalProxy)val)._value; }
protected override bool Eq(ValueProxy val) { return _value == ((SByteProxy)val)._value; }
protected override ValueProxy Promote(ValueProxy val) { return new DecimalProxy(Convert.ToDecimal(val)); }
protected override ValueProxy Promote(ValueProxy val) { return new SByteProxy(Convert.ToSByte(val)); }
protected override ValueProxy Mul(ValueProxy val) { return new DecimalProxy(_value * ((DecimalProxy)val)._value); }
protected override ValueProxy Sub(ValueProxy val) { return new Int(_value - ((SByteProxy)val)._value); }
protected override Integer IDiv(ValueProxy val) { return (Integer)Math.Truncate(_value / Convert.ToDecimal(val)); }
protected override Integer IDiv(ValueProxy val) { return (Integer)Convert.ToDecimal(_value / Convert.ToSByte(val)); }
protected override bool Gt(ValueProxy val) { throw new OperatorMismatchException(Funcs.Gt, this, val); }
protected override bool Gt(ValueProxy val) { return _value > ((IntegerProxy)val)._value; }
protected override bool TryGt(ValueProxy val, out bool res) { res = false; return false; }
protected override ValueProxy Mul(ValueProxy val) { return new IntegerProxy(_value * ((IntegerProxy)val)._value); }
protected override ValueProxy Promote(ValueProxy val) { return new Bool(Convert.ToBoolean(val)); }
protected override Integer IDiv(ValueProxy val) { return _value / Integer.ToInteger(val); }
protected override ValueProxy Promote(ValueProxy val) { return new Int(Convert.ToInt32(val)); }
protected override ValueProxy Promote(ValueProxy val) { return new StringProxy(Convert.ToString(val)); }
protected override ValueProxy Mod(ValueProxy val) { return new Int(_value % ((Short)val)._value); }
protected override ValueProxy Mod(ValueProxy val) { throw new OperatorMismatchException(Funcs.Mod, this, val); }
public ShadowProxy(ValueProxy proxy) { _value = proxy.Value; _valueCode = proxy.GetValueCode(); _isNumeric = proxy.IsNumeric(); }