Ejemplo n.º 1
0
        protected internal virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityStatement CreateCompiledEntityStatement()
        {
            Net.Vpc.Upa.Persistence.ExpressionCompilerConfig config = new Net.Vpc.Upa.Persistence.ExpressionCompilerConfig();
            string alias = null;
            string ent   = null;

            if (query is Net.Vpc.Upa.Expressions.Select)
            {
                Net.Vpc.Upa.Expressions.Select d = (Net.Vpc.Upa.Expressions.Select)query;
                string entityAlias = d.GetEntityAlias();
                Net.Vpc.Upa.Expressions.EntityName entityName = (d.GetEntity() is Net.Vpc.Upa.Expressions.EntityName) ? ((Net.Vpc.Upa.Expressions.EntityName)d.GetEntity()) : null;
                if (entityAlias != null)
                {
                    alias = entityAlias;
                    ent   = entityName == null ? null : entityName.GetName();
                }
                else
                {
                    ent   = entityName == null ? null : entityName.GetName();
                    alias = ent;
                }
            }
            if (alias != null)
            {
                config.SetThisAlias(alias);
            }
            config.SetExpandFields(false);
            config.SetExpandEntityFilter(false);
            config.SetValidate(false);
            return((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityStatement)context.GetPersistenceUnit().GetExpressionManager().CompileExpression(query, config));
        }
Ejemplo n.º 2
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);
 }
Ejemplo n.º 3
0
 public virtual Net.Vpc.Upa.Expressions.CompiledExpression CompileExpression(Net.Vpc.Upa.Expressions.Expression expression, Net.Vpc.Upa.Persistence.ExpressionCompilerConfig config)
 {
     if (config == null)
     {
         config = new Net.Vpc.Upa.Persistence.ExpressionCompilerConfig();
     }
     Net.Vpc.Upa.Expressions.CompiledExpression qe = translationManager.CompileExpression(expression, config);
     qe = CompileExpression(qe, config);
     return(qe);
 }
Ejemplo n.º 4
0
 public virtual Net.Vpc.Upa.Expressions.CompiledExpression CompileExpression(Net.Vpc.Upa.Expressions.CompiledExpression expression, Net.Vpc.Upa.Persistence.ExpressionCompilerConfig config)
 {
     if (config == null)
     {
         config = new Net.Vpc.Upa.Persistence.ExpressionCompilerConfig();
     }
     if (config.IsValidate() || config.IsExpandFields())
     {
         expression = validationManager.ValidateExpression(expression, config);
     }
     return(expression);
 }
Ejemplo n.º 5
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);
 }