Ejemplo n.º 1
0
        private void WritePropertyInvocation(IArmString keyword, ArmElement value)
        {
            if (value is ArmArray arrayBody)
            {
                bool needSeparator = false;
                foreach (ArmElement element in arrayBody)
                {
                    if (needSeparator)
                    {
                        WriteLine();
                    }

                    // TODO: Work out how nested arrays work...

                    WritePropertyInvocation(keyword, element);
                    needSeparator = true;
                }

                return;
            }

            WriteKeyword(keyword);
            Write(" ");
            value.RunVisit(this);
        }
Ejemplo n.º 2
0
 public static ArmResourceName CreateFromArmStrings(IArmString resourceNamespace, IArmString type, IArmString apiVersion)
 {
     return(new ArmResourceName(
                (resourceNamespace as ArmStringLiteral)?.Value,
                (type as ArmStringLiteral)?.Value,
                (apiVersion as ArmStringLiteral)?.Value));
 }
Ejemplo n.º 3
0
 protected void WriteArmValueEntry(
     IArmString key,
     ArmElement value,
     bool isArrayElement = false)
 {
     WriteObject(new ArmEntry(key, value, isArrayElement));
 }
Ejemplo n.º 4
0
 protected void WriteArmArrayEntry <TArmElement>(
     IArmString key,
     ScriptBlock body,
     bool isArrayElement = false)
     where TArmElement : ArmElement
 {
     WriteObject(new ArmEntry(key, AggregateArmArray <TArmElement>(body), isArrayElement));
 }
Ejemplo n.º 5
0
        private IArmString ParseFullExpression(ref ArmExpressionTokenizer tokenizer)
        {
            Expect(ref tokenizer, ArmExpressionTokenType.OpenBracket);
            IArmString wholeExpression = ParseInnerExpression(ref tokenizer, noLiteral: true);

            Expect(ref tokenizer, ArmExpressionTokenType.CloseBracket);
            Expect(ref tokenizer, ArmExpressionTokenType.EOF);
            return(wholeExpression);
        }
Ejemplo n.º 6
0
 protected void WriteArmObjectEntry <TArmObject>(
     ArmBuilder <TArmObject> objectBuilder,
     IArmString key,
     ScriptBlock body,
     bool isArrayElement = false)
     where TArmObject : ArmObject
 {
     WriteObject(
         new ArmEntry(
             key,
             AggregateArmObject(objectBuilder, body),
             isArrayElement));
 }
Ejemplo n.º 7
0
 public ArmBuilder <TObject> AddSingleElement(IArmString key, ArmElement value)
 {
     if (!_armObject.TryGetValue(key, out ArmElement existingValue))
     {
         _armObject[key] = value;
     }
     else if (existingValue is ArmObject existingObject &&
              value is ArmObject newObject)
     {
         foreach (KeyValuePair <IArmString, ArmElement> newEntry in newObject)
         {
             existingObject.Add(newEntry);
         }
     }
Ejemplo n.º 8
0
 public ArmTemplateResource(IArmString name)
 {
     Name       = name;
     Type       = s_type;
     ApiVersion = s_apiVersion;
     this[ArmTemplateKeys.Properties] = new ArmObject
     {
         [ArmTemplateKeys.Mode] = s_incrementalMode,
         [ArmTemplateKeys.ExpressionEvaluationOptions] = new ArmObject
         {
             [ArmTemplateKeys.Scope] = s_inner,
         },
     };
 }
Ejemplo n.º 9
0
        public static bool TryConvertToArmString(object value, out IArmString armString)
        {
            switch (value)
            {
            case string str:
                armString = new ArmStringLiteral(str);
                return(true);

            case IArmString armStr:
                armString = armStr;
                return(true);
            }

            armString = null;
            return(false);
        }
Ejemplo n.º 10
0
        private void WriteArray(IArmString key, ArmArray values)
        {
            bool needsSeparator = false;

            foreach (ArmElement element in values)
            {
                if (needsSeparator)
                {
                    WriteLine();
                }

                WriteKeyword(key);
                Write(" ");
                element.RunVisit(this);

                needsSeparator = true;
            }
        }
Ejemplo n.º 11
0
 private void WriteKeyword(IArmString keyword)
 {
     Write(keyword.CoerceToString());
 }
Ejemplo n.º 12
0
 public ArmVariable(IArmString name, ArmElement value)
 {
     Name  = name;
     Value = value;
 }
Ejemplo n.º 13
0
 public ArmOutput(IArmString name)
 {
     Name = name;
 }
Ejemplo n.º 14
0
 TValue IDictionary <IArmString, TValue> .this[IArmString key]
 {
     get => (TValue)This[key];
Ejemplo n.º 15
0
 public ArmEntry(IArmString key, ArmElement value, bool isArrayElement)
 {
     Key            = key;
     Value          = value;
     IsArrayElement = isArrayElement;
 }
Ejemplo n.º 16
0
 internal ArmVariableReferenceExpression(IArmString variableName)
     : base(s_variableReferenceFunction, variableName)
 {
 }
Ejemplo n.º 17
0
 public ArmParameter(IArmString name, IArmString type)
 {
     Name = name;
     Type = type;
 }
Ejemplo n.º 18
0
 public static ArmStringLiteral CoerceToLiteral(this IArmString armString)
 {
     return((ArmStringLiteral)armString);
 }
Ejemplo n.º 19
0
 public static string CoerceToString(this IArmString armString)
 {
     return(armString.CoerceToLiteral().Value);
 }
Ejemplo n.º 20
0
 internal ArmParameterReferenceExpression(IArmString parameterName)
     : base(s_parameterReferenceFunction, parameterName)
 {
 }
Ejemplo n.º 21
0
 public ArmFunctionCallExpression(IArmString function, IReadOnlyList <ArmExpression> arguments)
     : this()
 {
     Function = function;
     Arguments.AddRange(arguments);
 }
Ejemplo n.º 22
0
 public ArmEntry(IArmString key, ArmElement value) : this(key, value, isArrayElement : false)
 {
 }
Ejemplo n.º 23
0
 protected ArmReferenceExpression(ArmStringLiteral referenceFunction, IArmString referencedName)
     : base(referenceFunction, new[] { (ArmExpression)referencedName })
 {
     ReferenceName = referencedName;
 }
Ejemplo n.º 24
0
 private void WriteExpression(IArmString value) => WriteExpression((ArmElement)value);
Ejemplo n.º 25
0
 public ArmMemberAccessExpression(ArmOperation expression, IArmString member)
 {
     InnerExpression = expression;
     Member          = member;
 }
Ejemplo n.º 26
0
 private JToken VisitArmString(IArmString str)
 {
     return(new JValue(str.ToExpressionString()));
 }