Exemple #1
0
 public void Visit(IConstruct construct)
 {
     if (construct.GetType().Name.CompareTo("CfnFunction") == 0)
     {
         ((CfnResource)construct).AddPropertyOverride("Runtime", "nodejs12.x");
     }
 }
        public static JTokenType ConvertInterpreterArrayTypeIntoJTokenType(IConstruct l)
        {
            string expectedValueType = l.GetType().Name;

            if (expectedValueType == "Variable")
            {
                Variable v = l as Variable;
                return(ConvertInterpreterArrayTypeIntoJTokenType(v.Value));
            }
            else if (expectedValueType == "Array")
            {
                var a = (l as HiSystems.Interpreter.Array).ToList();
                if (a.Count > 0)
                {
                    return(ConvertInterpreterTypeIntoJTokenType(a[0]));
                }
                else
                {
                    throw new System.ArgumentException($"ConvertInterpreterArrayTypeIntoJTokenType() cannot infer the type of the array because the array is empty, l:{l.ToString()} ");
                }
            }
            else
            {
                throw new System.ArgumentException($"ConvertInterpreterArrayTypeIntoJTokenType() requires an array as first parameter, received:${l.ToString()}");
            }
        }
Exemple #3
0
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument1Transformed = base.GetTransformedConstruct <Literal>(argument1);
            var argument2Transformed = base.GetTransformedConstruct <Literal>(argument2);

            if (argument1Transformed is Number && argument2Transformed is Number)
            {
                return(((Number)argument1Transformed) == ((Number)argument2Transformed));
            }
            else if (argument1Transformed is Boolean && argument2Transformed is Boolean)
            {
                return(((Boolean)argument1Transformed) == ((Boolean)argument2Transformed));
            }
            else if (argument1Transformed is DateTime && argument2Transformed is DateTime)
            {
                return(((DateTime)argument1Transformed) == ((DateTime)argument2Transformed));
            }
            else if (argument1Transformed is Text && argument2Transformed is Text)
            {
                return(((Text)argument1Transformed) == ((Text)argument2Transformed));
            }
            else if (argument1Transformed is Text && argument2Transformed is Number)
            {
                return(((Text)argument1Transformed) == ((Number)argument2Transformed).ToString());
            }
            else if (argument1Transformed is Number && argument2Transformed is Text)
            {
                return(((Number)argument1Transformed).ToString() == ((Text)argument2Transformed));
            }
            else
            {
                return(new Error(String.Format("Equality operator requires arguments of type Number, DateTime or Boolean. Argument types are {0} {1}.", argument1Transformed.GetType().Name, argument2Transformed.GetType().Name)));
            }
        }
Exemple #4
0
        public override Literal Execute(IConstruct[] arguments)
        {
            base.EnsureArgumentCountIsBetween(arguments, 1, 2);

            var value = base.GetTransformedArgument<Literal>(arguments, argumentIndex: 0);

            string format;

            if (arguments.Length > 1)
                format = base.GetTransformedArgument<Text>(arguments, argumentIndex: 1);
            else
                format = null;

            if (value is Number)
            {
                if (format == null)
                    return (Text)((Number)value).ToString();
                else
                    return (Text)((Number)value).ToString(format);
            }
            else if (value is HiSystems.Interpreter.DateTime)
            {
                if (format == null)
                    return (Text)((HiSystems.Interpreter.DateTime)value).ToString();
                else
                    return (Text)((HiSystems.Interpreter.DateTime)value).ToString(format);
            }
            else
                throw new NotImplementedException(value.GetType().Name);
        }
Exemple #5
0
        /// <summary>
        /// </summary>
        public Variable(string name, IConstruct value)
        {
            if (String.IsNullOrEmpty(name))
                throw new ArgumentNullException("Name");

            this.name = name;
            this.construct = value;
        }
        public FunctionOperation(Function function, IConstruct[] arguments)
        {
            if (function == null)
                throw new ArgumentNullException();

            this.function = function;
            this.arguments = arguments;
        }
            public override Literal Execute(IConstruct[] arguments)
            {
                base.EnsureArgumentCountIs(arguments, 1);

                decimal inputValue = base.GetTransformedArgument<Number>(arguments, argumentIndex: 0);

                return new Number(-inputValue);
            }
