Project Wonder 5.0

er.extensions.foundation
Class ERXKeyValueCodingUtilities

java.lang.Object
  extended by er.extensions.foundation.ERXKeyValueCodingUtilities

public class ERXKeyValueCodingUtilities
extends java.lang.Object

Utilities for use with key value coding. You could instantiate one of these in your app-startup:


 ERXKeyValueCodingUtilities.registerClass(SomeClass.class); 
 NSKeyValueCodingAdditions statics = ERXKeyValueCodingUtilities.Statics;
 myValue = statics.valueForKeyPath("SomeClass.SOME_FIELD");
 
Also has utilities for getting and private fields and methods on an object.

Author:
ak

Field Summary
static com.webobjects.foundation.NSKeyValueCodingAdditions Statics
           
 
Constructor Summary
ERXKeyValueCodingUtilities()
           
 
Method Summary
static java.lang.Object classValueForKey(java.lang.Class clazz, java.lang.String key)
          Extends key-value coding to a class.
static java.lang.reflect.Field fieldForKey(java.lang.Object target, java.lang.String key)
           
static java.lang.reflect.Method methodForKey(java.lang.Object target, java.lang.String key)
           
static java.lang.Object privateValueForKey(java.lang.Object target, java.lang.String key)
           
static void registerClass(java.lang.Class clazz)
          Registers the class in the KVC resolving system, so you can use valueForKeyPath("MyClass.SOME_KEY").
static com.webobjects.foundation.NSArray<ERXKeyValuePair> staticStringsForClass(java.lang.Class c)
          Returns final strings constants from an interface or class.
static void takeChangedValuesFromDictionary(java.lang.Object object, com.webobjects.foundation.NSDictionary<java.lang.String,?> dictionary)
           * Works like takeValuesFromDictionary, except that it only calls takeValueForKey if the current value  * is different than the new value.
static void takePrivateValueForKey(java.lang.Object target, java.lang.Object value, java.lang.String key)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

Statics

public static final com.webobjects.foundation.NSKeyValueCodingAdditions Statics
Constructor Detail

ERXKeyValueCodingUtilities

public ERXKeyValueCodingUtilities()
Method Detail

registerClass

public static void registerClass(java.lang.Class clazz)
Registers the class in the KVC resolving system, so you can use valueForKeyPath("MyClass.SOME_KEY"). Inner classes are registered with a "$", i.e. MyClass$InnerClass

Parameters:
clazz -

classValueForKey

public static java.lang.Object classValueForKey(java.lang.Class clazz,
                                                java.lang.String key)
Extends key-value coding to a class. Java arrays and collections are morphed into NSArrays. The implementation is pretty slow, but I didn't exactly want to re-implement all of NSKeyValueCoding here.

Parameters:
clazz -
key -

staticStringsForClass

public static com.webobjects.foundation.NSArray<ERXKeyValuePair> staticStringsForClass(java.lang.Class c)
Returns final strings constants from an interface or class. Useful in particular when you want to create selection lists from your interfaces automatically.

Parameters:
c -

privateValueForKey

public static java.lang.Object privateValueForKey(java.lang.Object target,
                                                  java.lang.String key)

takePrivateValueForKey

public static void takePrivateValueForKey(java.lang.Object target,
                                          java.lang.Object value,
                                          java.lang.String key)

fieldForKey

public static java.lang.reflect.Field fieldForKey(java.lang.Object target,
                                                  java.lang.String key)

methodForKey

public static java.lang.reflect.Method methodForKey(java.lang.Object target,
                                                    java.lang.String key)

takeChangedValuesFromDictionary

public static void takeChangedValuesFromDictionary(java.lang.Object object,
                                                   com.webobjects.foundation.NSDictionary<java.lang.String,?> dictionary)
 * Works like takeValuesFromDictionary, except that it only calls takeValueForKey if the current value  * is different than the new value.  *

Parameters:
object - the object on which to operate
dictionary - the key-value pairs to set  

Last updated: Tue, Feb 21, 2017 • 05:45 PM CET

Copyright © 2002 – 2007 Project Wonder.