Update of /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions In directory sc8-pr-cvs1:/tmp/cvs-serv20920/Common/Frameworks/ERExtensions/Sources/er/extensions Modified Files: EOGenericRecordClazz.java ERXArrayUtilities.java ERXEOAccessUtilities.java ERXEOControlUtilities.java ERXEOEncodingUtilities.java ERXEOFAppender.java ERXExtensions.java ERXGenericRecord.java ERXJSPopupSelector.java ERXPluralString.java ERXSingleButton.java ERXTabPanel.java ERXTable.java ERXToManyRelationship.java ERXToOneRelationship.java ERXUtilities.java ERXValidationFactory.java WOToManyRelationship.java WOToOneRelationship.java Log Message: - moving lotsa stuff from ERXUtilities->ERXXXXUtlitities - added and fixed the accompaniying deprecations Index: EOGenericRecordClazz.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/EOGenericRecordClazz.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** EOGenericRecordClazz.java 18 Sep 2003 09:42:06 -0000 1.18 --- EOGenericRecordClazz.java 30 Sep 2003 00:10:48 -0000 1.19 *************** *** 136,140 **** */ public EOEnterpriseObject createAndInsertObject(EOEditingContext ec) { ! EOEnterpriseObject eo = ERXUtilities.createEO(entityName(), ec); return eo; } --- 136,140 ---- */ public EOEnterpriseObject createAndInsertObject(EOEditingContext ec) { ! EOEnterpriseObject eo = ERXEOControlUtilities.createAndInsertObject(ec,entityName()); return eo; } Index: ERXArrayUtilities.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXArrayUtilities.java,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** ERXArrayUtilities.java 26 Sep 2003 01:50:02 -0000 1.37 --- ERXArrayUtilities.java 30 Sep 2003 00:10:48 -0000 1.38 *************** *** 19,23 **** /** caches if array utilities have been initialized */ private static boolean initialized = false; ! /** * Groups an array of objects by a given key path. The dictionary --- 19,70 ---- /** caches if array utilities have been initialized */ private static boolean initialized = false; ! ! /** Caches sort orderings for given keys */ ! private final static NSDictionary _selectorsByKey=new NSDictionary(new NSSelector [] { ! EOSortOrdering.CompareAscending, ! EOSortOrdering.CompareCaseInsensitiveAscending, ! EOSortOrdering.CompareCaseInsensitiveDescending, ! EOSortOrdering.CompareDescending, ! }, new String [] { ! "compareAscending", ! "compareCaseInsensitiveAscending", ! "compareCaseInsensitiveDescending", ! "compareDescending", ! }); ! ! /** ! * Simply utility method to create a concreate ! * set object from an array ! * @param array of elements ! * @return concreate set. ! */ ! // CHECKME: Is this a value add? ! public static NSSet setFromArray(NSArray array) { ! if (array == null || array.count() == 0) ! return NSSet.EmptySet; ! else { ! Object [] objs = new Object[array.count()]; ! objs = array.objects(); ! return new NSSet(objs); ! } ! } ! ! /** ! * The qualifiers EOSortOrdering.CompareAscending.. and friends are ! * actually 'special' and processed in a different/faster way when ! * sorting than a selector that would be created by ! * new NSSelector("compareAscending", ObjectClassArray). This method ! * eases the pain on creating those selectors from a string. ! * @param key sort key ! */ ! public static NSSelector sortSelectorWithKey(String key) { ! NSSelector result=null; ! if (key!=null) { ! result=(NSSelector)_selectorsByKey.objectForKey(key); ! if (result==null) result=new NSSelector(key, ERXConstant.ObjectClassArray); ! } ! return result; ! } ! /** * Groups an array of objects by a given key path. The dictionary *************** *** 208,213 **** // the main array as well as not preserving the order of the array public static NSArray arrayMinusArray(NSArray main, NSArray minus){ ! NSSet result = ERXUtilities.setFromArray(main); ! return result.setBySubtractingSet(ERXUtilities.setFromArray(minus)).allObjects(); } --- 255,260 ---- // the main array as well as not preserving the order of the array public static NSArray arrayMinusArray(NSArray main, NSArray minus){ ! NSSet result = ERXArrayUtilities.setFromArray(main); ! return result.setBySubtractingSet(ERXArrayUtilities.setFromArray(minus)).allObjects(); } Index: ERXEOAccessUtilities.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXEOAccessUtilities.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** ERXEOAccessUtilities.java 27 Sep 2003 21:42:19 -0000 1.18 --- ERXEOAccessUtilities.java 30 Sep 2003 00:10:48 -0000 1.19 *************** *** 456,460 **** return result; } ! /** * Creates an array containing all of the primary --- 456,498 ---- return result; } ! /** ! * Utility method to generate a new primary key dictionary using ! * the adaptor for a given entity. This is can be handy if you ! * need to have a primary key for an object before it is saved to ! * the database. This method uses the same method that EOF uses ! * by default for generating primary keys. See ! * {@link ERXGeneratesPrimaryKeyInterface} for more information ! * about using a newly created dictionary as the primary key for ! * an enterprise object. ! * @param ec editing context ! * @param entityName name of the entity to generate the primary ! * key dictionary for. ! * @return a dictionary containing a new primary key for the given ! * entity. ! */ ! public static NSDictionary primaryKeyDictionaryForEntity(EOEditingContext ec, String entityName) { ! // FIXME: Should use the modelgroup for the root object store of the ! // editing context. ! EOEntity entity = EOModelGroup.defaultGroup().entityNamed(entityName); ! EODatabaseContext dbContext = EODatabaseContext.registeredDatabaseContextForModel(entity.model(), ec); ! NSDictionary primaryKey = null; ! try { ! dbContext.lock(); ! EOAdaptorChannel adaptorChannel = dbContext.availableChannel().adaptorChannel(); ! if (!adaptorChannel.isOpen()) ! adaptorChannel.openChannel(); ! NSArray arr = adaptorChannel.primaryKeysForNewRowsWithEntity(1, entity); ! if(arr != null) ! primaryKey = (NSDictionary)arr.lastObject(); ! else ! log.warn("Could not get primary key for entity: " + entityName + " exception"); ! dbContext.unlock(); ! } catch (Exception e) { ! dbContext.unlock(); ! log.error("Caught exception when generating primary key for entity: " + entityName + " exception: " + e, e); ! } ! return primaryKey; ! } ! /** * Creates an array containing all of the primary Index: ERXEOControlUtilities.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXEOControlUtilities.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** ERXEOControlUtilities.java 21 Sep 2003 19:12:56 -0000 1.17 --- ERXEOControlUtilities.java 30 Sep 2003 00:10:48 -0000 1.18 *************** *** 8,36 **** import com.webobjects.foundation.NSArray; ! ! import com.webobjects.eoaccess.EOAttribute; ! import com.webobjects.eoaccess.EOEntity; ! import com.webobjects.eoaccess.EODatabaseContext; ! import com.webobjects.eoaccess.EOAdaptorChannel; ! import com.webobjects.eoaccess.EOModelGroup; ! import com.webobjects.eoaccess.EOSQLExpression; ! import com.webobjects.eoaccess.EOUtilities; ! ! import com.webobjects.eocontrol.EOEditingContext; ! import com.webobjects.eocontrol.EOEnterpriseObject; ! import com.webobjects.eocontrol.EOFetchSpecification; ! import com.webobjects.eocontrol.EOGlobalID; ! import com.webobjects.eocontrol.EOKeyGlobalID; ! import com.webobjects.eocontrol.EOKeyValueQualifier; ! import com.webobjects.eocontrol.EOObjectStoreCoordinator; ! import com.webobjects.eocontrol.EOQualifier; ! import com.webobjects.eocontrol.EOSharedEditingContext; ! ! import com.webobjects.foundation.NSArray; ! import com.webobjects.foundation.NSDictionary; ! import com.webobjects.foundation.NSMutableDictionary; ! import com.webobjects.foundation.NSMutableArray; ! import com.webobjects.foundation.NSPropertyListSerialization; ! /** * Collection of EOF utility method centered around --- 8,15 ---- import com.webobjects.foundation.NSArray; ! import com.webobjects.eoaccess.*; ! import com.webobjects.eocontrol.*; ! import com.webobjects.foundation.*; ! import java.util.*; /** * Collection of EOF utility method centered around *************** *** 41,45 **** /** logging support */ public static final ERXLogger log = ERXLogger.getERXLogger(ERXEOControlUtilities.class); ! /** * Turns a given enterprise object back into a fault. --- 20,150 ---- /** logging support */ public static final ERXLogger log = ERXLogger.getERXLogger(ERXEOControlUtilities.class); ! ! ! /** ! * Provides the same functionality as the equivalent method ! * in {@link com.webobjects.eoaccess.EOUtilities EOUtilities} ! * except it will use the localInstanceOfObject ! * method from this utilities class which has a few enhancements. ! * ! * @param ec editing context to pull local object copies ! * @param eos array of enterprise objects ! * @return an array of copies of local objects ! */ ! public static NSArray localInstancesOfObjects(EOEditingContext ec, NSArray eos) { ! if (eos == null) ! throw new RuntimeException("ERXUtilites: localInstancesOfObjects: Array is null"); ! if (ec == null) ! throw new RuntimeException("ERXUtilites: localInstancesOfObjects: EditingContext is null"); ! NSMutableArray localEos = new NSMutableArray(); ! for (Enumeration e = eos.objectEnumerator(); e.hasMoreElements();) { ! localEos.addObject(localInstanceOfObject(ec, (EOEnterpriseObject)e.nextElement())); ! } ! return localEos; ! } ! ! /** ! * This has one advantage over the standard EOUtilites ! * method of first checking if the editingcontexts are ! * equal before creating a fault for the object in the ! * editing context. ! * @param ec editing context to get a local instance of the object in ! * @param eo object to get a local copy of ! * @return enterprise object local to the passed in editing contex ! */ ! public static EOEnterpriseObject localInstanceOfObject(EOEditingContext ec, EOEnterpriseObject eo) { ! return eo != null && ec != null && eo.editingContext() != null && !ec.equals(eo.editingContext()) ? ! EOUtilities.localInstanceOfObject(ec, eo) : eo; ! } ! ! /** ! * Creates an enterprise object for the given entity ! * name by first looking up the class description ! * of the entity to create the enterprise object. ! * The object is then inserted into the editing context ! * and returned. ! * @param editingContext editingContext to insert the created object into ! * @param entityName name of the entity to be created. ! * @return created and inserted enterprise object ! */ ! public static EOEnterpriseObject createAndInsertObject(EOEditingContext editingContext, String entityName) { ! return createAndInsertObject(editingContext,entityName,null); ! } ! ! /** ! * Creates an enterprise object for the given entity ! * name by first looking up the class description ! * of the entity to create the enterprise object. ! * The object is then inserted into the editing context ! * and returned. ! * @param editingContext editingContext to insert the created object into ! * @param entityName name of the entity to be created. ! * @param objectInfo dictionary of values pushed onto the object ! * before being inserted into the editing context. ! * @return created and inserted enterprise object ! */ ! public static EOEnterpriseObject createAndInsertObject(EOEditingContext editingContext, String entityName, NSDictionary objectInfo) { ! if (log.isDebugEnabled()) ! log.debug("Creating object of type: " + entityName); ! EOClassDescription cd=EOClassDescription.classDescriptionForEntityName(entityName); ! if (cd==null) ! throw new RuntimeException("Could not find class description for entity named "+entityName); ! EOEnterpriseObject newEO=cd.createInstanceWithEditingContext(editingContext,null); ! if (objectInfo != null) ! newEO.takeValuesFromDictionary(objectInfo); ! editingContext.insertObject(newEO); ! return newEO; ! } ! ! /** ! * Creates an object using the utility method <code>createEO</code> ! * from this utility class. After creating the enterprise object it ! * is added to the relationship of the enterprise object passed in. ! * For instance:<br/> ! * <code>createAndAddObjectToRelationship(ec, foo, "toBars", "Bar", dictValues);</code><br/> ! * <br/> ! * will create an instance of Bar, set all of the key-value pairs ! * from the dictValues dictionary, insert it into an editing context ! * and then add it to both sides of the realtionship "toBars" off of ! * the enterprise object foo. ! * ! * @param editingContext editing context to create the object in ! * @param source enterprise object to whose relationship the newly created ! * object will be added. ! * @param relationshipName relationship name of the enterprise object ! * that is passed in to which the newly created eo should be ! * added. ! * @param destinationEntityName name of the entity of the object to be created. ! * @param objectInfo dictionary of values to be set on the newly created ! * object before it is inserted into the editing context. ! * @return the newly created enterprise object ! */ ! public static EOEnterpriseObject createAndAddObjectToRelationship(EOEditingContext editingContext, EOEnterpriseObject source, String relationshipName, String destinationEntityName, NSDictionary objectInfo) { ! ! EOEnterpriseObject newEO=createAndInsertObject(editingContext, destinationEntityName, objectInfo); ! EOEnterpriseObject eoBis = editingContext!=source.editingContext() ? ! EOUtilities.localInstanceOfObject(editingContext,source) : source; ! eoBis.addObjectToBothSidesOfRelationshipWithKey(newEO, relationshipName); ! return newEO; ! } ! ! /** ! * Adds an object to another objects relationship. Has ! * the advantage of ensuring that the added object is ! * in the same editing context as the reference object. ! * @param addedObject object to be added to the relationship ! * @param referenceObject object that has the relationship ! * @param key relationship key ! */ ! public static void addObjectToObjectOnBothSidesOfRelationshipWithKey(EOEnterpriseObject addedObject, EOEnterpriseObject referenceObject, String key) { ! EOEditingContext referenceEc = referenceObject.editingContext(); ! EOEditingContext ec = addedObject.editingContext(); ! EOEnterpriseObject copy = addedObject; ! if (referenceEc != ec) { ! copy = EOUtilities.localInstanceOfObject(referenceEc, addedObject); ! } ! referenceObject.addObjectToBothSidesOfRelationshipWithKey(copy, key); ! } ! /** * Turns a given enterprise object back into a fault. *************** *** 332,335 **** --- 437,452 ---- } return sharedEos != null ? sharedEos : NSArray.EmptyArray; + } + + /** + * Fetches a shared enterprise object for a given fetch + * specification from the default shared editing context. + * @param fetchSpec name of the fetch specification on the + * shared object. + * @param entityName name of the shared entity + * @return the shared enterprise object fetch by the fetch spec named. + */ + public static EOEnterpriseObject sharedObjectWithFetchSpec(String fetchSpec, String entityName) { + return EOUtilities.objectWithFetchSpecificationAndBindings(EOSharedEditingContext.defaultSharedEditingContext(), entityName, fetchSpec, null); } Index: ERXEOEncodingUtilities.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXEOEncodingUtilities.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ERXEOEncodingUtilities.java 20 Nov 2002 02:50:48 -0000 1.3 --- ERXEOEncodingUtilities.java 30 Sep 2003 00:10:48 -0000 1.4 *************** *** 53,57 **** // Specify separator in link ? ! SpecifySeparatorInURL = ERXUtilities.booleanValueWithDefault(System.getProperty("er.extensions.ERXEOEncodingUtilities.SpecifySeparatorInURL"), true); } --- 53,57 ---- // Specify separator in link ? ! SpecifySeparatorInURL = ERXValueUtilities.booleanValueWithDefault(System.getProperty("er.extensions.ERXEOEncodingUtilities.SpecifySeparatorInURL"), true); } Index: ERXEOFAppender.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXEOFAppender.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ERXEOFAppender.java 17 Feb 2003 11:06:09 -0000 1.7 --- ERXEOFAppender.java 30 Sep 2003 00:10:48 -0000 1.8 *************** *** 154,159 **** // Create Log Entry for event. if (editingContext() != null) { ! ERXEOFLogEntryInterface logEntry = (ERXEOFLogEntryInterface)ERXUtilities.createEO(getLoggingEntity(), ! editingContext()); // Note that layout is not required and can be null. logEntry.intializeWithLoggingEvent(event, layout); --- 154,158 ---- // Create Log Entry for event. if (editingContext() != null) { ! ERXEOFLogEntryInterface logEntry = (ERXEOFLogEntryInterface)ERXEOControlUtilities.createAndInsertObject(editingContext(), getLoggingEntity()); // Note that layout is not required and can be null. logEntry.intializeWithLoggingEvent(event, layout); Index: ERXExtensions.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXExtensions.java,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** ERXExtensions.java 21 Sep 2003 19:12:56 -0000 1.55 --- ERXExtensions.java 30 Sep 2003 00:10:48 -0000 1.56 *************** *** 1368,1372 **** String key, boolean defaultValue) { ! return s.objectForKey(key) != null ? ERXUtilities.booleanValue(s.objectForKey(key)) : defaultValue; } --- 1368,1372 ---- String key, boolean defaultValue) { ! return s.objectForKey(key) != null ? ERXValueUtilities.booleanValue(s.objectForKey(key)) : defaultValue; } Index: ERXGenericRecord.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXGenericRecord.java,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** ERXGenericRecord.java 21 Sep 2003 19:12:56 -0000 1.50 --- ERXGenericRecord.java 30 Sep 2003 00:10:48 -0000 1.51 *************** *** 318,322 **** */ // MOVEME: Need to have a central repository of all of these keys and what they mean ! static boolean _raiseOnMissingEditingContextDelegate = ERXUtilities.booleanValueWithDefault(System.getProperty("er.extensions.ERXRaiseOnMissingEditingContextDelegate"), true); /** * By default, and this should change in the future, all editing contexts that --- 318,322 ---- */ // MOVEME: Need to have a central repository of all of these keys and what they mean ! static boolean _raiseOnMissingEditingContextDelegate = ERXValueUtilities.booleanValueWithDefault(System.getProperty("er.extensions.ERXRaiseOnMissingEditingContextDelegate"), true); /** * By default, and this should change in the future, all editing contexts that *************** *** 568,572 **** */ public EOEnterpriseObject localInstanceOf(EOEnterpriseObject eo) { ! return ERXUtilities.localInstanceOfObject(editingContext(), eo); } --- 568,572 ---- */ public EOEnterpriseObject localInstanceOf(EOEnterpriseObject eo) { ! return ERXEOControlUtilities.localInstanceOfObject(editingContext(), eo); } *************** *** 576,580 **** */ public NSArray localInstancesOf(NSArray eos) { ! return ERXUtilities.localInstancesOfObjects(editingContext(), eos); } --- 576,580 ---- */ public NSArray localInstancesOf(NSArray eos) { ! return ERXEOControlUtilities.localInstancesOfObjects(editingContext(), eos); } Index: ERXJSPopupSelector.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXJSPopupSelector.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ERXJSPopupSelector.java 6 May 2003 10:35:26 -0000 1.4 --- ERXJSPopupSelector.java 30 Sep 2003 00:10:48 -0000 1.5 *************** *** 46,50 **** // by default we assume that there is one more item on top of the list (i.e. - none - or - pick one -) // when the relationship is mandatory, this is not the case ! boolean doNotAddOne=ERXUtilities.booleanValueForBindingOnComponentWithDefault("doNotAddOneToComputedIndex", this, false); --- 46,50 ---- // by default we assume that there is one more item on top of the list (i.e. - none - or - pick one -) // when the relationship is mandatory, this is not the case ! boolean doNotAddOne=ERXValueUtilities.booleanValueForBindingOnComponentWithDefault("doNotAddOneToComputedIndex", this, false); Index: ERXPluralString.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXPluralString.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ERXPluralString.java 6 May 2003 10:35:26 -0000 1.3 --- ERXPluralString.java 30 Sep 2003 00:10:48 -0000 1.4 *************** *** 65,69 **** public boolean showNumber() { ! return hasBinding("showNumber") ? ERXUtilities.booleanValue(valueForBinding("showNumber")) : true; //boolean result=true; //Integer showNumber=(Integer); --- 65,69 ---- public boolean showNumber() { ! return hasBinding("showNumber") ? ERXValueUtilities.booleanValue(valueForBinding("showNumber")) : true; //boolean result=true; //Integer showNumber=(Integer); Index: ERXSingleButton.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXSingleButton.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ERXSingleButton.java 6 May 2003 10:35:26 -0000 1.4 --- ERXSingleButton.java 30 Sep 2003 00:10:48 -0000 1.5 *************** *** 40,44 **** // determines wether this component will output its own form or not public boolean useForm() { ! boolean result=hasBinding("doNotUseForm") ? !ERXUtilities.booleanValue(valueForBinding("doNotUseForm")) : true; // however, if the form does not have to be submitted AND javascript is enabled, no need for a form if (result && !shouldSubmitForm() && --- 40,44 ---- // determines wether this component will output its own form or not public boolean useForm() { ! boolean result=hasBinding("doNotUseForm") ? !ERXValueUtilities.booleanValue(valueForBinding("doNotUseForm")) : true; // however, if the form does not have to be submitted AND javascript is enabled, no need for a form if (result && !shouldSubmitForm() && *************** *** 56,60 **** // has to be submitted or can be bypassed public boolean shouldSubmitForm() { ! return hasBinding("shouldSubmitForm") ? ERXUtilities.booleanValue(valueForBinding("shouldSubmitForm")) : false; } --- 56,60 ---- // has to be submitted or can be bypassed public boolean shouldSubmitForm() { ! return hasBinding("shouldSubmitForm") ? ERXValueUtilities.booleanValue(valueForBinding("shouldSubmitForm")) : false; } Index: ERXTabPanel.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXTabPanel.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ERXTabPanel.java 6 May 2003 10:35:26 -0000 1.4 --- ERXTabPanel.java 30 Sep 2003 00:10:48 -0000 1.5 *************** *** 64,68 **** } ! if (result==null || ERXUtilities.booleanValue(result)) { switchTab(); } --- 64,68 ---- } ! if (result==null || ERXValueUtilities.booleanValue(result)) { switchTab(); } *************** *** 121,126 **** public boolean useLinkForTabSwitch() { if (_useLinkForTabSwitch == null) { ! _useLinkForTabSwitch = ERXUtilities.booleanValue(session().valueForKeyPath("browser.isIE")) && ! ERXUtilities.booleanValue(session().valueForKey("javaScriptEnabled")) ? Boolean.TRUE : Boolean.FALSE; } return _useLinkForTabSwitch.booleanValue(); --- 121,126 ---- public boolean useLinkForTabSwitch() { if (_useLinkForTabSwitch == null) { ! _useLinkForTabSwitch = ERXValueUtilities.booleanValue(session().valueForKeyPath("browser.isIE")) && ! ERXValueUtilities.booleanValue(session().valueForKey("javaScriptEnabled")) ? Boolean.TRUE : Boolean.FALSE; } return _useLinkForTabSwitch.booleanValue(); Index: ERXTable.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXTable.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ERXTable.java 13 Mar 2003 00:29:21 -0000 1.6 --- ERXTable.java 30 Sep 2003 00:10:48 -0000 1.7 *************** *** 100,104 **** public boolean goingVertically() { if (_goingVertically == null) { ! _goingVertically=ERXUtilities.booleanValue(valueForBinding("goingVertically")) ? Boolean.TRUE : Boolean.FALSE; } --- 100,104 ---- public boolean goingVertically() { if (_goingVertically == null) { ! _goingVertically=ERXValueUtilities.booleanValue(valueForBinding("goingVertically")) ? Boolean.TRUE : Boolean.FALSE; } *************** *** 149,153 **** public boolean showIndex() { if (_showIndex == null) { ! _showIndex=ERXUtilities.booleanValue(valueForBinding("showIndex")) ? Boolean.TRUE : Boolean.FALSE; } --- 149,153 ---- public boolean showIndex() { if (_showIndex == null) { ! _showIndex=ERXValueUtilities.booleanValue(valueForBinding("showIndex")) ? Boolean.TRUE : Boolean.FALSE; } Index: ERXToManyRelationship.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXToManyRelationship.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** ERXToManyRelationship.java 24 Sep 2003 21:04:29 -0000 1.13 --- ERXToManyRelationship.java 30 Sep 2003 00:10:48 -0000 1.14 *************** *** 157,161 **** EODataSource aDataSource = _localDataSource(); // Need to make sure that the eos are in the right editingContext. ! anUnsortedArray = ERXUtilities.localInstancesOfObjects(((EOEnterpriseObject)sourceObject()).editingContext(), aDataSource.fetchObjects()); // 81398 sort contents aSortedArray = new NSMutableArray(anUnsortedArray); --- 157,161 ---- EODataSource aDataSource = _localDataSource(); // Need to make sure that the eos are in the right editingContext. ! anUnsortedArray = ERXEOControlUtilities.localInstancesOfObjects(((EOEnterpriseObject)sourceObject()).editingContext(), aDataSource.fetchObjects()); // 81398 sort contents aSortedArray = new NSMutableArray(anUnsortedArray); *************** *** 181,186 **** for (Enumeration e = aSortedArray.objectEnumerator(); e.hasMoreElements();) { eo = (EOEnterpriseObject)e.nextElement(); ! localArray.addObject((ec != eo.editingContext() && ERXUtilities.localInstanceOfObject(ec, eo) != null ? ! ERXUtilities.localInstanceOfObject(ec, eo) : eo)); } aSortedArray=localArray; --- 181,186 ---- for (Enumeration e = aSortedArray.objectEnumerator(); e.hasMoreElements();) { eo = (EOEnterpriseObject)e.nextElement(); ! localArray.addObject((ec != eo.editingContext() && ERXEOControlUtilities.localInstanceOfObject(ec, eo) != null ? ! ERXEOControlUtilities.localInstanceOfObject(ec, eo) : eo)); } aSortedArray=localArray; *************** *** 214,218 **** NSMutableDictionary _dictionary = (isDictionary) ? (NSMutableDictionary)aSourceObject : null; EOEnterpriseObject _eo = !(isDictionary) ? (EOEnterpriseObject)aSourceObject : null; ! newValues = ERXUtilities.localInstancesOfObjects(_eo.editingContext(), newValues); // Need to handle the keyPath situation. if (_eo != null && masterKey.indexOf(".") != -1) { --- 214,218 ---- NSMutableDictionary _dictionary = (isDictionary) ? (NSMutableDictionary)aSourceObject : null; EOEnterpriseObject _eo = !(isDictionary) ? (EOEnterpriseObject)aSourceObject : null; ! newValues = ERXEOControlUtilities.localInstancesOfObjects(_eo.editingContext(), newValues); // Need to handle the keyPath situation. if (_eo != null && masterKey.indexOf(".") != -1) { Index: ERXToOneRelationship.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXToOneRelationship.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** ERXToOneRelationship.java 24 Sep 2003 21:04:29 -0000 1.17 --- ERXToOneRelationship.java 30 Sep 2003 00:10:48 -0000 1.18 *************** *** 150,154 **** EOEnterpriseObject _eo = !(isDictionary) ? (EOEnterpriseObject)aSourceObject : null; EOEnterpriseObject localEO = !isDictionary && anEO != null ? ! ERXUtilities.localInstanceOfObject(_eo.editingContext(), (EOEnterpriseObject)anEO) : null; // Need to handle the keyPath situation. if (_eo != null && masterKey.indexOf(".") != -1) { --- 150,154 ---- EOEnterpriseObject _eo = !(isDictionary) ? (EOEnterpriseObject)aSourceObject : null; EOEnterpriseObject localEO = !isDictionary && anEO != null ? ! ERXEOControlUtilities.localInstanceOfObject(_eo.editingContext(), (EOEnterpriseObject)anEO) : null; // Need to handle the keyPath situation. if (_eo != null && masterKey.indexOf(".") != -1) { *************** *** 250,254 **** ec = session().defaultEditingContext(); ! anUnsortedArray = ERXUtilities.localInstancesOfObjects(ec, aDataSource.fetchObjects()); // 81398 sort contents aSortedArray = new NSMutableArray(anUnsortedArray); --- 250,254 ---- ec = session().defaultEditingContext(); ! anUnsortedArray = ERXEOControlUtilities.localInstancesOfObjects(ec, aDataSource.fetchObjects()); // 81398 sort contents aSortedArray = new NSMutableArray(anUnsortedArray); *************** *** 274,279 **** for (Enumeration e = aSortedArray.objectEnumerator(); e.hasMoreElements();) { eo = (EOEnterpriseObject)e.nextElement(); ! localArray.addObject((ec != eo.editingContext() && ERXUtilities.localInstanceOfObject(ec, eo) != null ? ! ERXUtilities.localInstanceOfObject(ec, eo) : eo)); } aSortedArray=localArray; --- 274,279 ---- for (Enumeration e = aSortedArray.objectEnumerator(); e.hasMoreElements();) { eo = (EOEnterpriseObject)e.nextElement(); ! localArray.addObject((ec != eo.editingContext() && ERXEOControlUtilities.localInstanceOfObject(ec, eo) != null ? ! ERXEOControlUtilities.localInstanceOfObject(ec, eo) : eo)); } aSortedArray=localArray; Index: ERXUtilities.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXUtilities.java,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** ERXUtilities.java 24 Sep 2003 21:04:29 -0000 1.37 --- ERXUtilities.java 30 Sep 2003 00:10:48 -0000 1.38 *************** *** 26,120 **** /** ! * Adds an object to another objects relationship. Has ! * the advantage of ensuring that the added object is ! * in the same editing context as the reference object. ! * @param addedObject object to be added to the relationship ! * @param referenceObject object that has the relationship ! * @param key relationship key */ ! public static void addObjectToObjectOnBothSidesOfRelationshipWithKey(EOEnterpriseObject addedObject, ! EOEnterpriseObject referenceObject, ! String key) { ! EOEditingContext referenceEc = referenceObject.editingContext(); ! EOEditingContext ec = addedObject.editingContext(); ! EOEnterpriseObject copy = addedObject; ! if (referenceEc != ec) { ! copy = EOUtilities.localInstanceOfObject(referenceEc, addedObject); ! } ! referenceObject.addObjectToBothSidesOfRelationshipWithKey(copy, key); } /** ! * Creates an enterprise object for the given entity ! * name by first looking up the class description ! * of the entity to create the enterprise object. ! * The object is then inserted into the editing context ! * and returned. ! * @param entityName name of the entity to be ! * created. ! * @param editingContext editingContext to insert ! * the created object into ! * @return created and inserted enterprise object */ ! public static EOEnterpriseObject createEO(String entityName, ! EOEditingContext editingContext) { ! return ERXUtilities.createEO(entityName, ! editingContext, ! null); } /** ! * Creates an enterprise object for the given entity ! * name by first looking up the class description ! * of the entity to create the enterprise object. ! * The object next has the values pushed onto it ! * from the objectInfo dictionary before being ! * inserted into the editing context. The advantage ! * of this is that you can have values already set ! * on the object when awakeFromInsertion is called ! * on the object. ! * @param entityName name of the entity to be ! * created. ! * @param editingContext editingContext to insert ! * the created object into ! * @param objectInfo dictionary of values pushed onto ! * the object before being inserted into the ! * editing context. ! * @return created and inserted enterprise object */ public static EOEnterpriseObject createEO(String entityName, EOEditingContext editingContext, NSDictionary objectInfo) { ! if (log.isDebugEnabled()) ! log.debug("Creating object of type: " + entityName); ! EOClassDescription cd=EOClassDescription.classDescriptionForEntityName(entityName); ! if (cd==null) ! throw new RuntimeException("Could not find class description for entity named "+entityName); ! EOEnterpriseObject newEO=cd.createInstanceWithEditingContext(editingContext,null); ! if (objectInfo != null) ! newEO.takeValuesFromDictionary(objectInfo); ! editingContext.insertObject(newEO); ! return newEO; } /** ! * Creates an object using the utility method <code>createEO</code> ! * from this utility class. After creating the enterprise object it ! * is added to the relationship of the enterprise object passed in. ! * For instance:<br/> ! * <code>createEOLinkedToEO("Bar", ec, "toBars", foo);</code><br/> ! * <br/> ! * will create an instance of Bar, insert it into an editing context ! * and then add it to both sides of the realtionship "toBars" off of ! * the enterprise object foo. ! * ! * @param entityName name of the entity of the object to be created. ! * @param editingContext editing context to create the object in ! * @param relationshipName relationship name of the enterprise object ! * that is passed in to which the newly created eo should be ! * added. ! * @param eo enterprise object to whose relationship the newly created ! * object will be added. ! * @return the newly created enterprise object */ public static EOEnterpriseObject createEOLinkedToEO(String entityName, --- 26,53 ---- /** ! * @deprecated use ERXEOControlUtilities.addObjectToObjectOnBothSidesOfRelationshipWithKey(EOEnterpriseObject,EOEnterpriseObject,String) */ ! public static void addObjectToObjectOnBothSidesOfRelationshipWithKey(EOEnterpriseObject addedObject, EOEnterpriseObject referenceObject, String key) { ! ERXEOControlUtilities.addObjectToObjectOnBothSidesOfRelationshipWithKey(addedObject, referenceObject, key); } /** ! * @deprecated use ERXEOControlUtilities.createAndInsertObject(EOEditingContext,String) */ ! public static EOEnterpriseObject createEO(String entityName, EOEditingContext editingContext) { ! return ERXUtilities.createEO(entityName, editingContext, null); } /** ! * @deprecated use createAndInsertObject(EOEditingContext,String, NSDictionary) */ public static EOEnterpriseObject createEO(String entityName, EOEditingContext editingContext, NSDictionary objectInfo) { ! return ERXEOControlUtilities.createAndInsertObject(editingContext, entityName, objectInfo); } /** ! * @deprecated use ERXEOControlUtilities.createAndAddObjectToRelationship(EOEditingContext,EOEnterpriseObject,String,String,NSDictionary); */ public static EOEnterpriseObject createEOLinkedToEO(String entityName, *************** *** 122,154 **** String relationshipName, EOEnterpriseObject eo) { ! return ERXUtilities.createEOLinkedToEO(entityName, ! editingContext, ! relationshipName, ! eo, ! null); } /** ! * Creates an object using the utility method <code>createEO</code> ! * from this utility class. After creating the enterprise object it ! * is added to the relationship of the enterprise object passed in. ! * For instance:<br/> ! * <code>createEOLinkedToEO("Bar", ec, "toBars", foo, dictValues);</code><br/> ! * <br/> ! * will create an instance of Bar, set all of the key-value pairs ! * from the dictValues dictionary, insert it into an editing context ! * and then add it to both sides of the realtionship "toBars" off of ! * the enterprise object foo. ! * ! * @param entityName name of the entity of the object to be created. ! * @param editingContext editing context to create the object in ! * @param relationshipName relationship name of the enterprise object ! * that is passed in to which the newly created eo should be ! * added. ! * @param eo enterprise object to whose relationship the newly created ! * object will be added. ! * @param objectInfo dictionary of values to be set on the newly created ! * object before it is inserted into the editing context. ! * @return the newly created enterprise object */ public static EOEnterpriseObject createEOLinkedToEO(String entityName, --- 55,63 ---- String relationshipName, EOEnterpriseObject eo) { ! return ERXEOControlUtilities.createAndAddObjectToRelationship(editingContext,eo,relationshipName,entityName,null); } /** ! * @deprecated use ERXEOControlUtilities.createAndAddObjectToRelationship(EOEditingContext,EOEnterpriseObject,String,String,NSDictionary); */ public static EOEnterpriseObject createEOLinkedToEO(String entityName, *************** *** 157,226 **** EOEnterpriseObject eo, NSDictionary objectInfo) { ! EOEnterpriseObject newEO=createEO(entityName, editingContext, objectInfo); ! EOEnterpriseObject eoBis = editingContext!=eo.editingContext() ? ! EOUtilities.localInstanceOfObject(editingContext,eo) : eo; ! eoBis.addObjectToBothSidesOfRelationshipWithKey(newEO, relationshipName); ! return newEO; } /** ! * This has one advantage over the standard EOUtilites ! * method of first checking if the editingcontexts are ! * equal before creating a fault for the object in the ! * editing context. ! * @param ec editing context to get a local instance of the object in ! * @param eo object to get a local copy of ! * @return enterprise object local to the passed in editing contex */ public static EOEnterpriseObject localInstanceOfObject(EOEditingContext ec, EOEnterpriseObject eo) { ! return eo != null && ec != null && eo.editingContext() != null && !ec.equals(eo.editingContext()) ? ! EOUtilities.localInstanceOfObject(ec, eo) : eo; } /** ! * Provides the same functionality as the equivalent method ! * in {@link com.webobjects.eoaccess.EOUtilities EOUtilities} ! * except it will use the localInstanceOfObject ! * method from this utilities class which has a few enhancements. ! * ! * @param ec editing context to pull local object copies ! * @param eos array of enterprise objects ! * @return an array of copies of local objects */ public static NSArray localInstancesOfObjects(EOEditingContext ec, NSArray eos) { ! if (eos == null) ! throw new RuntimeException("ERXUtilites: localInstancesOfObjects: Array is null"); ! if (ec == null) ! throw new RuntimeException("ERXUtilites: localInstancesOfObjects: EditingContext is null"); ! NSMutableArray localEos = new NSMutableArray(); ! for (Enumeration e = eos.objectEnumerator(); e.hasMoreElements();) { ! localEos.addObject(localInstanceOfObject(ec, (EOEnterpriseObject)e.nextElement())); ! } ! return localEos; } /** ! * Fetches a shared enterprise object for a given fetch ! * specification from the default shared editing context. ! * @param fetchSpec name of the fetch specification on the ! * shared object. ! * @param entityName name of the shared entity ! * @return the shared enterprise object fetch by the fetch spec named. */ public static EOEnterpriseObject sharedObjectWithFetchSpec(String fetchSpec, String entityName) { ! return EOUtilities.objectWithFetchSpecificationAndBindings(EOSharedEditingContext.defaultSharedEditingContext(), ! entityName, ! fetchSpec, ! null); } /** ! * Gets the shared enterprise object with the given primary ! * from the default shared editing context. This has the ! * advantage of not requiring a roundtrip to the database to ! * lookup the object. ! * @param pk primary key of object to be found ! * @param entityName name of the entity ! * @return the shared object registered in the default shared editing context */ public static EOEnterpriseObject sharedObjectWithPrimaryKey(Object pk, String entityName) { --- 66,95 ---- EOEnterpriseObject eo, NSDictionary objectInfo) { ! return ERXEOControlUtilities.createAndAddObjectToRelationship(editingContext,eo,relationshipName,entityName,objectInfo); } /** ! * @deprecated use ERXEOControlUtilities.localInstanceOfObject(EOEditingContext,EOEnterpriseObject); */ public static EOEnterpriseObject localInstanceOfObject(EOEditingContext ec, EOEnterpriseObject eo) { ! return ERXEOControlUtilities.localInstanceOfObject(ec, eo); } /** ! * @deprecated use ERXEOControlUtilities.localInstancesOfObjects(EOEditingContext,NSArray); */ public static NSArray localInstancesOfObjects(EOEditingContext ec, NSArray eos) { ! return ERXEOControlUtilities.localInstancesOfObjects(ec, eos); } /** ! * @deprecated use ERXEOControlUtilities.sharedObjectWithPrimaryKey(String, object) */ public static EOEnterpriseObject sharedObjectWithFetchSpec(String fetchSpec, String entityName) { ! return ERXEOControlUtilities.sharedObjectWithFetchSpec(entityName, fetchSpec); } /** ! * @deprecated use ERXEOControlUtilities.sharedObjectWithPrimaryKey(String, object) */ public static EOEnterpriseObject sharedObjectWithPrimaryKey(Object pk, String entityName) { *************** *** 229,268 **** /** ! * Utility method to generate a new primary key dictionary using ! * the adaptor for a given entity. This is can be handy if you ! * need to have a primary key for an object before it is saved to ! * the database. This method uses the same method that EOF uses ! * by default for generating primary keys. See ! * {@link ERXGeneratesPrimaryKeyInterface} for more information ! * about using a newly created dictionary as the primary key for ! * an enterprise object. ! * @param ec editing context ! * @param entityName name of the entity to generate the primary ! * key dictionary for. ! * @return a dictionary containing a new primary key for the given ! * entity. */ public static NSDictionary primaryKeyDictionaryForEntity(EOEditingContext ec, String entityName) { ! // FIXME: Should use the modelgroup for the root object store of the ! // editing context. ! EOEntity entity = EOModelGroup.defaultGroup().entityNamed(entityName); ! EODatabaseContext dbContext = EODatabaseContext.registeredDatabaseContextForModel(entity.model(), ec); ! NSDictionary primaryKey = null; ! try { ! dbContext.lock(); ! EOAdaptorChannel adaptorChannel = dbContext.availableChannel().adaptorChannel(); ! if (!adaptorChannel.isOpen()) ! adaptorChannel.openChannel(); ! NSArray arr = adaptorChannel.primaryKeysForNewRowsWithEntity(1, entity); ! if(arr != null) ! primaryKey = (NSDictionary)arr.lastObject(); ! else ! log.warn("Could not get primary key for entity: " + entityName + " exception"); ! dbContext.unlock(); ! } catch (Exception e) { ! dbContext.unlock(); ! log.error("Caught exception when generating primary key for entity: " + entityName + " exception: " + e, e); ! } ! return primaryKey; } --- 98,105 ---- /** ! * @deprecated use ERXEOAccessUtilities.primaryKeyDictionaryForEntity(EOEditingContext, String) */ public static NSDictionary primaryKeyDictionaryForEntity(EOEditingContext ec, String entityName) { ! return ERXEOAccessUtilities.primaryKeyDictionaryForEntity(ec,entityName); } *************** *** 349,362 **** /** - * This is protected utility method from JavaWOExtensions. - * All it does is sort a mutable array using a single key. - * The sort is performed using the selector: - * {@link com.webobjects.eocontrol.EOSortOrdering#CompareCaseInsensitiveAscending - * EOSortOrdering.CompareCaseInsensitiveAscending} - * Note: if you want to return a new array of sorted eos - * you can use 'sort' {@link NSArray.Operator} found in - * {@link ERXArrayUtilities}. - * @param eos mutable array to be sorted - * @param key key to be sorted on. * @deprecated use ERXArrayUtilities.sortArrayWithKey(NSMutableArray,String) instead */ --- 186,189 ---- *************** *** 366,375 **** /** - * This is protected utility method from JavaWOExtensions. - * All it does is sort a mutable array using a single key - * and a selector. - * @param eos mutable array to be sorted - * @param key key to be sorted on. - * @param selector sort selector. * @deprecated use ERXArrayUtilities.sortArrayWithKey(NSMutableArray,String,NSSelector) instead */ --- 193,196 ---- *************** *** 379,395 **** /** ! * This method resolves bindings from WOComponents to ! * boolean values. The added benifit (and this might not ! * still be the case) is that when <code>false</code> is ! * bound to a binding will pass through null. This makes ! * it difficult to handle the case where a binding should ! * default to true but false was actually bound to the ! * binding.<br/> ! * Note: This is only needed for non-syncronizing components ! * @param binding name of the binding ! * @param component to resolve binding request ! * @param def default value if binding is not set ! * @return boolean resolution of the object returned from the ! * valueForBinding request. */ public static boolean booleanValueForBindingOnComponentWithDefault(String binding, WOComponent component, boolean def) { --- 200,204 ---- /** ! * @deprecated use ERXValueUtilities.booleanValueForBindingOnComponentWithDefault(String,WOComponent,boolean) instead */ public static boolean booleanValueForBindingOnComponentWithDefault(String binding, WOComponent component, boolean def) { *************** *** 398,409 **** /** ! * Basic utility method for determining if an object ! * represents either a true or false value. The current ! * implementation tests if the object is an instance of ! * a String or a Number. Numbers are false if they equal ! * <code>0</code>, Strings are false if they equal (case insensitive) ! * 'no', 'false' or parse to 0. ! * @param obj object to be evaluated ! * @return boolean evaluation of the given object */ public static boolean booleanValue(Object obj) { --- 207,211 ---- /** ! * @deprecated use ERXValueUtilities.booleanValue(Object) */ public static boolean booleanValue(Object obj) { *************** *** 412,425 **** /** ! * Basic utility method for determining if an object ! * represents either a true or false value. The current ! * implementation tests if the object is an instance of ! * a String or a Number. Numbers are false if they equal ! * <code>0</code>, Strings are false if they equal (case insensitive) ! * 'no', 'false' or parse to 0. The default value is used if ! * the object is null. ! * @param obj object to be evaluated ! * @param def default value if object is null ! * @return boolean evaluation of the given object */ public static boolean booleanValueWithDefault(Object obj, boolean def) { --- 214,218 ---- /** ! * @deprecated use ERXValueUtilities.booleanValueWithDefault(Object,boolean) */ public static boolean booleanValueWithDefault(Object obj, boolean def) { *************** *** 690,739 **** /** ! * Simply utility method to create a concreate ! * set object from an array ! * @param array of elements ! * @return concreate set. */ - // MOVEME: Should move to ERXArrayUtilities - // CHECKME: Is this a value add? public static NSSet setFromArray(NSArray array) { ! if (array == null || array.count() == 0) ! return NSSet.EmptySet; ! else { ! Object [] objs = new Object[array.count()]; ! objs = array.objects(); ! return new NSSet(objs); ! } } - /** Caches sort orderings for given keys */ - private final static NSDictionary _selectorsByKey=new NSDictionary(new NSSelector [] { - EOSortOrdering.CompareAscending, - EOSortOrdering.CompareCaseInsensitiveAscending, - EOSortOrdering.CompareCaseInsensitiveDescending, - EOSortOrdering.CompareDescending, - }, new String [] { - "compareAscending", - "compareCaseInsensitiveAscending", - "compareCaseInsensitiveDescending", - "compareDescending", - }); - /** ! * The qualifiers EOSortOrdering.CompareAscending.. and friends are ! * actually 'special' and processed in a different/faster way when ! * sorting than a selector that would be created by ! * new NSSelector("compareAscending", ObjectClassArray). This method ! * eases the pain on creating those selectors from a string. ! * @param key sort key */ - // MOVEME: Should move to ERXArrayUtilities public static NSSelector sortSelectorWithKey(String key) { ! NSSelector result=null; ! if (key!=null) { ! result=(NSSelector)_selectorsByKey.objectForKey(key); ! if (result==null) result=new NSSelector(key, ERXConstant.ObjectClassArray); ! } ! return result; } --- 483,497 ---- /** ! * @deprecated use ERXArrayUtilities.setFromArray(NSArray) */ public static NSSet setFromArray(NSArray array) { ! return ERXArrayUtilities.setFromArray(array); } /** ! * @deprecated use ERXArrayUtilities.sortSelectorWithKey(String) */ public static NSSelector sortSelectorWithKey(String key) { ! return ERXArrayUtilities.sortSelectorWithKey(key); } Index: ERXValidationFactory.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXValidationFactory.java,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** ERXValidationFactory.java 21 Sep 2003 19:13:18 -0000 1.32 --- ERXValidationFactory.java 30 Sep 2003 00:10:48 -0000 1.33 *************** *** 463,467 **** public void configureFactory() { // CHECKME: This might be better configured in a static init block of ERXValidationFactory. ! ERXValidation.setPushChangesDefault(ERXUtilities.booleanValueWithDefault(System.getProperties().getProperty("er.extensions.ERXValidationShouldPushChangesToObject"), ERXValidation.DO_NOT_PUSH_INCORRECT_VALUE_ON_EO)); if (WOApplication.application()!=null && WOApplication.application().isCachingEnabled()) { --- 463,467 ---- public void configureFactory() { // CHECKME: This might be better configured in a static init block of ERXValidationFactory. ! ERXValidation.setPushChangesDefault(ERXValueUtilities.booleanValueWithDefault(System.getProperties().getProperty("er.extensions.ERXValidationShouldPushChangesToObject"), ERXValidation.DO_NOT_PUSH_INCORRECT_VALUE_ON_EO)); if (WOApplication.application()!=null && WOApplication.application().isCachingEnabled()) { Index: WOToManyRelationship.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/WOToManyRelationship.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** WOToManyRelationship.java 24 Sep 2003 21:04:29 -0000 1.7 --- WOToManyRelationship.java 30 Sep 2003 00:10:48 -0000 1.8 *************** *** 130,134 **** public void setIsMandatory(Object aValue) { try { ! _isMandatory = ERXUtilities.booleanValue(aValue); } catch (Throwable e) { String error = "WOToOneRelationship (setIsMandatory) - unable to set isMandatory value "+e.getMessage(); --- 130,134 ---- public void setIsMandatory(Object aValue) { try { ! _isMandatory = ERXValueUtilities.booleanValue(aValue); } catch (Throwable e) { String error = "WOToOneRelationship (setIsMandatory) - unable to set isMandatory value "+e.getMessage(); **********... [truncated message content] |