Ejemplo n.º 1
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);
 }
Ejemplo n.º 2
0
 public virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField AddField(int index, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression, string alias)
 {
     Invalidate();
     Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField field = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField(alias, expression);
     fields.Insert(index, field);
     PrepareChildren(field.GetExpression());
     return(field);
 }
Ejemplo n.º 3
0
 public virtual int IndexOf(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression field)
 {
     for (int i = 0; i < (fields).Count; i++)
     {
         Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField info = fields[i];
         if (field.Equals(info.GetExpression()))
         {
             return(i);
         }
     }
     return(-1);
 }
Ejemplo n.º 4
0
        protected internal virtual void AppendFields(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)
        {
            sb.Append(" ");
            string aliasString = null;
            string valueString = null;
            bool   started     = false;

            if (o.CountFields() == 0)
            {
                sb.Append("...");
            }
            else
            {
                //            PersistenceStore persistenceStore = context.getPersistenceStore();
                for (int i = 0; i < o.CountFields(); i++)
                {
                    Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField        fi = o.GetField(i);
                    Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression e  = fi.GetExpression();
                    bool fieldIsSelect = e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect;
                    valueString = sqlManager.GetSQL(e, context, declarations);
                    if (fieldIsSelect)
                    {
                        valueString = "(" + valueString + ")";
                    }
                    aliasString = fi.GetAlias();
                    if (started)
                    {
                        sb.Append(",");
                    }
                    else
                    {
                        started = true;
                    }
                    if (aliasString == null)
                    {
                        sb.Append(valueString);
                    }
                    else
                    {
                        sb.Append(valueString);
                        sb.Append(" ");
                        sb.Append(sqlManager.GetSQL(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(aliasString), context, declarations));
                    }
                }
            }
        }
Ejemplo n.º 5
0
        public override string ToString()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder("Select ");
            if (top > 0)
            {
                sb.Append(" TOP ").Append(top);
            }
            if (distinct)
            {
                sb.Append(" DISTINCT");
            }
            sb.Append(" ");
            string aliasString = null;
            string valueString = null;
            bool   started     = false;

            if (CountFields() == 0)
            {
                sb.Append("...");
            }
            else
            {
                for (int i = 0; i < CountFields(); i++)
                {
                    Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField        fi = GetField(i);
                    Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression e  = fi.GetExpression();
                    valueString = System.Convert.ToString(e);
                    if (!(e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar) && !(e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam) && !(e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledFunction) && !(e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral))
                    {
                        valueString = "(" + valueString + ")";
                    }
                    aliasString = fi.GetAlias();
                    if (started)
                    {
                        sb.Append(",");
                    }
                    else
                    {
                        started = true;
                    }
                    if (aliasString == null)
                    {
                        sb.Append(valueString);
                    }
                    else
                    {
                        sb.Append(valueString);
                        sb.Append(" ");
                        sb.Append(aliasString);
                    }
                }
            }
            if (GetEntity() == null)
            {
            }
            else
            {
                sb.Append(" From ");
                if (GetEntity() is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect)
                {
                    sb.Append(GetEntity().ToString());
                }
                else
                {
                    Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName entityName = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName)GetEntity();
                    sb.Append(entityName);
                }
            }
            if (GetEntityAlias() != null)
            {
                sb.Append(" ").Append(GetEntityAlias());
            }
            for (int i = 0; i < CountJoins(); i++)
            {
                Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledJoinCriteria e = GetJoin(i);
                sb.Append(" ").Append(e);
            }
            Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression c = GetWhere();
            if (c != null && c.IsValid())
            {
                sb.Append(" Where ").Append(c);
            }
            if (CountGroupByItems() > 0)
            {
                sb.Append(" ");
                int maxGroups = CountGroupByItems();
                sb.Append("Group By ");
                for (int i = 0; i < maxGroups; i++)
                {
                    if (i > 0)
                    {
                        sb.Append(", ");
                    }
                    sb.Append(GetGroupBy(i));
                }
            }
            int maxOrders = CountOrderByItems();

            if (maxOrders > 0)
            {
                sb.Append(" ");
                sb.Append("Order By ");
                for (int i = 0; i < maxOrders; i++)
                {
                    if (i > 0)
                    {
                        sb.Append(", ");
                    }
                    sb.Append(GetOrderBy(i));
                    if (IsOrderAscending(i))
                    {
                        sb.Append(" Asc ");
                    }
                    else
                    {
                        sb.Append(" Desc ");
                    }
                }
            }
            return(sb.ToString());
        }
Ejemplo n.º 6
0
 public virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField AddField(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField compiledQueryField)
 {
     Invalidate();
     fields.Add(compiledQueryField);
     return(compiledQueryField);
 }