Exemple #8
0
 //static protected internal bool IsNull(IConstructable am)
 //{
 //    if (am == null) return true;
 //    return false;
 //}
 public override bool IsNull(IConstruct am)
 {
     if (am == null)
     {
         return(true);
     }
     return(false);
 }
 private static void ApplyDefaultTags(IConstruct construct, string environment, string project)
 {
     Tags.Of(construct).Add("Stack-Author", "Eric Wilson");
     Tags.Of(construct).Add("Stack-Version", "0.0.1-beta");
     Tags.Of(construct).Add("Stack-Tool", "GeekCafe-AWS-CDK");
     Tags.Of(construct).Add("Stack-Environment", environment);
     Tags.Of(construct).Add("Stack-Project", project);
 }
 public static void Tag(IConstruct construct, IConfigSettings config, List <Configuration.Tag> tags)
 {
     foreach (var tag in tags)
     {
         var value = (config != null) ? config.Parse(tag.Value) : tag.Value;
         Amazon.CDK.Tags.Of(construct).Add($"{tag.Name}", $"{value}");
     }
 }
            public ConstructToken(IConstruct value)
            {
                if (value == null)
                {
                    throw new ArgumentNullException();
                }

                this.value = value;
            }
Exemple #12
0
        /// <summary>
        /// Throws an exception if the argument passed is not the expected type.
        /// </summary>
        private T CastConstructToType <T>(IConstruct construct)
        {
            if (!(construct is T))
            {
                throw new InvalidOperationException(String.Format("{0} construct is not of type {1} and cannot be used with the {2} operator", construct.ToString(), typeof(T).Name, this.Token));
            }

            return((T)construct);
        }
Exemple #13
0
        private T CastConstructToType <T>(IConstruct construct)
        {
            if (!(construct is T))
            {
                return(default(T));
            }

            return((T)construct);
        }
 /// <summary>
 /// Parses the expression if it has not yet been parsed.
 /// </summary>
 private void EnsureExpressionParsed()
 {
     if (this.construct == null)
     {
         var variablesList = new List <Variable>();
         this.construct = this.parseToConstruct(base.Source, variablesList);
         this.variables = TranslateVariablesToDictionary(variablesList);
     }
 }
Exemple #15
0
        /// <summary>
        /// Throws an exception if the argument passed, via the argument index is not the expected type.
        /// ArgumentIndex is only used for the error message and should match the index of the argument that is passed.
        /// </summary>
        private T CastArgumentToType <T>(IConstruct argument, int argumentIndex)
        {
            if (!(argument is T))
            {
                throw new InvalidOperationException(String.Format("Argument {1}: {0} is not of type {2} and cannot be used with the {3} function", argument.ToString(), argumentIndex + 1, typeof(T).Name, this.Name));
            }

            return((T)argument);
        }
        internal ExpressionParsed(string expression, IConstruct value, List<Variable> variables)
            : base(expression)
        {
            if (value == null)
                throw new ArgumentNullException();

            this.construct = value;
            this.variables = TranslateVariablesToDictionary(variables);
        }
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument2Value = base.GetTransformedConstruct<Number>(argument2);

            if (argument2Value == 0)
                throw new DivideByZeroException(argument2.ToString());

            return base.GetTransformedConstruct<Number>(argument1) / argument2Value;
        }
Exemple #18
0
        /// <summary>
        /// </summary>
        public Variable(string name, IConstruct value)
        {
            if (String.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException("Name");
            }

            this.name      = name;
            this.construct = value;
        }
        internal ExpressionParsed(string expression, IConstruct value, List <Variable> variables)
            : base(expression)
        {
            if (value == null)
            {
                throw new ArgumentNullException();
            }

            this.construct = value;
            this.variables = TranslateVariablesToDictionary(variables);
        }
Exemple #20
0
        public override Literal Execute(IConstruct[] arguments)
        {
            base.EnsureArgumentCountIs(arguments, 3);

            var condition = base.GetTransformedArgument<Boolean>(arguments, argumentIndex: 0);

            if (condition)
                return base.GetTransformedArgument<Literal>(arguments, argumentIndex: 1);
            else
                return base.GetTransformedArgument<Literal>(arguments, argumentIndex: 2);
        }
