コード例 #1
0
ファイル: CompiledI2V.cs プロジェクト: nesrinesghaier/upa
 public override Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression Copy()
 {
     Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V o = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(GetExpression().Copy());
     o.SetDescription(GetDescription());
     o.GetClientParameters().SetAll(GetClientParameters());
     return(o);
 }
コード例 #2
0
        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 + ")");
        }
コード例 #3
0
 protected internal virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V CompileI2V(Net.Vpc.Upa.Expressions.I2V 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.CompiledI2V s = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(manager.TranslateAny(v.GetExpression(), declarations));
     //        s.setDeclarationList(declarations);
     return(s);
 }
コード例 #4
0
 public Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledConcat Add(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression)
 {
     if (expression == this)
     {
         throw new System.Exception("WOOOOOOOODOOOOOOO");
     }
     else
     {
         if (expression.GetTypeTransform() != null)
         {
             System.Type platformType = expression.GetTypeTransform().GetTargetType().GetPlatformType();
             if (platformType.Equals(typeof(int?)) || platformType.Equals(typeof(int)) || platformType.Equals(typeof(System.Numerics.BigInteger?)))
             {
                 expression = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(expression);
             }
             else if (platformType.Equals(typeof(double?)) || platformType.Equals(typeof(double)) || platformType.Equals(typeof(System.Decimal?)))
             {
                 expression = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledD2V(expression);
             }
         }
         ProtectedAddArgument(expression);
         return(this);
     }
 }
コード例 #5
0
 public virtual Net.Vpc.Upa.Expressions.CompiledExpression CreateConditionForDeepSearch(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression alias, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression id, bool includeId, Net.Vpc.Upa.Field field, string pathSep) /* throws Net.Vpc.Upa.Exceptions.UPAException */
 {
     alias = alias.Copy();
     if (alias is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)
     {
         Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar cv = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)alias;
         if (cv.GetReferrer() is Net.Vpc.Upa.Entity)
         {
             Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar v = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(field.GetName());
             ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)alias).SetChild(v);
         }
         else
         {
             throw new System.ArgumentException("Expected " + field.GetEntity().GetName() + " var name");
         }
     }
     else
     {
         throw new System.ArgumentException("Expected " + field.GetEntity().GetName() + " var name");
     }
     id = id.Copy();
     System.Collections.Generic.IList <Net.Vpc.Upa.Field> primaryFields = field.GetEntity().GetPrimaryFields();
     if ((primaryFields).Count > 1)
     {
         throw new System.ArgumentException("Composite ID unsupported for function treeancestor");
     }
     Net.Vpc.Upa.Types.DataType pkType = primaryFields[0].GetDataType();
     Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression strId = null;
     if (pkType is Net.Vpc.Upa.Types.IntType)
     {
         strId = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(id);
     }
     else if (pkType is Net.Vpc.Upa.Types.LongType)
     {
         strId = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(id);
     }
     else if (pkType is Net.Vpc.Upa.Types.ShortType)
     {
         strId = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(id);
     }
     else if (pkType is Net.Vpc.Upa.Types.ByteType)
     {
         strId = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(id);
     }
     else if (pkType is Net.Vpc.Upa.Types.FloatType)
     {
         strId = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledD2V(id);
     }
     else if (pkType is Net.Vpc.Upa.Types.DoubleType)
     {
         strId = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledD2V(id);
     }
     else if (pkType is Net.Vpc.Upa.Types.StringType)
     {
         strId = id;
     }
     else
     {
         strId = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledCast(id, Net.Vpc.Upa.Impl.Transform.IdentityDataTypeTransform.STRING);
     }
     if (includeId)
     {
         return(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledOr(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLike(alias.Copy(), new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledConcat(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral("%" + pathSep), strId.Copy())), new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLike(alias.Copy(), new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledConcat(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral("%" + pathSep), strId.Copy(), new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral(pathSep + "%")))));
     }
     else
     {
         return(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLike(alias.Copy(), new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledConcat(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral("%" + pathSep), strId.Copy(), new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral(pathSep + "%"))));
     }
 }