示例#1
0
 public ShadowProxy(ValueProxy proxy)
 {
     _value = proxy.Value;
     _valueCode = proxy.GetValueCode();
     _isNumeric = proxy.IsNumeric();
 }
示例#2
0
 protected override ValueProxy Mul(ValueProxy value)
 {
     if (value.IsNumeric())
         return new Proxy(DayTimeDurationValue.Multiply(_value, Convert.ToDouble(value)));
     throw new OperatorMismatchException(Funcs.Mul, _value, value.Value);
 }
示例#3
0
 protected override ValueProxy Div(ValueProxy value)
 {
     if (value.IsNumeric())
         return new Proxy(DayTimeDurationValue.Divide(_value, Convert.ToDouble(value)));
     else if (value.GetValueCode() == DayTimeDurationValue.ProxyValueCode)
         return new DataEngine.CoreServices.Proxy.DecimalProxy(
             DayTimeDurationValue.Divide(_value, (DayTimeDurationValue)value.Value));
     else
         throw new OperatorMismatchException(Funcs.Div, _value, value.Value);
 }
示例#4
0
 protected override ValueProxy Promote(ValueProxy val)
 {
     if (val.IsNumeric())
         return new ShadowProxy(val);
     if (val.GetValueCode() == DurationValue.ProxyValueCode)
     {
         DurationValue duration = (DurationValue)val.Value;
         return new Proxy(new DayTimeDurationValue(duration.LowPartValue));
     }
     throw new InvalidCastException();
 }