protected internal virtual object Eval(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression o)
 {
     if (o == null)
     {
         return(null);
     }
     if (o is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQLFunctionExpression)
     {
         Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQLFunctionExpression s = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQLFunctionExpression)o;
         int      argumentsCount = s.GetArgumentsCount();
         object[] args           = new object[argumentsCount];
         for (int i = 0; i < args.Length; i++)
         {
             args[i] = Eval(s.GetArgument(i));
         }
         return(s.GetHandler().Eval(new Net.Vpc.Upa.EvalContext(s.GetName(), args, persistenceUnit)));
     }
     if (o is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral)
     {
         return(((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral)o).GetValue());
     }
     if (o is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam)
     {
         return(((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam)o).GetValue());
     }
     return(o);
 }
Esempio n. 2
0
 protected internal virtual object Eval(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression o, Net.Vpc.Upa.Persistence.EntityExecutionContext qlContext)
 {
     if (o == null)
     {
         return(null);
     }
     if (o is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQLFunctionExpression)
     {
         Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQLFunctionExpression s = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQLFunctionExpression)o;
         int      argumentsCount = s.GetArgumentsCount();
         object[] args           = new object[argumentsCount];
         for (int i = 0; i < args.Length; i++)
         {
             args[i] = Eval(s.GetArgument(i), qlContext);
         }
         return(s.GetHandler().Eval(new Net.Vpc.Upa.EvalContext(s.GetName(), args, qlContext.GetPersistenceUnit())));
     }
     if (o is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral)
     {
         return(((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral)o).GetValue());
     }
     if (o is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam)
     {
         return(((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam)o).GetValue());
     }
     throw new System.ArgumentException("Unable to evaluate type " + o.GetType() + " :: " + o);
 }
 public static Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression ToExpression(object e, System.Type defaultInstance) {
     if (e == null) {
         return new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral(null, null);
     } else if (e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression) {
         return (Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression) e;
     } else if ((e.GetType()).IsArray) {
         int l = ((System.Array)(e)).Length;
         Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression[] eitems = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression[l];
         for (int i = 0; i < eitems.Length; i++) {
             eitems[i] = ToExpression(((System.Array)(e)).GetValue(i), defaultInstance);
         }
         return eitems.Length == 1 ? ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression)(eitems[0])) : new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledUplet(eitems);
     } else {
         System.Reflection.ConstructorInfo c = null;
         try {
             c = defaultInstance.GetConstructor(new System.Type[] { e.GetType() });
         } catch (System.Exception e1) {
             try {
                 c = defaultInstance.GetConstructor(new System.Type[] { typeof(object) });
             } catch (System.Exception e2) {
                 throw new System.ArgumentException ("Could not cast " + e + " as Expression");
             }
         }
         try {
             return (Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression) c.Invoke(new object[] { e });
         } catch (System.Exception e1) {
             throw new System.ArgumentException (e1.ToString());
         }
     }
 }
Esempio n. 4
0
        public virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression TranslateAny(Net.Vpc.Upa.Expressions.Expression o, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations)
        {
            if (o == null)
            {
                return(null);
            }
            object o0 = o;

            while (true)
            {
                Net.Vpc.Upa.Impl.Uql.ExpressionTranslator p = expressionProviders.Get(o0.GetType());
                if (p == null)
                {
                    throw new System.ArgumentException("No compiler found for " + o0.GetType());
                }
                Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression e = p.TranslateExpression(o0, this, declarations);
                if (e == null)
                {
                    throw new System.NullReferenceException();
                }
                if (e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledExpandableExpression)
                {
                    e = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledExpandableExpression)e).Expand(persistenceUnit);
                }
                if (e == null)
                {
                    throw new System.NullReferenceException();
                }
                if (e == o0)
                {
                    return(e);
                }
                o0 = e;
            }
        }
Esempio n. 5
0
        public override void SetSubExpression(int index, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression)
        {
            switch (index)
            {
            case 0:
            {
                if (left != expression)
                {
                    left = expression;
                    PrepareChildren(left);
                }
                break;
            }

            case 1:
            {
                if (right != expression)
                {
                    right = expression;
                    PrepareChildren(right);
                }
                break;
            }

            default:
            {
                throw new System.ArgumentException();
            }
            }
        }
