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 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); }
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); }
public virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledInsert Set(string key, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression @value) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar fName = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(key); Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarVal varVal = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarVal(fName, @value); fields.Add(varVal); PrepareChildren(varVal); return(this); }
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); }
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 override void SetSubExpression(int index, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression) { if (index == 0) { alias = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)expression; PrepareChildren(expression); } else { throw new System.ArgumentException("Invalid index"); } }
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); }
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); }
private static string ResolveName(string alias, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression) { if (alias != null) { return(alias); } if (expression is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar cv = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)expression; Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarOrMethod dc = cv.GetDeepChild(); return((dc == null ? ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarOrMethod)(cv)) : dc).GetName()); } return(null); }
public override Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression Copy() { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar o = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(GetName(), GetReferrer()); Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarOrMethod c = GetChild(); if (c != null) { c = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarOrMethod)c.Copy(); } o.SetChild(c); o.SetBinding(GetBinding()); o.SetDescription(GetDescription()); o.SetOldReferrer(GetOldReferrer()); o.GetClientParameters().SetAll(GetClientParameters()); return(o); }
public static Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect FindEnclosingSelect(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar v) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression e = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression)v; Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar rv = FindRootVar(v); while (e != null) { if (e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect s = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect)e; string entityAlias = s.GetEntityAlias(); if (entityAlias != null && (entityAlias).Length > 0) { if (rv.GetName().Equals(entityAlias)) { return(s); } } else { if (rv.GetName().Equals(s.GetEntityName())) { return(s); } } foreach (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledJoinCriteria c in s.GetJoins()) { string joinAlias = c.GetEntityAlias(); if (joinAlias != null && (joinAlias).Length > 0) { if (rv.GetName().Equals(joinAlias)) { return(s); } } else { if (rv.GetName().Equals(c.GetEntityName())) { return(s); } } } } e = e.GetParentExpression(); } return(null); }
private static string ResolveBinding(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression) { if (expression is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar cv = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)expression; Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVarOrMethod cv1 = cv.GetDeepChild(); if (cv1 != null && cv1 is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression cv2 = cv1.GetParentExpression(); if (cv2 != null && cv2 is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar) { return(((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)cv2).GetChildlessPath()); } } } return(null); }
public override void SetSubExpression(int index, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression) { switch (index) { case 0: { var = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)expression; PrepareChildren(var); return; } case 1: { val = expression; PrepareChildren(val); return; } } throw new System.Exception("Invalid index"); }
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.CompiledVar o = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)oo; Net.Vpc.Upa.Persistence.PersistenceStore persistenceStore = qlContext.GetPersistenceStore(); object referrer = o.GetReferrer(); System.Text.StringBuilder sb = new System.Text.StringBuilder(); if (referrer is Net.Vpc.Upa.Field) { Net.Vpc.Upa.Field field = (Net.Vpc.Upa.Field)referrer; string name = persistenceStore.GetPersistenceName(field); sb.Append(persistenceStore.GetValidIdentifier(name)); } else if (referrer is Net.Vpc.Upa.Entity) { Net.Vpc.Upa.Entity entity = (Net.Vpc.Upa.Entity)referrer; // if ("this".equals(o.getName())) { // throw new IllegalArgumentException("Unexpected this alias"); // //this must be resolved to the ancestor alias // ExpressionDeclarationList declarationList = o.getDeclarationList(); // name = persistenceManager.getPersistenceName(declarationList.getValue(null).getName(), PersistenceNameStrategyNames.ALIAS); // } else { string name = persistenceStore.GetPersistenceName(o.GetName(), Net.Vpc.Upa.Persistence.PersistenceNameType.ALIAS); sb.Append(persistenceStore.GetValidIdentifier(name)); } else { string name = persistenceStore.GetPersistenceName(o.GetName(), Net.Vpc.Upa.Persistence.PersistenceNameType.ALIAS); sb.Append(persistenceStore.GetValidIdentifier(name)); } if (o.GetChild() != null) { string cc = GetSQL(o.GetChild(), qlContext, sqlManager, declarations); sb.Append(".").Append(cc); } return(sb.ToString()); }
public override string GetSQL(object oo, Net.Vpc.Upa.Persistence.EntityExecutionContext context, 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.CompiledUpdate o = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledUpdate)oo; Net.Vpc.Upa.Persistence.PersistenceStore persistenceStore = context.GetPersistenceStore(); Net.Vpc.Upa.PersistenceUnit pu = context.GetPersistenceUnit(); Net.Vpc.Upa.Entity entity = pu.GetEntity(o.GetEntity().GetName()); // String persistenceName = persistenceStore.getPersistenceName(entity); System.Text.StringBuilder sb = new System.Text.StringBuilder("Update " + sqlManager.GetSQL(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName(entity.GetName()), context, declarations)); string tableAlias = o.GetEntityAlias(); if (tableAlias != null) { sb.Append(" "); sb.Append(sqlManager.GetSQL(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(tableAlias), context, declarations)); } sb.Append(" Set "); bool isFirst = true; int max = o.CountFields(); for (int i = 0; i < max; i++) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar vv = o.GetField(i); Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar ev = null; Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar fv = null; if (vv.GetChild() == null) { ev = null; fv = vv; } else { ev = vv; fv = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)vv.GetChild(); } Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression fieldValue = o.GetFieldValue(i); // Object referrer = vv.getReferrer(); Net.Vpc.Upa.Field f = ((Net.Vpc.Upa.Field)fv.GetReferrer()); Net.Vpc.Upa.Entity entityManager = f.GetEntity(); System.Collections.Generic.IList <Net.Vpc.Upa.PrimitiveField> primFields = entityManager.ToPrimitiveFields <Net.Vpc.Upa.EntityPart>(new System.Collections.Generic.List <Net.Vpc.Upa.EntityPart>(new[] { (Net.Vpc.Upa.EntityPart)f })); foreach (Net.Vpc.Upa.PrimitiveField primField in primFields) { if (isFirst) { isFirst = false; } else { sb.Append(", "); } if (ev != null) { sb.Append(sqlManager.GetSQL(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(ev.GetName()), context, declarations)).Append("."); } sb.Append(sqlManager.GetSQL(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(primField), context, declarations)); sb.Append("=").Append("(").Append(sqlManager.GetSQL(fieldValue, context, declarations)).Append(")"); } } if (o.GetCondition() != null && o.GetCondition().IsValid()) { sb.Append(" Where ").Append(sqlManager.GetSQL(o.GetCondition(), context, declarations)); } if (persistenceStore.IsViewSupported() && entity.NeedsView() && o.GetEntity().IsUseView()) { string implicitTableAlias = persistenceStore.GetPersistenceName("IT_" + entity.GetName(), Net.Vpc.Upa.Persistence.PersistenceNameType.ALIAS); sb.Append(" "); sb.Append(sqlManager.GetSQL(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName(entity.GetName()), context, declarations)).Append(" ").Append(implicitTableAlias).Append(",").Append(sqlManager.GetSQL(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName(entity.GetName(), true), context, declarations)).Append(" ").Append(sqlManager.GetSQL(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(tableAlias), context, declarations)); } // if (extraFrom != null) return(sb.ToString()); }
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 override string GetSQL(object o, Net.Vpc.Upa.Persistence.EntityExecutionContext qlContext, Net.Vpc.Upa.Impl.Persistence.SQLManager sqlManager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledKeyEnumerationExpression ee = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledKeyEnumerationExpression)o; Net.Vpc.Upa.Entity entity = null; Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar compiledVar = null; if (ee.GetAlias() != null) { compiledVar = ee.GetAlias(); entity = (compiledVar.GetReferrer() is Net.Vpc.Upa.Entity) ? ((Net.Vpc.Upa.Entity)compiledVar.GetReferrer()) : null; } else { //check if alias System.Collections.Generic.IList <Net.Vpc.Upa.Impl.Uql.ExpressionDeclaration> dvalues = ee.GetDeclarations(null); if (dvalues != null) { foreach (Net.Vpc.Upa.Impl.Uql.ExpressionDeclaration @ref in dvalues) { switch (@ref.GetReferrerType()) { case Net.Vpc.Upa.Impl.Uql.DecObjectType.ENTITY: { entity = qlContext.GetPersistenceUnit().GetEntity((string)@ref.GetReferrerName()); break; } } } } } if (entity == null) { throw new System.ArgumentException("Key enumeration must by associated to and entity"); } if ((ee.GetKeys().Count == 0)) { return(sqlManager.GetSQL(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEquals(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral(1), new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral(2)), qlContext, declarations)); } System.Collections.Generic.IList <Net.Vpc.Upa.Field> pfs = entity.GetPrimaryFields(); Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression o2 = null; foreach (object key in ee.GetKeys()) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression a = null; bool processed = false; if (entity.GetPersistenceUnit().ContainsEntity(entity.GetIdType())) { if (!entity.GetIdType().IsInstanceOfType(key)) { //primitive seen as entity? // A's id is A.b where b is an entity //TODO fix all cases! if ((entity.GetPrimaryFields()).Count == 1) { Net.Vpc.Upa.Types.ManyToOneType et = (Net.Vpc.Upa.Types.ManyToOneType)entity.GetPrimaryFields()[0].GetDataType(); System.Collections.Generic.IList <Net.Vpc.Upa.Field> ff = et.GetRelationship().GetSourceRole().GetFields(); Net.Vpc.Upa.Key key2 = et.GetRelationship().GetTargetEntity().GetBuilder().IdToKey(key); for (int j = 0; j < (ff).Count; j++) { Net.Vpc.Upa.Field f = ff[j]; Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar rr = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(f); Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar p2 = compiledVar == null ? null : (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)compiledVar.Copy(); if (p2 == null) { p2 = rr; } else { p2.SetChild(rr); } Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEquals v = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEquals(p2, new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral(key2.GetObjectAt(j), Net.Vpc.Upa.Impl.Util.UPAUtils.GetTypeTransformOrIdentity(f))); if (a == null) { a = v; } else { a = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledAnd(a, v); } } if (o2 == null) { o2 = a; } else { o2 = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledOr(o2, a); } processed = true; } } } if (!processed) { Net.Vpc.Upa.Key uKey = entity.GetBuilder().IdToKey(key); for (int j = 0; j < (pfs).Count; j++) { Net.Vpc.Upa.Field f = pfs[j]; Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar rr = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(f); Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar p2 = compiledVar == null ? null : (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)compiledVar.Copy(); if (p2 == null) { p2 = rr; } else { p2.SetChild(rr); } Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEquals v = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEquals(p2, new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral(uKey.GetObjectAt(j), Net.Vpc.Upa.Impl.Util.UPAUtils.GetTypeTransformOrIdentity(f))); if (a == null) { a = v; } else { a = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledAnd(a, v); } } if (o2 == null) { o2 = a; } else { o2 = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledOr(o2, a); } } } return(sqlManager.GetSQL(o2, qlContext, declarations)); }
public CompiledVarVal(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar var, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression val) { this.var = var; this.val = val; PrepareChildren(var, val); }
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 + "%")))); } }
public static Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField FindRootCompiledQueryField(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar v) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression e = v; while (e != null) { if (e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField) { return((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField)e); } e = e.GetParentExpression(); } return(null); }
public static Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar FindRootVar(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar v) { while (v != null) { if (v.GetParentExpression() is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar) { v = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar)v.GetParentExpression(); } else { break; } } return(v); }
public virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression TranslateExpression(object x, Net.Vpc.Upa.Impl.Uql.ExpressionTranslationManager manager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { Net.Vpc.Upa.Expressions.IdExpression o = (Net.Vpc.Upa.Expressions.IdExpression)x; Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression ret = null; Net.Vpc.Upa.Entity entity = null; if (o.GetEntity() != null) { entity = o.GetEntity(); } Net.Vpc.Upa.PersistenceUnit persistenceUnit = manager.GetPersistenceUnit(); if (entity == null && o.GetEntityName() != null) { entity = persistenceUnit.GetEntity(o.GetEntityName()); } if (entity == null && o.GetAlias() != null) { //check if alias System.Collections.Generic.IList <Net.Vpc.Upa.Impl.Uql.ExpressionDeclaration> dvalues = declarations.GetDeclarations(null); if (dvalues != null) { foreach (Net.Vpc.Upa.Impl.Uql.ExpressionDeclaration @ref in dvalues) { switch (@ref.GetReferrerType()) { case Net.Vpc.Upa.Impl.Uql.DecObjectType.ENTITY: { entity = persistenceUnit.GetEntity((string)@ref.GetReferrerName()); break; } } } } } if (entity == null && o.GetAlias() != null) { //check if entity if (persistenceUnit.ContainsEntity(o.GetAlias())) { entity = persistenceUnit.GetEntity(o.GetAlias()); } } if (entity == null) { throw new System.ArgumentException("Key enumeration must by associated to and entity"); } Net.Vpc.Upa.Key key = entity.GetBuilder().IdToKey(o.GetId()); object[] values = key == null ? null : key.GetValue(); Net.Vpc.Upa.Entity entity1 = o.GetEntity(); System.Collections.Generic.IList <Net.Vpc.Upa.PrimitiveField> f = entity1.ToPrimitiveFields <Net.Vpc.Upa.Field>(entity1.GetPrimaryFields()); for (int i = 0; i < (f).Count; i++) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar ppp = o.GetAlias() == null ? null : new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(o.GetAlias()); if (ppp == null) { ppp = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(f[i].GetName()); } else { ppp.SetChild(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(f[i].GetName())); } Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEquals e = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEquals(ppp, new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral(values == null ? null : values[i], Net.Vpc.Upa.Impl.Util.UPAUtils.GetTypeTransformOrIdentity(f[i]))); ret = (ret == null) ? ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression)(e)) : new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledAnd(ret, e); } if (ret == null) { ret = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEquals(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral(1), new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral(1)); } return(ret); }
public CompiledKeyEnumerationExpression(System.Collections.Generic.IList <object> keys, Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar alias) { this.keys = keys; this.alias = alias; PrepareChildren(alias); }