protected internal override SetVariableResult Apply_(ref VariableValue owner, VariableValue lookup, VariableValue value) { if (owner.HasList) { return(ListVariableHandler.ApplyToList(ref owner, lookup, value)); } if (owner.HasStore) { return(StoreVariableHandler.ApplyToStore(ref owner, lookup, value)); } if (lookup.HasString && owner.ReferenceType != null && ClassMap.Get(owner.ReferenceType, out var map)) { return(map.SetVariable(owner.Reference, lookup.String, value)); } return(SetVariableResult.NotFound); }
protected internal override VariableValue Lookup_(VariableValue owner, VariableValue lookup) { if (owner.HasList) { return(ListVariableHandler.LookupInList(owner, lookup)); } if (owner.HasStore) { return(StoreVariableHandler.LookupInStore(owner, lookup)); } if (lookup.HasString && owner.ReferenceType != null && ClassMap.Get(owner.ReferenceType, out var map)) { return(map.GetVariable(owner.Reference, lookup.String)); } // could fall back to reflection here and in Apply_ return(VariableValue.Empty); }