Esempio n. 6
0
 public Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledUpdate AddQuery(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledUpdate other)
 {
     if (other == null)
     {
         return(this);
     }
     if (other.entityName != null)
     {
         this.Entity(((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName)other.entityName).GetName(), other.entityAlias);
     }
     for (int i = 0; i < (other.fields).Count; i++)
     {
         Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar fvar = other.GetField(i);
         Net.Vpc.Upa.Field field = (Net.Vpc.Upa.Field)fvar.GetReferrer();
         Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression fieldValue = other.GetFieldValue(i);
         Set(field, fieldValue == null ? null : fieldValue.Copy());
     }
     if (other.condition != null)
     {
         if (condition == null)
         {
             Where(other.condition.Copy());
         }
         else
         {
             Where(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledAnd(condition, other.condition.Copy()));
         }
     }
     return(this);
 }
Esempio n. 7
0
        public override void SetSubExpression(int index, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression)
        {
            switch (index)
            {
            case 0:
            {
                left = expression;
                PrepareChildren(expression);
                break;
            }

            case 1:
            {
                min = expression;
                PrepareChildren(expression);
                break;
            }

            case 2:
            {
                max = expression;
                PrepareChildren(expression);
                break;
            }

            default:
            {
                throw new System.ArgumentException("Invalid index");
            }
            }
        }
Esempio n. 8
0
 public virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression CompileExpression(Net.Vpc.Upa.Expressions.Expression expression, Net.Vpc.Upa.Persistence.ExpressionCompilerConfig config)
 {
     if (/*IsLoggable=*/ true)
     {
     }
     //expected api 1.2.1
     //            log.log(Level.FINE,"Compiling Expression " + expression);
     if (expression == null)
     {
         throw new System.NullReferenceException("Null Expression could not be compiled");
     }
     Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList dec = new Net.Vpc.Upa.Impl.Uql.DefaultExpressionDeclarationList(null);
     if (config.GetAliasToEntityContext() != null)
     {
         foreach (System.Collections.Generic.KeyValuePair <string, string> entry in new System.Collections.Generic.HashSet <System.Collections.Generic.KeyValuePair <string, string> >(config.GetAliasToEntityContext()))
         {
             // check entity existence
             persistenceUnit.GetEntity((entry).Value);
             dec.ExportDeclaration((entry).Key, Net.Vpc.Upa.Impl.Uql.DecObjectType.ENTITY, (entry).Value, null);
         }
     }
     Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression s = TranslateAny(expression, dec);
     if (s is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryStatement)
     {
         Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryStatement qs = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryStatement)s;
         System.Collections.Generic.IList <Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField> fields = qs.GetFields();
         for (int i = 0; i < (fields).Count; i++)
         {
             Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField field = fields[i];
             field.SetIndex(i);
         }
     }
     return(s);
 }
Esempio n. 9
0
 public CompiledBinaryOperatorExpression(Net.Vpc.Upa.Expressions.BinaryOperator @operator, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression left, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression right)
 {
     this.left  = left;
     this.right = right;
     Net.Vpc.Upa.Types.DataTypeTransform leftType  = null;
     Net.Vpc.Upa.Types.DataTypeTransform rightType = null;
     if (left != null && left.GetTypeTransform() != null && !left.GetTypeTransform().GetSourceType().GetPlatformType().Equals(typeof(object)))
     {
         leftType = left.GetTypeTransform();
     }
     if (right != null && right.GetTypeTransform() != null && !right.GetTypeTransform().GetSourceType().GetPlatformType().Equals(typeof(object)))
     {
         rightType = right.GetTypeTransform();
     }
     if (leftType == null && rightType != null)
     {
         left.SetTypeTransform(rightType);
     }
     else if (rightType == null && leftType != null)
     {
         right.SetTypeTransform(leftType);
     }
     this.@operator = @operator;
     PrepareChildren(left, right);
 }
