//public bool TryGet(string key, Variable<T> value) //{ // return blocks.TryGetValue(key, out value); //} public Variable Get(Key key, Logger log = null) { if (key.AtEnd) { Logger.LogF(log, Logger.Level.Error, StringsScripting.Formatted_IKeyed_Cannot_return_self, key, GetType()); return(null); } // ToDo : Log error if key remanining is not 3. Variable <T> value; if (blocks.TryGetValue(new Tuple <string, string, string>(key.Next(), key.Next(), key.Next()), out value)) { return(value); } Logger.LogF(log, Logger.Level.Error, StringsScripting.Formatted_Variable_not_found, key); return(new Variable <T>(default(T))); }
public Variable Get(Key key, Logger log = null) { if (key.AtEnd) { // ToDo : Error return(null); } if (key.NextIf("startquery")) { return(startQuery.Get(key, log)); } if (key.NextIf("emptyquery")) { return(emptyQuery.Get(key, log)); } var p = Personalities.GetActive(); if (key.NextIf("contact")) { int i; if (!int.TryParse(key.Next(), out i)) { // ToDo : Error return(null); } p = Personalities.Get(i, log); } if (p == null) { return(null); } return(p.Get(key, log)); }