public virtual void Visit(SoqlSoodaClassExpression v) { if (v.Path != null) { v.Path.Accept(this); Output.Write('.'); } Output.Write("SoodaClass"); }
void Sooda.QL.ISoqlVisitor.Visit(SoqlSoodaClassExpression v) { if (v.Path != null) { v.Path.Accept(this); } else { if (!_result.Contains(_rootClass)) { _result.Add(_rootClass); } } }
public virtual void Visit(SoqlSoodaClassExpression v) { if (v.Path != null) { v.Path.Accept(this); Output.Write('.'); } Output.Write("SoodaClass"); }
void Sooda.QL.ISoqlVisitor.Visit(SoqlSoodaClassExpression v) { if (v.Path != null) { v.Path.Accept(this); } else { if (!_result.Contains(_rootClass)) _result.Add(_rootClass); } }
public override void Visit(SoqlSoodaClassExpression v) { ClassInfo currentClass; string p = ""; string firstTableAlias = null; if (v.Path != null) { IFieldContainer container = GenerateTableJoins(v.Path, out p, out firstTableAlias); currentClass = container as ClassInfo; } else { if (Query.From.Count != 1) throw new Exception("Ambiguous SoodaClass!"); p = ExpressionPrefixToTableAlias[Query.From[0]]; currentClass = (ClassInfo) Schema.FindContainerByName(Query.From[0]); } List<ClassInfo> subclasses = currentClass.GetSubclassesForSchema(Schema); if (subclasses.Count == 0) { Output.Write('\''); Output.Write(currentClass.Name); Output.Write('\''); } else { Output.Write("(case "); Output.Write(p); Output.Write('.'); Output.Write(currentClass.SubclassSelectorField.DBColumnName); OutputSoodaClassCase(currentClass); foreach (ClassInfo subci in subclasses) OutputSoodaClassCase(subci); Output.Write(" else null end)"); } }