getProxy method

VmProxy getProxy(
  1. String propertyName, {
  2. required bool setter,
})

获取指定字段的代理,setter为true表示这是为设置属性而获取的代理,由于set函数在字段的末尾添加了等于符号,所以将优先查找'propertyName='这样的函数

Implementation

VmProxy getProxy(String propertyName, {required bool setter}) {
  if (setter) {
    final setterPropName = '$propertyName=';
    final proxy = isExternal ? (externalProxyMap?[setterPropName] ?? externalProxyMap?[propertyName]) : (internalProxyMap?[setterPropName] ?? internalProxyMap?[propertyName]);
    if (proxy != null) return proxy;
    if (_internalSuperclass != null) return _internalSuperclass!.getProxy(propertyName, setter: setter);
    throw ('Not found proxy: $identifier.$propertyName');
  } else {
    final proxy = isExternal ? (externalProxyMap?[propertyName]) : (internalProxyMap?[propertyName]);
    if (proxy != null) return proxy;
    if (_internalSuperclass != null) return _internalSuperclass!.getProxy(propertyName, setter: setter);
    throw ('Not found proxy: $identifier.$propertyName');
  }
}