Exemple #21
0
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument2Value = base.GetTransformedConstruct <Number>(argument2);

            if (argument2Value == 0)
            {
                throw new DivideByZeroException(argument2.ToString());
            }

            return(base.GetTransformedConstruct <Number>(argument1) / argument2Value);
        }
Exemple #22
0
        /// <summary>
        /// Indicates the left hand side value, and right hand side values
        /// and the operation to be applied to the left hand side and right
        /// hand side values.
        /// </summary>
        public Operation(IConstruct leftValue, Operator operation, IConstruct rightValue)
        {
            if (leftValue == null || rightValue == null || operation == null)
            {
                throw new ArgumentNullException();
            }

            this.leftValue  = leftValue;
            this.@operator  = operation;
            this.rightValue = rightValue;
        }
Exemple #23
0
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument2Value = base.GetTransformedConstruct <Number>(argument2);

            if (argument2Value == 0)
            {
                return(new Error("Divide by zero"));
            }

            return(base.GetTransformedConstruct <Number>(argument1) / argument2Value);
        }
        public void AddTag(IConstruct scope, string name, string value)
        {
            var tags = new List <Configuration.Tag>
            {
                new Configuration.Tag()
                {
                    Name = name, Value = value
                }
            };

            Utilities.Tagging.Tag(scope, _config, tags);
        }
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument1Transformed = base.GetTransformedConstruct<Literal>(argument1);
            var argument2Transformed = base.GetTransformedConstruct<Literal>(argument2);

            if (argument1Transformed is Number && argument2Transformed is Number)
                return ((Number)argument1Transformed) <= ((Number)argument2Transformed);
            else if (argument1Transformed is DateTime && argument2Transformed is DateTime)
                return ((DateTime)argument1Transformed) <= ((DateTime)argument2Transformed);
            else
                throw new InvalidOperationException(String.Format("Less than or equal to operator requires arguments of type Number or DateTime. Argument types are {0} {1}.", argument1Transformed.GetType().Name, argument2Transformed.GetType().Name));
        }
Exemple #26
0
        public VirtualWindowShare(String id, String windowName, String applicationName, IConstruct _iIConstruct)
        {
            _mIConstruct = _iIConstruct;

            IntPtr nId              = MarshalPtrToUtf8.GetInstance().MarshalManagedToNative(id ?? string.Empty);
            IntPtr nWindowName      = MarshalPtrToUtf8.GetInstance().MarshalManagedToNative(windowName ?? string.Empty);
            IntPtr nApplicationName = MarshalPtrToUtf8.GetInstance().MarshalManagedToNative(applicationName ?? string.Empty);

            objPtr = VidyoVirtualWindowShareConstructNative(nId, nWindowName, nApplicationName, _mStartCallback, _mReconfigureCallback, _mStopCallback);
            Marshal.FreeHGlobal(nApplicationName);
            Marshal.FreeHGlobal(nWindowName);
            Marshal.FreeHGlobal(nId);
            VidyoVirtualWindowShareSetUserDataNative(objPtr, GCHandle.ToIntPtr(GCHandle.Alloc(this, GCHandleType.Weak)));
        }
        public static JTokenType ConvertInterpreterTypeIntoJTokenType(IConstruct l)
        {
            string expectedValueType = l.GetType().Name;

            if (expectedValueType == "Variable")
            {
                Variable v = l as Variable;
                return(ConvertInterpreterTypeIntoJTokenType(v.Value));
            }
            if (expectedValueType == "Operation")
            {
                var r = l.Transform();
                return(ConvertInterpreterTypeIntoJTokenType(r));
            }
            if (expectedValueType == "FunctionOperation")
            {
                return(ConvertInterpreterTypeIntoJTokenType(l.Transform()));
            }
            if (expectedValueType == "Array")
            {
                return(JTokenType.Array);
            }
            if (expectedValueType == "Number")
            {
                return(JTokenType.Float);
            }
            if (expectedValueType == "Text")
            {
                return(JTokenType.String);
            }
            if (expectedValueType == "DateTime")
            {
                return(JTokenType.Date);
            }
            if (expectedValueType == "Boolean")
            {
                return(JTokenType.Boolean);
            }
            if (expectedValueType == "Null")
            {
                return(JTokenType.Null);
            }
            if (expectedValueType == "Array")
            {
                return(JTokenType.Array);
            }
            return(JTokenType.Undefined);
        }