Esempio n. 10
0
 public CompiledBetween(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression min, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression max)
 {
     this.left = expression;
     this.min  = min;
     this.max  = max;
     PrepareChildren(left, min, max);
 }
Esempio n. 11
0
 protected internal virtual void AppendWhere(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression cond, System.Text.StringBuilder sb, Net.Vpc.Upa.Persistence.EntityExecutionContext context, Net.Vpc.Upa.Impl.Persistence.SQLManager sqlManager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations)
 {
     if (cond != null && cond.IsValid())
     {
         sb.Append(" Where ").Append(sqlManager.GetSQL(cond, context, declarations));
     }
 }
Esempio n. 12
0
 public override Net.Vpc.Upa.Types.DataTypeTransform GetEffectiveDataType()
 {
     Net.Vpc.Upa.Types.DataTypeTransform d = GetTypeTransform();
     Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression p = GetParentExpression();
     if (p is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarVal)
     {
         Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarOrMethod v = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarVal)p).GetVar();
         v = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarOrMethod)v).GetFinest();
         object r = v.GetReferrer();
         if (r is Net.Vpc.Upa.Field)
         {
             return(Net.Vpc.Upa.Impl.Util.UPAUtils.GetTypeTransformOrIdentity((Net.Vpc.Upa.Field)r));
         }
     }
     else if ((p is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEquals) || (p is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledDifferent))
     {
         Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression o = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledBinaryOperatorExpression)p).GetOther(this);
         if (o is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarOrMethod)
         {
             o = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarOrMethod)o).GetFinest();
             object r = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarOrMethod)o).GetReferrer();
             if (r is Net.Vpc.Upa.Field)
             {
                 return(Net.Vpc.Upa.Impl.Util.UPAUtils.GetTypeTransformOrIdentity((Net.Vpc.Upa.Field)r));
             }
         }
     }
     return(d);
 }
Esempio n. 13
0
 public static Net.Vpc.Upa.Impl.Util.ExprTypeInfo ResolveExprTypeInfo(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression e, bool byBrother)
 {
     if (e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarOrMethod)
     {
         e = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarOrMethod)e).GetFinest();
         object r = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarOrMethod)e).GetReferrer();
         if (r is Net.Vpc.Upa.Field)
         {
             Net.Vpc.Upa.Types.DataTypeTransform tr = GetTypeTransformOrIdentity(((Net.Vpc.Upa.Field)r));
             Net.Vpc.Upa.Impl.Util.ExprTypeInfo  i  = new Net.Vpc.Upa.Impl.Util.ExprTypeInfo();
             i.SetReferrer(r);
             i.SetTransform(tr);
             if (e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)
             {
                 Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar cv = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)e;
                 i.SetOldReferrer(cv.GetOldReferrer());
             }
             return(i);
         }
     }
     if (e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarVal)
     {
         Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarOrMethod v = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarVal)e).GetVar();
         return(ResolveExprTypeInfo(v));
     }
     Net.Vpc.Upa.Types.DataTypeTransform typeTransform = e.GetTypeTransform();
     if (e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam || e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral)
     {
         Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression p = e.GetParentExpression();
         if (p is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarVal)
         {
             return(ResolveExprTypeInfo(p));
         }
         else
         {
             object @object = (e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam) ? ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam)e).GetValue() : ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral)e).GetValue();
             Net.Vpc.Upa.Types.DataType          sourceType = typeTransform.GetSourceType();
             Net.Vpc.Upa.Types.DataTypeTransform bestType   = typeTransform;
             if ((p is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledBinaryOperatorExpression) && (((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledBinaryOperatorExpression)p).IsSameOperandsType()))
             {
                 Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression o = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledBinaryOperatorExpression)p).GetOther(e);
                 if (byBrother)
                 {
                     return(ResolveExprTypeInfo(o, false));
                 }
             }
             if (@object != null && (typeTransform.Equals(Net.Vpc.Upa.Impl.Transform.IdentityDataTypeTransform.OBJECT) || !sourceType.IsInstance(@object)))
             {
                 bestType = Net.Vpc.Upa.Impl.Transform.IdentityDataTypeTransform.ForNativeType(@object.GetType());
             }
             Net.Vpc.Upa.Impl.Util.ExprTypeInfo typeInfo1 = new Net.Vpc.Upa.Impl.Util.ExprTypeInfo();
             typeInfo1.SetTransform(bestType);
             return(typeInfo1);
         }
     }
     Net.Vpc.Upa.Impl.Util.ExprTypeInfo typeInfo2 = new Net.Vpc.Upa.Impl.Util.ExprTypeInfo();
     typeInfo2.SetTransform(typeTransform);
     return(typeInfo2);
 }
