internal override bool OneLine() { if (FromClause == null && WhereClause == null && OrderByClause == null && GroupByClause == null) { return(SelectElements.All(sel => sel.OneLine())); } return(false); }
public override SqlNode Clone() { return(new SelectStatement() { Distinct = Distinct, FromClause = FromClause?.Clone() as FromClause, GroupByClause = GroupByClause?.Clone() as GroupByClause, HavingClause = HavingClause?.Clone() as HavingClause, OffsetLimitClause = OffsetLimitClause?.Clone() as OffsetLimitClause, OrderByClause = OrderByClause?.Clone() as OrderByClause, SelectElements = SelectElements?.Select(x => x.Clone() as SelectExpression).ToList(), WhereClause = WhereClause?.Clone() as WhereClause }); }
public override void EnterSelectElements([NotNull] MySqlParser.SelectElementsContext context) { if (_tmpDepth == _depth) { SelectElements selectElements = new SelectElements(context.SourceInterval, context, Environment.NewLine + "SELECT-----" + context.GetText() + "----SELECT" + Environment.NewLine); if (AllRules[AllRules.Count - 1].RuleType == "selectelements") { AllRules.Remove(AllRules[AllRules.Count - 1]); } AllRules.Add(selectElements); _isOtherListener = true; } }
public override bool Equals(object obj) { if (obj is SelectStatement other) { return(Equals(Distinct, other.Distinct) && Equals(FromClause, other.FromClause) && Equals(WhereClause, other.WhereClause) && Equals(GroupByClause, other.GroupByClause) && Equals(HavingClause, other.HavingClause) && Equals(OrderByClause, other.OrderByClause) && Equals(OffsetLimitClause, other.OffsetLimitClause) && SelectElements.AreEqual(other.SelectElements)); } return(false); }
/// <summary> /// Returns a string representation of the parsed selector. This may not exactly match the input /// selector as it is regenerated. /// </summary> /// /// <returns> /// A CSS selector string. /// </returns> public override string ToString() { string output = ""; switch (TraversalType) { case TraversalType.Child: output += " > "; break; case TraversalType.Descendent: output += " "; break; case TraversalType.Adjacent: output += " + "; break; case TraversalType.Sibling: output += " ~ "; break; } if (SelectorType.HasFlag(SelectorType.Elements)) { output += "<ElementList[" + SelectElements.Count() + "]> "; } if (SelectorType.HasFlag(SelectorType.HTML)) { output += "<HTML[" + Html.Length + "]> "; } if (SelectorType.HasFlag(SelectorType.Tag)) { output += Tag; } if (SelectorType.HasFlag(SelectorType.ID)) { output += "#" + ID; } if (SelectorType.HasFlag(SelectorType.AttributeValue) //|| SelectorType.HasFlag(SelectorType.AttributeExists) ) { output += "[" + AttributeName; if (!String.IsNullOrEmpty(AttributeValue)) { output += "." + AttributeSelectorType.ToString() + ".'" + AttributeValue + "'"; } output += "]"; } if (SelectorType.HasFlag(SelectorType.Class)) { output += "." + Class; } if (SelectorType.HasFlag(SelectorType.All)) { output += "*"; } if (SelectorType.HasFlag(SelectorType.PseudoClass)) { output += ":" + PseudoSelector.Name; if (PseudoSelector.Arguments != null && PseudoSelector.Arguments.Length > 0) { output += "(" + String.Join(",", PseudoSelector.Arguments) + ")"; } } return(output); }
public override string ToString() { string output = ""; switch (TraversalType) { case TraversalType.All: output = ""; break; case TraversalType.Child: output += " > "; break; case TraversalType.Descendent: output += " "; break; } if (SelectorType.HasFlag(SelectorType.Elements)) { output += "<ElementList[" + SelectElements.Count() + "]> "; } if (SelectorType.HasFlag(SelectorType.HTML)) { output += "<HTML[" + Html.Length + "]> "; } if (SelectorType.HasFlag(SelectorType.Tag)) { output += Tag; } if (SelectorType.HasFlag(SelectorType.ID)) { output += "#" + ID; } if (SelectorType.HasFlag(SelectorType.Attribute)) { output += "[" + AttributeName; if (!String.IsNullOrEmpty(AttributeValue)) { output += "." + AttributeSelectorType.ToString() + ".'" + AttributeValue + "'"; } output += "]"; } if (SelectorType.HasFlag(SelectorType.Class)) { output += "." + Class; } if (SelectorType.HasFlag(SelectorType.All)) { output += "*"; } if (SelectorType.HasFlag(SelectorType.Position)) { output += ":" + PositionType.ToString(); if (IsFunction) { output += "(" + PositionIndex + ")"; } else if (SubSelectors.Count > 0) { output += SubSelectors.ToString(); } } if (SelectorType.HasFlag(SelectorType.Contains)) { output += ":contains(" + Criteria + ")"; } return(output); }