From: Anjo K. <an...@us...> - 2008-01-16 23:24:16
|
Update of /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv13974/Sources/er/extensions Modified Files: ERXGenericRecord.java ERXKey.java ERXModelGroup.java Log Message: - ERXKey.ValueCoding interface added - locale array util added Both UNTESTED, WRITE ONLY! Index: ERXGenericRecord.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXGenericRecord.java,v retrieving revision 1.103 retrieving revision 1.104 diff -C2 -d -r1.103 -r1.104 *** ERXGenericRecord.java 17 Dec 2007 21:44:05 -0000 1.103 --- ERXGenericRecord.java 16 Jan 2008 23:24:11 -0000 1.104 *************** *** 37,92 **** /** * This class contains a bunch of extensions to the regular ! * {@link com.webobjects.eocontrol.EOGenericRecord EOGenericRecord} class. ! * Of notable interest is:<ul> * <li> it contains built in support for generating primary keys via the ! * {@link ERXGeneratesPrimaryKeyInterface}, * <li>support for an augmented transaction methods like <code> ! * willUpdate</code> and <code>didDelete</code> ! * and a bunch of handy utility methods like <code>committedSnapshotValueForKey * </code>. [...2277 lines suppressed...] ! // These methods are used to catch the classic mistake of: ! // public String foo() { return (String)valueForKey("foo"); } ! // where foo is not a property key ! ! /* ! * public Object storedValueForKey(String key) { // FIXME: turn this off ! * during production if (!allPropertyKeys().containsObject(key)) throw new ! * RuntimeException("********* Tried to access storedValueForKey on ! * "+entityName()+" on a non class property: "+key); Object value = ! * super.storedValueForKey(key); return value; } ! * ! * public void takeStoredValueForKey(Object value, String key) { // FIXME: ! * turn this off during production if ! * (!allPropertyKeys().containsObject(key)) { throw new ! * RuntimeException("********* Tried to takeStoredValueForKey on ! * "+entityName()+" on a non class property: "+key); } ! * super.takeStoredValueForKey(value,key); } ! * ! */ } Index: ERXKey.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXKey.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ERXKey.java 16 Jan 2008 07:26:08 -0000 1.6 --- ERXKey.java 16 Jan 2008 23:24:11 -0000 1.7 *************** *** 30,33 **** --- 30,39 ---- */ public class ERXKey<T> { + + public interface ValueCoding { + public <T> T valueForKey(ERXKey<T> key); + public <T> void takeValueForKey(Object value, ERXKey<T> key); + } + private String _key; Index: ERXModelGroup.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXModelGroup.java,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** ERXModelGroup.java 14 Dec 2007 11:35:55 -0000 1.66 --- ERXModelGroup.java 16 Jan 2008 23:24:11 -0000 1.67 *************** *** 579,582 **** --- 579,587 ---- String name = attribute.name(); String columnName = attribute.columnName(); + NSMutableDictionary attributeUserInfo = new NSMutableDictionary(); + if(attribute.userInfo() != null) { + attributeUserInfo.addEntriesFromDictionary(attribute.userInfo()); + } + attributeUserInfo.setObjectForKey(languages, "ERXLanguages"); for (int i = 0; i < languages.count(); i++) { String language = (String) languages.objectAtIndex(i); *************** *** 594,597 **** --- 599,603 ---- mutableAttributesUsedForLocking.addObject(copy); } + copy.setUserInfo(attributeUserInfo.mutableClone()); } entity.removeAttribute(attribute); |