void Init() { if (!Dict.ContainsKey(CHILDREN_KEY)) { Dict[CHILDREN_KEY] = new PBXProjArray(); } }
public void AddAttribute(string attribute) { var attribs = GetSettingsEntry <PBXProjArray>(ATTRIBUTES_KEY); if (attribs == null) { attribs = new PBXProjArray(); SetSettingsEntry(ATTRIBUTES_KEY, attribs); } if (!attribs.ToStringArray().Contains(attribute)) { attribs.Add(attribute); } }
PBXProjArray ParseArray() { // (expression,expression) // _current = ( PBXProjArray array = new PBXProjArray(); ReadNextToken(); // skip '(' while (!(_currentToken.Type == PBXProjTokenType.Symbol && _currentToken.Value == ")")) { IPBXProjExpression expression = ParseExpression(); SkipExpected(PBXProjTokenType.Symbol, ","); array.Add(expression); } ReadNextToken(); return(array); }
void AddArrayBuildSetting(ArrayBuildSetting arraySetting, string[] values, MergeMethod mergeMethod) { var settings = BuildSettings; PBXProjArray array = null; //TODO check conditionals, as will have to run for each conditional variant //handle appending if (mergeMethod == MergeMethod.Append) { array = settings.Element <PBXProjArray>(arraySetting.BuildSettingName); //single entry may have been parsed as a string if (array == null) { var str = settings.Element <PBXProjString>(arraySetting.BuildSettingName); if (str != null) { array = new PBXProjArray(); array.Add(str.Value); settings[arraySetting.BuildSettingName] = array; } } } //handles null case and replace case if (array == null) { array = new PBXProjArray(); settings[arraySetting.BuildSettingName] = array; } // handle settings that need inherit string being added if (arraySetting.AddInherited) { string inherited = INHERITED.EncloseInQuotes(); if (array.Where(o => (o as PBXProjString).Value.Equals(inherited)).Count() <= 0) { array.Add(inherited); } } foreach (var v in values) { string quoted; if (v.Contains(" ") && !v.StartsWith("\"", System.StringComparison.InvariantCultureIgnoreCase)) { quoted = "\"" + v + "\""; } else { quoted = v; } quoted = quoted.ToLiteralIfRequired(); //only add if not present if (array.Where(o => (o as PBXProjString).Value.Equals(quoted)).Count() <= 0) { array.Add(quoted); } } }