public override Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression Copy() { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V o = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(GetExpression().Copy()); o.SetDescription(GetDescription()); o.GetClientParameters().SetAll(GetClientParameters()); return(o); }
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.CompiledPlus o = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledPlus)oo; System.Type t1 = o.GetLeft().GetTypeTransform().GetTargetType().GetPlatformType(); System.Type t2 = o.GetRight().GetTypeTransform().GetTargetType().GetPlatformType(); bool s0 = o.GetTypeTransform().GetTargetType().GetPlatformType().Equals(typeof(string)); bool s1 = t1.Equals(typeof(string)); bool s2 = t2.Equals(typeof(string)); if (s0 || s1 || s2) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression c1 = o.GetLeft().Copy(); Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression c2 = o.GetRight().Copy(); c1.SetParentExpression(null); c2.SetParentExpression(null); if (!s1) { if (Net.Vpc.Upa.Impl.Util.PlatformUtils.IsAnyInteger(t1)) { c1 = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(c1.Copy()); } else if (Net.Vpc.Upa.Impl.Util.PlatformUtils.IsAnyFloat(t1)) { c1 = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(c1.Copy()); } else { throw new System.ArgumentException("Unsupported"); } } if (!s2) { if (Net.Vpc.Upa.Impl.Util.PlatformUtils.IsAnyInteger(t2)) { c2 = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(c2.Copy()); } else if (Net.Vpc.Upa.Impl.Util.PlatformUtils.IsAnyFloat(t2)) { c2 = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(c2.Copy()); } else { throw new System.ArgumentException("Unsupported"); } } Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledConcat cc = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledConcat(c1, c2); return(sqlManager.GetSQL(cc, qlContext, declarations)); } string leftValue = o.GetLeft() != null?sqlManager.GetSQL(o.GetLeft(), qlContext, declarations) : "NULL"; string rightValue = o.GetRight() != null?sqlManager.GetSQL(o.GetRight(), qlContext, declarations) : "NULL"; string s = null; s = leftValue + " + " + rightValue; return("(" + s + ")"); }
protected internal virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V CompileI2V(Net.Vpc.Upa.Expressions.I2V v, Net.Vpc.Upa.Impl.Uql.ExpressionTranslationManager manager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations) { if (v == null) { return(null); } Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V s = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(manager.TranslateAny(v.GetExpression(), declarations)); // s.setDeclarationList(declarations); return(s); }
public Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledConcat Add(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression) { if (expression == this) { throw new System.Exception("WOOOOOOOODOOOOOOO"); } else { if (expression.GetTypeTransform() != null) { System.Type platformType = expression.GetTypeTransform().GetTargetType().GetPlatformType(); if (platformType.Equals(typeof(int?)) || platformType.Equals(typeof(int)) || platformType.Equals(typeof(System.Numerics.BigInteger?))) { expression = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledI2V(expression); } else if (platformType.Equals(typeof(double?)) || platformType.Equals(typeof(double)) || platformType.Equals(typeof(System.Decimal?))) { expression = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledD2V(expression); } } ProtectedAddArgument(expression); return(this); } }
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 + "%")))); } }