Esempio n. 14
0
 protected internal virtual void AppendHaving(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect o, System.Text.StringBuilder sb, Net.Vpc.Upa.Persistence.EntityExecutionContext context, Net.Vpc.Upa.Impl.Persistence.SQLManager sqlManager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations)
 {
     Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression hav = o.GetHaving();
     if (hav != null && hav.IsValid())
     {
         sb.Append(" Having ").Append(sqlManager.GetSQL(hav, context, declarations));
     }
 }
Esempio n. 15
0
 public virtual bool Visit(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression e)
 {
     if (filter == null || filter.Accept(e))
     {
         expressions.Add(e);
     }
     return(true);
 }
Esempio n. 16
0
 public override void SetSubExpression(int index, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression)
 {
     if (index == 0)
     {
         SetChild((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarOrMethod)expression);
     }
     throw new System.Exception();
 }
Esempio n. 17
0
 public virtual bool Accept(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression e)
 {
     if (!(e != null && typeof(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar).IsInstanceOfType(e)))
     {
         return(false);
     }
     Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar v = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)e;
     return(v.GetChild() == null);
 }
Esempio n. 18
0
 public void SetCondition(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression)
 {
     if (this.condition != null)
     {
         this.condition.UnsetParent();
     }
     this.condition = expression;
     PrepareChildren(expression);
 }
 public IsHierarchyDescendentCompiled(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression ancestorExpression, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression childExpression, Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName entityName)  : base("treeAncestor")
 {
     this.ancestorExpression = ancestorExpression;
     this.childExpression    = childExpression;
     this.entityName         = entityName;
     ProtectedAddArgument(ancestorExpression);
     ProtectedAddArgument(childExpression);
     ProtectedAddArgument(entityName);
 }
Esempio n. 20
0
 protected internal virtual void ProtectedAddArgument(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression e)
 {
     if (e == null)
     {
         throw new System.ArgumentException();
     }
     expressions.Add(e);
     PrepareChildren(e);
 }
        public override string GetSQL(object oo, Net.Vpc.Upa.Persistence.EntityExecutionContext qlContext, Net.Vpc.Upa.Impl.Persistence.SQLManager sqlManager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations) /* throws Net.Vpc.Upa.Exceptions.UPAException */
        {
            Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledPlus o = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledPlus)oo;
            System.Type t1 = o.GetLeft().GetTypeTransform().GetTargetType().GetPlatformType();
            System.Type t2 = o.GetRight().GetTypeTransform().GetTargetType().GetPlatformType();
            bool        s0 = o.GetTypeTransform().GetTargetType().GetPlatformType().Equals(typeof(string));
            bool        s1 = t1.Equals(typeof(string));
            bool        s2 = t2.Equals(typeof(string));

            if (s0 || s1 || s2)
            {
                Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression c1 = o.GetLeft().Copy();
                Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression c2 = o.GetRight().Copy();
                c1.SetParentExpression(null);
                c2.SetParentExpression(null);
                if (!s1)
                {
                    if (Net.Vpc.Upa.Impl.Util.PlatformUtils.IsAnyInteger(t1))
                    {
                        c1 = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(c1.Copy());
                    }
                    else if (Net.Vpc.Upa.Impl.Util.PlatformUtils.IsAnyFloat(t1))
                    {
                        c1 = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(c1.Copy());
                    }
                    else
                    {
                        throw new System.ArgumentException("Unsupported");
                    }
                }
                if (!s2)
                {
                    if (Net.Vpc.Upa.Impl.Util.PlatformUtils.IsAnyInteger(t2))
                    {
                        c2 = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(c2.Copy());
                    }
                    else if (Net.Vpc.Upa.Impl.Util.PlatformUtils.IsAnyFloat(t2))
                    {
                        c2 = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(c2.Copy());
                    }
                    else
                    {
                        throw new System.ArgumentException("Unsupported");
                    }
                }
                Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledConcat cc = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledConcat(c1, c2);
                return(sqlManager.GetSQL(cc, qlContext, declarations));
            }
            string leftValue = o.GetLeft() != null?sqlManager.GetSQL(o.GetLeft(), qlContext, declarations) : "NULL";

            string rightValue = o.GetRight() != null?sqlManager.GetSQL(o.GetRight(), qlContext, declarations) : "NULL";

            string s = null;

            s = leftValue + " + " + rightValue;
            return("(" + s + ")");
        }
