diff options
| author | Benjamin Culkin <scorpress@gmail.com> | 2024-05-19 17:56:33 -0400 |
|---|---|---|
| committer | Benjamin Culkin <scorpress@gmail.com> | 2024-05-19 17:56:33 -0400 |
| commit | aedc34d55462a75e329bbf342251ff6504cd117e (patch) | |
| tree | bcc8f1f2352582717b484df302aeea6696b8f000 /projects/net.wotonomy.persistence/src/main/java/net/wotonomy/control/EOKeyValueCodingAdditions.java | |
Initial import from SVN
Diffstat (limited to 'projects/net.wotonomy.persistence/src/main/java/net/wotonomy/control/EOKeyValueCodingAdditions.java')
| -rw-r--r-- | projects/net.wotonomy.persistence/src/main/java/net/wotonomy/control/EOKeyValueCodingAdditions.java | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/projects/net.wotonomy.persistence/src/main/java/net/wotonomy/control/EOKeyValueCodingAdditions.java b/projects/net.wotonomy.persistence/src/main/java/net/wotonomy/control/EOKeyValueCodingAdditions.java new file mode 100644 index 0000000..bc48f58 --- /dev/null +++ b/projects/net.wotonomy.persistence/src/main/java/net/wotonomy/control/EOKeyValueCodingAdditions.java @@ -0,0 +1,176 @@ +/* +Wotonomy: OpenStep design patterns for pure Java applications. +Copyright (C) 2001 Intersect Software Corporation + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, see http://www.gnu.org +*/ + +package net.wotonomy.control; + +import java.util.List; +import java.util.Map; + +import net.wotonomy.foundation.NSDictionary; +import net.wotonomy.foundation.NSKeyValueCodingAdditions; + +/** +* EOKeyValueCodingAdditions defines an interface for classes +* that need to have more control over the wotonomy's bulk +* property copying and cloning facilities. <br><br> +* +* @author michael@mpowers.net +* @author $Author: cgruber $ +* @version $Revision: 894 $ +*/ +public interface EOKeyValueCodingAdditions extends EOKeyValueCoding, NSKeyValueCodingAdditions +{ + + /** + * Static utilities methods that + * call the appropriate method if the object implements + * NSKeyValueCodingAdditions, otherwise calls the method + * on DefaultImplementation. + */ + public class Utility extends NSKeyValueCodingAdditions.Utility + { + /** + * Calls the appropriate method if the object implements + * NSKeyValueCodingAdditions, otherwise calls the method + * on DefaultImplementation. + */ + public static void takeValuesFromDictionary( + Object object, Map dictionary) + { + if (object instanceof NSKeyValueCodingAdditions) { + ((NSKeyValueCodingAdditions)object).takeValuesFromDictionary(dictionary); + } else { + DefaultImplementation.takeValuesFromDictionary(object, dictionary); + } + } + + /** + * Calls the appropriate method if the object implements + * NSKeyValueCodingAdditions, otherwise calls the method + * on DefaultImplementation. + */ +/* + public static void takeValuesFromDictionaryWithMapping( + Object object, NSDictionary dictionary, NSDictionary mapping) + { + if (object instanceof NSKeyValueCodingAdditions) { + ((NSKeyValueCodingAdditions)object).takeValuesFromDictionaryWithMapping(dictionary, mapping); + } else { + DefaultImplementation.takeValuesFromDictionaryWithMapping(object, dictionary, mapping); + } + } +*/ + + /** + * Calls the appropriate method if the object implements + * NSKeyValueCodingAdditions, otherwise calls the method + * on DefaultImplementation. + */ + public static NSDictionary valuesForKeys( + Object object, List keys) + { + if (object instanceof NSKeyValueCodingAdditions) { + return ((NSKeyValueCodingAdditions)object).valuesForKeys(keys); + } else { + return DefaultImplementation.valuesForKeys(object, keys); + } + } + + /** + * Calls the appropriate method if the object implements + * NSKeyValueCodingAdditions, otherwise calls the method + * on DefaultImplementation. + */ +/* + public static NSDictionary valuesForKeysWithMapping( + Object object, NSDictionary mapping) + { + if (object instanceof NSKeyValueCodingAdditions) { + return ((NSKeyValueCodingAdditions)object).valuesForKeysWithMapping(mapping); + } else { + return DefaultImplementation.valuesForKeysWithMapping(object, mapping); + } + } +*/ + } + + /** + * Provides a reflection-based implementation for classes that + * don't implement NSKeyValueCodingAdditions. + */ + public class DefaultImplementation extends NSKeyValueCodingAdditions.DefaultImplementation + { + public static void takeValuesFromDictionary( + Object object, NSDictionary dictionary) + { + throw new RuntimeException( "Not implemented yet." ); + } + + public static void takeValuesFromDictionaryWithMapping( + Object object, NSDictionary dictionary, NSDictionary mapping) + { + throw new RuntimeException( "Not implemented yet." ); + } + + public static NSDictionary valuesForKeys( + Object object, List keys) + { + throw new RuntimeException( "Not implemented yet." ); + } + + public static NSDictionary valuesForKeysWithMapping( + Object object, Map mapping) + { + throw new RuntimeException( "Not implemented yet." ); + } + } +} + +/* + * $Log$ + * Revision 1.2 2006/02/16 16:47:14 cgruber + * Move some classes in to "internal" packages and re-work imports, etc. + * + * Also use UnsupportedOperationExceptions where appropriate, instead of WotonomyExceptions. + * + * Revision 1.1 2006/02/16 13:19:57 cgruber + * Check in all sources in eclipse-friendly maven-enabled packages. + * + * Revision 1.4 2003/01/16 22:47:30 mpowers + * Compatibility changes to support compiling woextensions source. + * (34 out of 56 classes compile!) + * + * Revision 1.3 2001/12/10 15:25:11 mpowers + * Now properly extending EOKeyValueCoding. + * + * Revision 1.2 2001/04/28 14:12:23 mpowers + * Refactored cloning/copying into KeyValueCodingUtilities. + * + * Revision 1.1 2001/03/29 03:29:49 mpowers + * Now using KeyValueCoding and Support instead of Introspector. + * + * Revision 1.2 2001/03/28 16:12:30 mpowers + * Documented interface. + * + * Revision 1.1 2001/03/27 23:25:05 mpowers + * Contributing interface, no docs yet. + * + * + */ + + |
