public static _KeyBinding _fieldKeyBinding(Class objectClass, String key, String fieldName) { ValueAccessor valueAccessor = ValueAccessor._valueAccessorForClass(objectClass); boolean publicFieldOnly = valueAccessor == null; Field field = _NSReflectionUtilities._fieldForClass(objectClass, fieldName, publicFieldOnly); if (field != null) { Class valueClass = _NSUtilities.classObjectForClass(field.getType()); if (_NSUtilities._isClassANumber(valueClass)) { return new _NumberFieldBinding(objectClass, key, field, valueClass, valueAccessor); } if (_NSUtilities._isClassABoolean(valueClass)) { return new _BooleanFieldBinding(objectClass, key, field, valueAccessor); } return new _FieldBinding(objectClass, key, field, valueAccessor); } return null; }
public static _KeyBinding _methodKeySetBinding(Class objectClass, String key, String methodName) { ValueAccessor valueAccessor = ValueAccessor._valueAccessorForClass(objectClass); boolean publicMethodOnly = valueAccessor == null; Method method = _NSReflectionUtilities._methodWithOneArgumentOfUnknownType(objectClass, methodName, key, publicMethodOnly, true, null, true); if (method != null) { Class valueClass = _NSUtilities.classObjectForClass(method.getParameterTypes()[0]); if (_NSUtilities._isClassANumber(valueClass)) { return new _NumberMethodBinding(objectClass, key, method, valueClass, valueAccessor); } if (_NSUtilities._isClassABoolean(valueClass)) { return new _BooleanMethodBinding(objectClass, key, method, valueAccessor); } return new _MethodBinding(objectClass, key, method, valueAccessor); } return null; }
public static _KeyBinding _methodKeyGetBinding(Class objectClass, String key, String methodName) { ValueAccessor valueAccessor = ValueAccessor._valueAccessorForClass(objectClass); boolean publicMethodOnly = valueAccessor == null; Method method = WOHelperFunctionClassKeyValueCoding._ReflectionKeyBindingCreation._methodForClass(objectClass, methodName, null, publicMethodOnly); if (method != null) { Class valueClass = _NSUtilities.classObjectForClass(method.getReturnType()); if (_NSUtilities._isClassANumber(valueClass)) { return new _NumberMethodBinding(objectClass, key, method, valueClass, valueAccessor); } if (_NSUtilities._isClassABoolean(valueClass)) { return new _BooleanMethodBinding(objectClass, key, method, valueAccessor); } return new _MethodBinding(objectClass, key, method, valueAccessor); } return null; }