Exemple #28
0
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument2Transformed = base.GetTransformedConstruct <Literal>(argument2);

            var existingVariable = Program.Variables.SingleOrDefault(x => x.Name == argument1.ToString().Split(':')[0]);

            if (existingVariable == null)
            {
                Program.Variables.Add(new Variable(argument1.ToString().Split(':')[0], argument2Transformed));
            }
            else
            {
                existingVariable.Construct = argument2Transformed;
            }

            return(base.Empty());
        }
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument1Transformed = base.GetTransformedConstruct <Literal>(argument1);
            var argument2Transformed = base.GetTransformedConstruct <Literal>(argument2);

            if (argument1Transformed is Number && argument2Transformed is Number)
            {
                return(((Number)argument1Transformed) >= ((Number)argument2Transformed));
            }
            else if (argument1Transformed is DateTime && argument2Transformed is DateTime)
            {
                return(((DateTime)argument1Transformed) >= ((DateTime)argument2Transformed));
            }
            else
            {
                return(new Error(String.Format("Greater than or equal to operator requires arguments of type Number or DateTime. Argument types are {0} {1}.", argument1Transformed.GetType().Name, argument2Transformed.GetType().Name)));
            }
        }
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument1Transformed = base.GetTransformedConstruct <Literal>(argument1);
            var argument2Transformed = base.GetTransformedConstruct <Literal>(argument2);

            if (argument1Transformed is Number && argument2Transformed is Number)
            {
                return(((Number)argument1Transformed) < ((Number)argument2Transformed));
            }
            else if (argument1Transformed is DateTime && argument2Transformed is DateTime)
            {
                return(((DateTime)argument1Transformed) < ((DateTime)argument2Transformed));
            }
            else
            {
                throw new InvalidOperationException(String.Format("Less than operator requires arguments of type Number or DateTime. Argument types are {0} {1}.", argument1Transformed.GetType().Name, argument2Transformed.GetType().Name));
            }
        }
        internal override Literal Execute(IConstruct argument1, IConstruct argument2)
        {
            var argument1Transformed = base.GetTransformedConstruct <Literal>(argument1);
            var argument2Transformed = base.GetTransformedConstruct <Literal>(argument2);

            /* fred null support */
            if (argument1Transformed is Null && argument2Transformed is Null)
            {
                return(new Boolean(true));
            }

            if (argument1Transformed is Null && (!(argument2Transformed is Null)))
            {
                return(new Boolean(false));
            }

            if ((!(argument1Transformed is Null)) && argument2Transformed is Null)
            {
                return(new Boolean(false));
            }

            if (argument1Transformed is Number && argument2Transformed is Number)
            {
                return(((Number)argument1Transformed) == ((Number)argument2Transformed));
            }
            else if (argument1Transformed is Boolean && argument2Transformed is Boolean)
            {
                return(((Boolean)argument1Transformed) == ((Boolean)argument2Transformed));
            }
            else if (argument1Transformed is DateTime && argument2Transformed is DateTime)
            {
                return(((DateTime)argument1Transformed) == ((DateTime)argument2Transformed));
            }
            else if (argument1Transformed is Text && argument2Transformed is Text)
            {
                return(((Text)argument1Transformed) == ((Text)argument2Transformed));
            }
            else
            {
                throw new InvalidOperationException(String.Format("Equality operator requires arguments of type Number, DateTime or Boolean. Argument types are {0} {1}.", argument1Transformed.GetType().Name, argument2Transformed.GetType().Name));
            }
        }
Exemple #32
0
        public override Literal Execute(IConstruct[] arguments)
        {
            base.EnsureArgumentCountIs(arguments, 0);

            return new DateTime(System.DateTime.Today);
        }