Esempio n. 22
0
        public virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression ReplaceExpressions(Net.Vpc.Upa.Impl.Uql.CompiledExpressionFilter filter, Net.Vpc.Upa.Impl.Uql.CompiledExpressionReplacer replacer)
        {
            Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression t = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression)((filter == null || filter.Accept(this)) ? replacer.Update(this) : null);
            bool updated = false;

            if (t != null)
            {
                updated = true;
            }
            else
            {
                t = this;
            }
            if (!updated)
            {
                System.Collections.Generic.IList <Net.Vpc.Upa.Impl.Uql.Compiledexpression.ReplacementPosition> replacementPositions = new System.Collections.Generic.List <Net.Vpc.Upa.Impl.Uql.Compiledexpression.ReplacementPosition>();
                int i = 0;
                Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression[] subExpressions = t.GetSubExpressions();
                if (subExpressions != null)
                {
                    foreach (Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression in subExpressions)
                    {
                        replacementPositions.Add(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.ReplacementPosition(t, expression, i));
                        i++;
                    }
                }
                foreach (Net.Vpc.Upa.Impl.Uql.Compiledexpression.ReplacementPosition r in replacementPositions)
                {
                    if (r.GetChild() == null)
                    {
                    }
                    else
                    {
                        Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression c = r.GetChild().ReplaceExpressions(filter, replacer);
                        if (c != null)
                        {
                            int pos = r.GetPos();
                            //                if (!updated) {
                            //                    t = t.copy();
                            //                }
                            if (subExpressions[pos] != c)
                            {
                                subExpressions[pos].SetParentExpression(null);
                                t.SetSubExpression(pos, c);
                            }
                            updated = true;
                        }
                    }
                }
            }
            if (updated)
            {
                return(t);
            }
            return(null);
        }
