private void CreateExpression()
 {
     var expr = new Expression(exprOperator, varSpecs);
     components.Add(expr);
     varSpecs = null;
 }
        private UriTemplateBuilder Expression(Operator op, params VarSpec[] vars)
        {
            if (vars == null)
            {
                throw new ArgumentNullException("vars");
            }

            var varsList = new List<VarSpec>(vars.Length);

            foreach (var varSpec in vars)
            {
                if (varSpec == null)
                {
                    throw new ArgumentException("Variable cannot be null.", "vars");
                }

                varsList.Add(varSpec);
            }

            var expression = new Expression(op, varsList);
            components.Add(expression);
            return this;
        }