public static string[] ResolveEntityAndAlias(Net.Vpc.Upa.Expressions.QueryStatement select) { if (select is Net.Vpc.Upa.Expressions.Select) { return(ResolveEntityAndAlias((Net.Vpc.Upa.Expressions.Select)select)); } if (select is Net.Vpc.Upa.Expressions.Union) { Net.Vpc.Upa.Expressions.Union u = (Net.Vpc.Upa.Expressions.Union)select; string[] last = null; foreach (Net.Vpc.Upa.Expressions.QueryStatement queryStatement in u.GetQueryStatements()) { string[] s = ResolveEntityAndAlias(queryStatement); if (s == null) { return(null); } else if (last == null) { last = s; } else { if (!Net.Vpc.Upa.Impl.FwkConvertUtils.ArraysEquals <string>(last, s)) { return(null); } } } return(last); } return(null); }
public override void SetArgument(int index, Net.Vpc.Upa.Expressions.Expression e) { if (index == 0) { this.query = (Net.Vpc.Upa.Expressions.QueryStatement)e; } else { throw new System.IndexOutOfRangeException(); } }
public override void SetChild(Net.Vpc.Upa.Expressions.Expression e, Net.Vpc.Upa.Expressions.ExpressionTag tag) { if (ENTITY.Equals(tag)) { this.entity = (Net.Vpc.Upa.Expressions.EntityName)e; } else if (SELECTION.Equals(tag)) { this.selection = (Net.Vpc.Upa.Expressions.QueryStatement)e; } else { Net.Vpc.Upa.Expressions.IndexedTag ii = (Net.Vpc.Upa.Expressions.IndexedTag)tag; fields[ii.GetIndex()] = (Net.Vpc.Upa.Expressions.Var)e; } }
public override void CommitModelChanges() /* throws Net.Vpc.Upa.Exceptions.UPAException */ { Net.Vpc.Upa.Entity entity = GetEntity(); Net.Vpc.Upa.Extensions.ViewEntityExtensionDefinition entitySpec = (Net.Vpc.Upa.Extensions.ViewEntityExtensionDefinition)GetDefinition(); viewQuery = entitySpec.GetQuery(entity); Net.Vpc.Upa.FlagSet <Net.Vpc.Upa.EntityModifier> modifiers = entity.GetUserModifiers(); Net.Vpc.Upa.FlagSet <Net.Vpc.Upa.EntityModifier> excluded = entity.GetUserExcludeModifiers(); Net.Vpc.Upa.FlagSet <Net.Vpc.Upa.EntityModifier> effectiveModifiers = entity.GetModifiers(); if (!excluded.Contains(Net.Vpc.Upa.EntityModifier.TRANSIENT)) { effectiveModifiers = effectiveModifiers.Add(Net.Vpc.Upa.EntityModifier.TRANSIENT); } if (!modifiers.Contains(Net.Vpc.Upa.EntityModifier.USER_ID)) { effectiveModifiers = effectiveModifiers.Remove(Net.Vpc.Upa.EntityModifier.USER_ID); } // if(!modifiers.contains(EntityModifier.GENERATED_ID)){ // effectiveModifiers=effectiveModifiers.remove(EntityModifier.GENERATED_ID); // } ((Net.Vpc.Upa.Impl.DefaultEntity)entity).SetModifiers(effectiveModifiers); }
public virtual Net.Vpc.Upa.Expressions.InsertSelection AddQuery(Net.Vpc.Upa.Expressions.InsertSelection other) { if (other == null) { return(this); } if (other.entity != null) { entity = other.entity; } if (other.alias != null) { alias = other.alias; } for (int i = 0; i < (other.fields).Count; i++) { Field(other.GetField(i).GetName()); } if (other.selection != null) { selection = (Net.Vpc.Upa.Expressions.QueryStatement)other.selection.Copy(); } return(this); }
public virtual Net.Vpc.Upa.Persistence.ResultMetaData CreateResultMetaData(Net.Vpc.Upa.Expressions.Expression baseExpression, Net.Vpc.Upa.Filters.FieldFilter fieldFilter, System.Collections.Generic.IList <Net.Vpc.Upa.Expressions.QueryStatement> context) { baseExpression = Net.Vpc.Upa.Impl.Uql.Util.UQLUtils.ParseUserExpressions(baseExpression, pu); Net.Vpc.Upa.Impl.Persistence.DefaultResultMetaData m = new Net.Vpc.Upa.Impl.Persistence.DefaultResultMetaData(); if (baseExpression is Net.Vpc.Upa.Expressions.NonQueryStatement) { m.SetStatement((Net.Vpc.Upa.Expressions.EntityStatement)baseExpression); m.AddField(new Net.Vpc.Upa.Impl.Persistence.DefaultResultField(null, "result", Net.Vpc.Upa.Types.TypesFactory.INT, null, null)); return(m); } else { Net.Vpc.Upa.Expressions.QueryStatement q = (Net.Vpc.Upa.Expressions.QueryStatement)baseExpression; if (q is Net.Vpc.Upa.Expressions.Select) { Net.Vpc.Upa.Expressions.Select qs = (Net.Vpc.Upa.Expressions.Select)q; if ((qs.GetFields()).Count == 0) { if (!Net.Vpc.Upa.Impl.Util.StringUtils.IsNullOrEmpty(qs.GetEntityAlias())) { qs.Field(new Net.Vpc.Upa.Expressions.Var(qs.GetEntityAlias())); } else if (qs.GetEntityName() != null) { qs.Field(new Net.Vpc.Upa.Expressions.Var(qs.GetEntityName())); } else { throw new Net.Vpc.Upa.Exceptions.UPAException("MissingAlias"); } foreach (Net.Vpc.Upa.Expressions.JoinCriteria joinCriteria in qs.GetJoins()) { if (!Net.Vpc.Upa.Impl.Util.StringUtils.IsNullOrEmpty(joinCriteria.GetEntityAlias())) { qs.Field(new Net.Vpc.Upa.Expressions.Var(joinCriteria.GetEntityAlias())); } else if (joinCriteria.GetEntityName() != null) { qs.Field(new Net.Vpc.Upa.Expressions.Var(joinCriteria.GetEntityName())); } else { throw new Net.Vpc.Upa.Exceptions.UPAException("MissingAlias"); } } } System.Collections.Generic.IList <Net.Vpc.Upa.Expressions.QueryField> oldFields = new System.Collections.Generic.List <Net.Vpc.Upa.Expressions.QueryField>(q.GetFields()); System.Collections.Generic.IList <Net.Vpc.Upa.Expressions.QueryField> newFields = new System.Collections.Generic.List <Net.Vpc.Upa.Expressions.QueryField>(); System.Collections.Generic.IList <Net.Vpc.Upa.Persistence.ResultField> newResults = new System.Collections.Generic.List <Net.Vpc.Upa.Persistence.ResultField>(); System.Collections.Generic.IList <Net.Vpc.Upa.Expressions.QueryStatement> context2 = new System.Collections.Generic.List <Net.Vpc.Upa.Expressions.QueryStatement>(); Net.Vpc.Upa.Impl.FwkConvertUtils.ListAddRange(context2, context); context2.Add(q); foreach (Net.Vpc.Upa.Expressions.QueryField f in oldFields) { Net.Vpc.Upa.Expressions.Expression expression = f.GetExpression(); string oldAlias = f.GetAlias(); System.Collections.Generic.IList <Net.Vpc.Upa.Persistence.ResultField> newVal = CreateResultFields(expression, oldAlias, fieldFilter, context2); Net.Vpc.Upa.Impl.FwkConvertUtils.ListAddRange(newResults, newVal); if ((newVal).Count == 0) { } else if ((newVal).Count == 1) { f.SetExpression(newVal[0].GetExpression()); f.SetAlias(Net.Vpc.Upa.Impl.Util.StringUtils.IsNullOrEmpty(oldAlias) ? oldAlias : newVal[0].GetAlias()); newFields.Add(f); } else { foreach (Net.Vpc.Upa.Persistence.ResultField nf in newVal) { Net.Vpc.Upa.Expressions.QueryField f2 = new Net.Vpc.Upa.Expressions.QueryField(Net.Vpc.Upa.Impl.Util.StringUtils.IsNullOrEmpty(oldAlias) ? oldAlias : nf.GetAlias(), nf.GetExpression()); newFields.Add(f2); } } } qs.ClearFields(); foreach (Net.Vpc.Upa.Expressions.QueryField newField in newFields) { qs.Field(newField); } m.SetStatement(qs); foreach (Net.Vpc.Upa.Persistence.ResultField newResult in newResults) { m.AddField(newResult); } } else if (q is Net.Vpc.Upa.Expressions.Union) { System.Collections.Generic.IList <Net.Vpc.Upa.Expressions.QueryStatement> context2 = new System.Collections.Generic.List <Net.Vpc.Upa.Expressions.QueryStatement>(); Net.Vpc.Upa.Impl.FwkConvertUtils.ListAddRange(context2, context); context2.Add(q); Net.Vpc.Upa.Expressions.Union u0 = (Net.Vpc.Upa.Expressions.Union)q; Net.Vpc.Upa.Expressions.Union u = new Net.Vpc.Upa.Expressions.Union(); Net.Vpc.Upa.Persistence.ResultField[] fields = null; foreach (Net.Vpc.Upa.Expressions.QueryStatement qs in u0.GetQueryStatements()) { Net.Vpc.Upa.Persistence.ResultMetaData resultMetaData = CreateResultMetaData(qs, fieldFilter, context2); u.Add((Net.Vpc.Upa.Expressions.QueryStatement)resultMetaData.GetStatement()); System.Collections.Generic.IList <Net.Vpc.Upa.Persistence.ResultField> f = resultMetaData.GetFields(); if (fields == null) { fields = f.ToArray(); } else { if (fields.Length != (f).Count) { throw new Net.Vpc.Upa.Exceptions.UPAException("InvalidUnion"); } for (int i = 0; i < fields.Length; i++) { fields[i] = Merge(fields[i], f[i]); } } } m.SetStatement(u); if (fields != null) { foreach (Net.Vpc.Upa.Persistence.ResultField field in fields) { m.AddField(field); } } } else { throw new System.Exception(); } } return(m); }
private System.Collections.Generic.IDictionary <string, Net.Vpc.Upa.Expressions.NameOrQuery> FindDeclarations(Net.Vpc.Upa.Expressions.QueryStatement queryStatement) { System.Collections.Generic.IDictionary <string, Net.Vpc.Upa.Expressions.NameOrQuery> names = new System.Collections.Generic.Dictionary <string, Net.Vpc.Upa.Expressions.NameOrQuery>(); if (queryStatement is Net.Vpc.Upa.Expressions.Select) { Net.Vpc.Upa.Expressions.Select s = (Net.Vpc.Upa.Expressions.Select)queryStatement; if (!Net.Vpc.Upa.Impl.Util.StringUtils.IsNullOrEmpty(s.GetEntityAlias())) { names[s.GetEntityAlias()] = s.GetEntity(); } else { string t = s.GetEntityName(); if (!Net.Vpc.Upa.Impl.Util.StringUtils.IsNullOrEmpty(t)) { names[s.GetEntityAlias()] = s.GetEntity(); } } foreach (Net.Vpc.Upa.Expressions.JoinCriteria j in s.GetJoins()) { if (!Net.Vpc.Upa.Impl.Util.StringUtils.IsNullOrEmpty(j.GetEntityAlias())) { names[j.GetEntityAlias()] = j.GetEntity(); } else { string t = j.GetEntityName(); if (!Net.Vpc.Upa.Impl.Util.StringUtils.IsNullOrEmpty(t)) { names[j.GetEntityAlias()] = j.GetEntity(); } } } } else if (queryStatement is Net.Vpc.Upa.Expressions.Union) { } // do nothing return(names); }
public InsertSelection() { selection = null; fields = new System.Collections.Generic.List <Net.Vpc.Upa.Expressions.Var>(1); }
public virtual Net.Vpc.Upa.Expressions.InsertSelection From(Net.Vpc.Upa.Expressions.QueryStatement selection) { this.selection = selection; return(this); }
public void SetQuery(Net.Vpc.Upa.Expressions.QueryStatement query) { this.query = query; }
public Exists(Net.Vpc.Upa.Expressions.QueryStatement query) { SetQuery(query); }
public virtual Net.Vpc.Upa.Query CreateQuery(Net.Vpc.Upa.Entity e, Net.Vpc.Upa.Expressions.QueryStatement query, Net.Vpc.Upa.Persistence.EntityExecutionContext context) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { return(context.GetPersistenceStore().CreateQuery(e, query, context)); }
public virtual void Add(Net.Vpc.Upa.Expressions.QueryStatement s) { queryStatements.Add(s); }