Esempio n. 23
0
 public virtual Net.Vpc.Upa.Impl.Persistence.RebuildExpressionInfo RebuildExpression(Net.Vpc.Upa.ExpressionFormula persistFormula)
 {
     Net.Vpc.Upa.Expressions.Expression e = ((Net.Vpc.Upa.ExpressionFormula)persistFormula).GetExpression();
     Net.Vpc.Upa.Impl.Persistence.RebuildExpressionInfo rr = new Net.Vpc.Upa.Impl.Persistence.RebuildExpressionInfo();
     rr.initialFormula = ((Net.Vpc.Upa.ExpressionFormula)persistFormula);
     Net.Vpc.Upa.Expressions.Expression e0 = e;
     Net.Vpc.Upa.Persistence.ExpressionCompilerConfig config = new Net.Vpc.Upa.Persistence.ExpressionCompilerConfig();
     config.SetExpandEntityFilter(false);
     //this is needed not to fire "this" alias usage exception
     config.SetThisAlias("this");
     config.BindAliastoEntity("this", field.GetEntity().GetName());
     Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression ce = null;
     Net.Vpc.Upa.ExpressionManager expressionManager = field.GetEntity().GetPersistenceUnit().GetExpressionManager();
     try {
         ce = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression)expressionManager.CompileExpression(e, config);
     } catch (System.ArgumentException ex) {
         if ((ex).Message.StartsWith("No enclosing Select found for"))
         {
             Net.Vpc.Upa.Expressions.Select ss = new Net.Vpc.Upa.Expressions.Select();
             ss.Field(e).From(field.GetEntity().GetName(), "this2");
             Net.Vpc.Upa.Expressions.Expression w = null;
             foreach (Net.Vpc.Upa.Field primaryField in field.GetEntity().GetPrimaryFields())
             {
                 Net.Vpc.Upa.Expressions.Expression pfe = new Net.Vpc.Upa.Expressions.Equals(new Net.Vpc.Upa.Expressions.UserExpression("this." + primaryField.GetName()), new Net.Vpc.Upa.Expressions.UserExpression("this2." + primaryField.GetName()));
                 if (w == null)
                 {
                     w = pfe;
                 }
                 else
                 {
                     w = new Net.Vpc.Upa.Expressions.And(w, pfe);
                 }
             }
             Net.Vpc.Upa.Impl.Uql.Util.UQLUtils.ReplaceThisVar(ss, "this2", expressionManager);
             ss.Where(w);
             e = ss;
         }
         else
         {
             throw ex;
         }
     }
     //throw new IllegalArgumentException("No enclosing Select found for " + v)
     if (ce == null)
     {
         ce = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression)expressionManager.CompileExpression(e, config);
         rr.compiledExpression = ce;
         rr.rebuiltFormula     = (new Net.Vpc.Upa.ExpressionFormula(e));
     }
     else
     {
         rr.compiledExpression = ce;
     }
     rr.expression = e;
     return(rr);
 }
Esempio n. 24
0
 public override void SetSubExpression(int index, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression)
 {
     if (index < left.Length)
     {
         left[index] = expression;
     }
     else
     {
         query = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect)expression;
     }
 }
Esempio n. 25
0
        public virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression[] GetArguments()
        {
            int max = GetArgumentsCount();

            Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression[] p = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression[max];
            for (int i = 0; i < max; i++)
            {
                p[i] = GetArgument(i);
            }
            return(p);
        }
Esempio n. 26
0
 public virtual int IndexOf(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression field)
 {
     for (int i = 0; i < (items).Count; i++)
     {
         if (items[i].GetExpression().Equals(field))
         {
             return(i);
         }
     }
     return(-1);
 }
Esempio n. 27
0
 protected internal virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledURShift CompileURShift(Net.Vpc.Upa.Expressions.URShift v, Net.Vpc.Upa.Impl.Uql.ExpressionTranslationManager manager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations)
 {
     if (v == null)
     {
         return(null);
     }
     Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression left  = manager.TranslateAny(v.GetLeft(), declarations);
     Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression right = manager.TranslateAny(v.GetRight(), declarations);
     Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledURShift           s     = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledURShift(left, right);
     //        s.setDeclarationList(new ExpressionDeclarationList(declarations));
     return(s);
 }
Esempio n. 28
0
 public virtual bool Visit(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression e)
 {
     if (e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)
     {
         Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar v = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)e;
         if (v.GetReferrer() is Net.Vpc.Upa.Field)
         {
             usedFields.Add((Net.Vpc.Upa.Field)v.GetReferrer());
         }
     }
     return(true);
 }
Esempio n. 29
0
 public virtual bool Accept(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression e)
 {
     if (e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)
     {
         Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar c = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)e;
         if (c.GetName().Equals("this"))
         {
             return(true);
         }
     }
     return(false);
 }
Esempio n. 30
0
 public override Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression Copy()
 {
     Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression[] expressions1 = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression[expressions.Length];
     for (int i = 0; i < expressions.Length; i++)
     {
         expressions1[i] = expressions[i].Copy();
     }
     Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledStrFormat o = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledStrFormat((string)pattern.GetValue(), expressions1);
     o.SetDescription(GetDescription());
     o.GetClientParameters().SetAll(GetClientParameters());
     return(o);
 }