public virtual Net.Vpc.Upa.Expressions.CompiledExpression Update(Net.Vpc.Upa.Expressions.CompiledExpression e) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQLFunctionExpression o = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQLFunctionExpression)e; int argumentsCount = o.GetArgumentsCount(); object[] args = new object[argumentsCount]; for (int i = 0; i < args.Length; i++) { args[i] = Eval(o.GetArgument(i)); } object v = o.GetHandler().Eval(new Net.Vpc.Upa.EvalContext(o.GetName(), args, persistenceUnit)); if (v != null) { if (v is Net.Vpc.Upa.Expressions.CompiledExpression) { return((Net.Vpc.Upa.Expressions.CompiledExpression)v); } if (v is Net.Vpc.Upa.Expressions.Expression) { throw new System.ArgumentException("Function should return literals of compiled expressions (CompiledExpression type)"); } return(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam(v, null, o.GetTypeTransform(), false)); } else { return(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral(null, null)); } }
protected internal virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar CompileVar(Net.Vpc.Upa.Expressions.Var v, Net.Vpc.Upa.Impl.Uql.ExpressionTranslationManager manager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations) { if (v == null) { return(null); } Net.Vpc.Upa.Expressions.CompiledExpression p = null; if (v.GetApplier() != null) { p = manager.TranslateAny(v.GetApplier(), declarations); } if (p == null) { return(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(v.GetName())); } else { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar r = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(v.GetName()); if (p is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar) { ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)p).GetFinest()).SetChild(r); return((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)p); } else { throw new Net.Vpc.Upa.Exceptions.UPAException("Unsupported"); } } }
public virtual Net.Vpc.Upa.Expressions.CompiledExpression Update(Net.Vpc.Upa.Expressions.CompiledExpression e) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar implicitParent = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(thisAlias); // e2 = (CompiledVar) ((CompiledVar) e).copy(); Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar e2 = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)e; e2.UnsetParent(); implicitParent.SetChild(e2); return(implicitParent); }
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); }
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); }
public virtual T FindFirstExpression <T>(Net.Vpc.Upa.Impl.Uql.CompiledExpressionFilter filter) where T : Net.Vpc.Upa.Expressions.CompiledExpression { if (filter.Accept(this)) { //this double casting is needed in C# return((T)(object)this); } Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression[] subExpressions = GetSubExpressions(); if (subExpressions != null) { foreach (Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression subExpression in subExpressions) { if (subExpression != null) { Net.Vpc.Upa.Expressions.CompiledExpression e = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpressionImpl)subExpression).FindFirstExpression <T>(filter); if (e != null) { return((T)e); } } } } return(default(T)); }
public virtual Net.Vpc.Upa.Expressions.CompiledExpression Update(Net.Vpc.Upa.Expressions.CompiledExpression e) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar t = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)e; t.SetName(thisAlias); return(t); }
public virtual Net.Vpc.Upa.Expressions.CompiledExpression Update(Net.Vpc.Upa.Expressions.CompiledExpression e) { return(@value); }
public ValueCompiledExpressionReplacer(Net.Vpc.Upa.Expressions.CompiledExpression @value) { this.@value = @value; }
public RefEqualCompiledExpressionFilter(Net.Vpc.Upa.Expressions.CompiledExpression @value) { this.@value = @value; }
public static System.Collections.Generic.IList <Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar> FindChildrenLeafVars(Net.Vpc.Upa.Expressions.CompiledExpression v) { return(((Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression)v).FindExpressionsList <T>(Net.Vpc.Upa.Impl.Uql.Compiledfilters.CompiledExpressionFilterLeafVar.INSTANCE)); }
public virtual Net.Vpc.Upa.Expressions.CompiledExpression Update(Net.Vpc.Upa.Expressions.CompiledExpression e) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.IsHierarchyDescendentCompiled o = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.IsHierarchyDescendentCompiled)e; Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression c = o.GetChildExpression(); Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression p = o.GetAncestorExpression(); Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName n = o.GetEntityName(); Net.Vpc.Upa.Entity treeEntity = null; Net.Vpc.Upa.Field treeField = null; if (c is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar) { object childReferrer = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)c).GetFinest().GetReferrer(); if (childReferrer != null) { if (childReferrer is Net.Vpc.Upa.Entity) { if (treeEntity == null) { treeEntity = (Net.Vpc.Upa.Entity)childReferrer; } else { if (!treeEntity.GetName().Equals(((Net.Vpc.Upa.Entity)childReferrer).GetName())) { throw new System.ArgumentException("Ambiguous or Invalid Type " + treeEntity.GetName() + " in TreeEntity near " + e); } } } } } else if (c is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam) { object co = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam)c).GetValue(); if (co != null && persistenceUnit.ContainsEntity(co.GetType())) { Net.Vpc.Upa.Entity rr = persistenceUnit.GetEntity(co.GetType()); if (treeEntity == null) { treeEntity = rr; } ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam)c).SetValue(rr.GetBuilder().ObjectToId(co)); } } // Object co = ((CompiledParam) c).getEffectiveDataType(); if (p is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar) { object parentReferrer = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)p).GetFinest().GetReferrer(); if (parentReferrer != null) { if (parentReferrer is Net.Vpc.Upa.Entity) { if (treeEntity == null) { treeEntity = (Net.Vpc.Upa.Entity)parentReferrer; } else { if (!treeEntity.GetName().Equals(((Net.Vpc.Upa.Entity)parentReferrer).GetName())) { throw new System.ArgumentException("Ambiguous or Invalid Type " + treeEntity.GetName() + " in TreeEntity near " + e); } } } } } else if (p is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam) { object co = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam)p).GetValue(); if (co != null && persistenceUnit.ContainsEntity(co.GetType())) { Net.Vpc.Upa.Entity rr = persistenceUnit.FindEntity(co.GetType()); if (treeEntity == null) { treeEntity = rr; } ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam)p).SetValue(rr.GetBuilder().ObjectToId(co)); if ((rr.GetPrimaryFields()).Count > 1) { throw new System.ArgumentException("Not supported"); } ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledParam)p).SetTypeTransform(Net.Vpc.Upa.Impl.Util.UPAUtils.GetTypeTransformOrIdentity(rr.GetPrimaryFields()[0])); } } // Object co = ((CompiledParam) c).getEffectiveDataType(); if (treeEntity == null) { treeEntity = persistenceUnit.GetEntity(n.GetName()); } Net.Vpc.Upa.Relationship t = Net.Vpc.Upa.Impl.Extension.HierarchicalRelationshipSupport.GetTreeRelationName(treeEntity); if (t == null) { throw new System.ArgumentException("Hierarchy Relationship not found"); } Net.Vpc.Upa.Extensions.HierarchyExtension s = t.GetHierarchyExtension(); if (s == null) { throw new System.ArgumentException("Not a valid TreeEntity"); } Net.Vpc.Upa.Field pathField = treeEntity.GetField(s.GetHierarchyPathField()); string pathSep = s.GetHierarchyPathSeparator(); return(CreateConditionForDeepSearch(c, (Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression)p, true, pathField, pathSep)); }