public static bool ParseContextElement(Element element, ExpressionTerm expressionPart) { if (expressionPart.IsValidFunctionByName(".TargetElementName") == true) { element.TargetElementName = expressionPart.Value; return(true); } else if (expressionPart.IsValidFunctionByName("TargetElementText") == true) { element.TargetElementText = expressionPart.Value; element.TextFunction = expressionPart.FunctionArgument; element.Equal = expressionPart.ExpressionBooleanCondition; return(true); } else if (expressionPart.IsValidFunctionByRegex("Attribute(.*)\\.Text") == true) { element.Attributes.Add(new Model.Attribute(expressionPart.FunctionArgument) { Text = expressionPart.Value, ExactMatch = true }); return(true); } else if (expressionPart.IsValidFunctionByRegex("Attribute(.*)\\.Contains") == true) { element.Attributes.Add(new Model.Attribute(expressionPart.FunctionArgument) { Text = expressionPart.Value, Equal = expressionPart.ExpressionBooleanCondition }); return(true); } return(false); }
public static bool ParsePosition(Element element, ExpressionTerm expressionPart) { if (expressionPart.IsValidFunctionByName(".Position") == true) { element.Position = Int32.Parse(expressionPart.Value); return(true); } return(false); }
public static bool ParseParent(Element element, ExpressionTerm expressionPart) { if (expressionPart.IsValidFunctionByName("Parent.Name") == true) { EnsureParent(element); element.Parent.Name = expressionPart.Value; return(true); } else if (expressionPart.IsValidFunctionByName("Parent.Text") == true) { EnsureParent(element); element.Parent.Text = expressionPart.Value; element.Parent.TextFunction = expressionPart.FunctionArgument; element.Parent.TextContainsEqual = expressionPart.ExpressionBooleanCondition; return(true); } else if (expressionPart.IsValidFunctionByRegex("Parent.Attribute(.*)\\.Contains") == true) { EnsureParent(element); element.Parent.Attributes.Add(new Model.Attribute(expressionPart.FunctionArgument) { Text = expressionPart.Value, Equal = expressionPart.ExpressionBooleanCondition }); return(true); } else if (expressionPart.IsValidFunctionByRegex("Parent.Attribute(.*)\\.Text") == true) { EnsureParent(element); element.Parent.Attributes.Add(new Model.Attribute(expressionPart.FunctionArgument) { Text = expressionPart.Value, ExactMatch = true }); return(true); } else if (expressionPart.IsValidFunctionByName("Parent.Position") == true) { element.Parent.Position = Int32.Parse(expressionPart.Value); return(true); } return(false); }
public static bool ParseSiblings(Element element, ExpressionTerm expressionPart) { if (expressionPart.IsValidFunctionByName(".FollowingSibling.Name") == true) { element.Siblings.Add(new Sibling() { Name = expressionPart.Value }); return(true); } else if (expressionPart.IsValidFunctionByName(".PrecedingSibling.Name") == true) { element.Siblings.Add(new Sibling() { Name = expressionPart.Value, Preceding = true }); return(true); } return(false); }
public static bool ParseRelatives(Element element, ExpressionTerm expressionPart) { if (expressionPart.IsValidFunctionByName(".Descendant") == true) { element.Relatives.Add(new Relative() { Descendant = true, Name = expressionPart.Value }); return(true); } if (expressionPart.IsValidFunctionByName(".Ancestor") == true) { element.Relatives.Add(new Relative() { Descendant = false, Name = expressionPart.Value }); return(true); } return(false); }