Inheritance: IObjectInfo
 public void SetUp()
 {
     var variableInfo = new VariableInfo("t", PrimitiveTypes.String(), false);
     var vrMock = new Mock<IVariableResolver>();
     vrMock.Setup(x => x.Resolve(It.Is<ObjectName>(name => name.FullName.Equals("t"))))
         .Returns<ObjectName>(name => new Variable(variableInfo));
     variableResolver = vrMock.Object;
 }
        public void SetUp()
        {
            variableManager = new VariableManager(null);

            if (TestContext.CurrentContext.Test.Name != "DefineVariable") {
                var varInfo = new VariableInfo("a", PrimitiveTypes.String(), false);
                variableManager.DefineVariable(varInfo);
            }
        }
Beispiel #3
0
        public Variable DefineVariable(VariableInfo variableInfo)
        {
            if (variableInfo == null)
                throw new ArgumentNullException("variableInfo");

            if (variables.ContainsKey(variableInfo.VariableName))
                throw new ArgumentException();

            var variable = new Variable(variableInfo);
            variables[variableInfo.VariableName] = variable;
            return variable;
        }
Beispiel #4
0
        public void DefineVariable(VariableInfo variableInfo)
        {
            if (variableInfo == null)
                throw new ArgumentNullException("variableInfo");

            if (variables.ContainsKey(variableInfo.VariableName))
                throw new ArgumentException();

            var variable = new Variable(variableInfo);
            variables[variableInfo.VariableName] = variable;
            Scope.OnVariableDefined(variable);
        }
Beispiel #5
0
        public static Variable DeclareVariable(this IContext context, VariableInfo variableInfo)
        {
            if (context.VariableExists(variableInfo.VariableName))
                throw new InvalidOperationException(String.Format("Variable '{0}' already defined in the context hierarchy.", variableInfo.VariableName));

            var currentContext = context;
            while (currentContext != null) {
                if (currentContext is IVariableScope) {
                    var scope = (IVariableScope)currentContext;
                    return scope.DefineVariable(variableInfo);
                }

                currentContext = currentContext.Parent;
            }

            // not found in the hierarchy
            return null;
        }
 public static Variable DefineVariable(this IVariableScope scope, VariableInfo variableInfo)
 {
     return scope.VariableManager.DefineVariable(variableInfo);
 }
 public Variable DefineVariable(VariableInfo variableInfo)
 {
     throw new NotImplementedException();
 }
 public static Variable DeclareVariable(this IQuery query, VariableInfo variableInfo)
 {
     return query.Context.DeclareVariable(variableInfo);
 }
 public void DefineVariable()
 {
     var varInfo = new VariableInfo("a", PrimitiveTypes.String(), false);
     variableManager.DefineVariable(varInfo);
 }
Beispiel #10
0
 public void CreateVariable(VariableInfo variableInfo)
 {
     variables.SetObject(new ObjectName(variableInfo.Name), new Variable(variableInfo));
 }
        protected override void ExecuteStatement(ExecutionContext context)
        {
            if (context.DirectAccess.VariableExists(VariableName)) {
                throw new InvalidOperationException(String.Format("A variable named '{0}' was already defined in the context.",
                    VariableName));
            }

            // TODO: Should this check also for objects of other type than variable to exist with the same name?

            var varInfo = new VariableInfo(VariableName, VariableType, IsConstant);
            varInfo.IsNotNull = IsNotNull;
            if (DefaultExpression != null)
                varInfo.DefaultExpression = DefaultExpression;

            context.DirectAccess.CreateObject(varInfo);
        }