Exemple #33
0
 public void Add(IConstruct construct)
 {
     _constructs.Add(construct);
 }
            public override Literal Execute(IConstruct[] arguments)
            {
                base.EnsureArgumentCountIs(arguments, 2);

                var fieldIndex = (decimal)base.GetTransformedArgument<Number>(arguments, 0);
                var dataSet = base.GetTransformedArgument<DataSet>(arguments, 1);

                return new Array(dataSet.Select((int)fieldIndex));
            }
Exemple #35
0
            public ConstructToken(IConstruct value)
            {
                if (value == null)
                    throw new ArgumentNullException();

                this.value = value;
            }
Exemple #36
0
 internal override Literal Execute(IConstruct argument1, IConstruct argument2)
 {
     return(!(Boolean)equalToOperator.Execute(argument1, argument2));
 }
Exemple #37
0
        public override Literal Execute(IConstruct[] arguments)
        {
            base.EnsureArgumentCountIs(arguments, 1);

            return new Number(base.GetTransformedArgument<Text>(arguments, argumentIndex:0).Length);
        }
Exemple #38
0
        public override Literal Execute(IConstruct[] arguments)
        {
            base.EnsureArgumentCountIs(arguments, 1);

            return new Number(base.GetTransformedArgumentDecimalArray(arguments, argumentIndex:0).Average());
        }
 /// <summary>
 /// Add custom Tags to the CFN resource
 /// </summary>
 /// <param name="key"></param>
 /// <param name="value"></param>
 /// <param name="result"></param>
 public void AddCustomTag(string key, string value, IConstruct result)
 {
     Tags.Of(result).Add(key, value);
 }
 public void LogTag(string name, IConstruct result)
 {
     Tags.Of(result).Add("Name", name.ToLowerInvariant());
     Console.WriteLine($"Entity name: {name}");
 }
        public override Literal Execute(IConstruct[] arguments)
        {
            base.EnsureArgumentCountIsAtLeast(arguments, 1);

            return new Array(arguments.Select(argument => argument.Transform()).ToArray());
        }
 internal override Literal Execute(IConstruct argument1, IConstruct argument2)
 {
     return !(Boolean)equalToOperator.Execute(argument1, argument2);
 }
            public override Literal Execute(IConstruct[] arguments)
            {
                base.EnsureArgumentCountIs(arguments, 1);

                var tableName = base.GetTransformedArgument<Text>(arguments, 0);

                return new DataSet(tableName);
            }
Exemple #44
0
 /// <summary>
 /// Non-zero arguments are considered true.
 /// </summary>
 internal override Literal Execute(IConstruct argument1, IConstruct argument2)
 {
     return(base.GetTransformedConstruct <Boolean>(argument1) || base.GetTransformedConstruct <Boolean>(argument2));
 }
 public override bool IsNull(IConstruct am)
 {
     throw new NotImplementedException();
 }
 internal override Literal Execute(IConstruct argument1, IConstruct argument2)
 {
     return base.GetTransformedConstruct<Number>(argument1) * base.GetTransformedConstruct<Number>(argument2);
 }
 internal override Literal Execute(IConstruct argument1, IConstruct argument2)
 {
     return(base.GetTransformedConstruct <Number>(argument1) * base.GetTransformedConstruct <Number>(argument2));
 }
Exemple #48
0
 public ConstructVM(IConstruct construct)
 {
     this.construct = construct;
 }
 /// <summary>
 /// Parses the expression if it has not yet been parsed.
 /// </summary>
 private void EnsureExpressionParsed()
 {
     if (this.construct == null)
     {
         var variablesList = new List<Variable>();
         this.construct = this.parseToConstruct(base.Source, variablesList);
         this.variables = TranslateVariablesToDictionary(variablesList);
     }
 }
Exemple #50
0
 /// <summary>
 /// Non-zero arguments are considered true.
 /// </summary>
 internal override Literal Execute(IConstruct argument1, IConstruct argument2)
 {
     return base.GetTransformedConstruct<Boolean>(argument1) || base.GetTransformedConstruct<Boolean>(argument2);
 }
Exemple #51
0
 public void Add(IConstruct construct)
 {
     _constructs.Add(construct);
 }