public Variable Get(Key key, Logger log = null) { if (key.AtEnd) { return(new Variable <BlockBase>(this)); } Logger.LogF(log, Logger.Level.Error, StringsScripting.Formatted_Variable_not_found, key); return(null); }
public Variable Get(Key key, Logger log = null) { T result; if (!TryGetValue(key.Peek, out result)) { if (newOnEmpty) { this[key.Peek] = result = Activator.CreateInstance <T>(); } else { Logger.LogF(log, Logger.Level.Error, StringsScripting.Formatted_Variable_not_found, key); return(default(T)); } } return(result.Get(++key, log)); }
//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 virtual Variable Get(Key key, Logger log = null) { if (key.AtEnd) { return(this); } if (!IsSet) { Logger.LogF(log, Logger.Level.Error, StringsScripting.Formatted_IKeyedGet_Variable_Unset, key); return(null); } IKeyed value = Value as IKeyed; if (value == null) { Logger.LogF(log, Logger.Level.Error, StringsScripting.Formatted_Variable_not_found, key); return(null); } return(value.Get(key, log)); }