Hi Bill,
It might be interesting to also print donor.getClass().getName().
-- Mark On May 3, 2006, at 4:34 PM, WebObjects wrote: I can't seem to get around java.lang.ClassCastException I know the EO's are of a known type, and using System.out.println("Here is entity name: " + myObjectToTest.entityName()); ...but when I try to use "myObjectToTest.strLastName()" to access the 'Last name string' (a known method of this entity) it doesn't recognize it at compile time. When I cast the object to the entity type (just for kicks) I get the cast exception. I'm a little stuck. The code is messy (work in progress syndrome), but I've pasted it below. All help is always appreciated :) -Bill --- code segment --- NSArray tester = new NSArray(ec.insertedObjects()); Enumeration enumerator = tester.objectEnumerator(); while (enumerator.hasMoreElements()) { EOEnterpriseObject donor = (EOEnterpriseObject)enumerator.nextElement(); System.out.println("Here is entity name: " + donor.entityName()); System.out.println("Here is Last Name: " + donor.strLastName()); ec.deleteObject(donor); } on 5/3/06 14:01, Ken Anderson at [EMAIL PROTECTED] wrote: > Bill, > > Are you only interested in one kind of EO to possibly delete? Why > not check the eo's entityName(), and if it's the one you want, cast > it to the right type and just send the correct methods? IE: > > if (myObjectToTest.entityName().equals("Item")) { > Item item = (Item) myObjectToTest; > > if (item.methodIWantTocheck() == null) > ec.deleteObject(item); > } > > Ken > > On May 3, 2006, at 4:55 PM, WebObjects wrote: > >> I'm taking a poke at using "ec.insertedObjects()" to evaluate each >> object >> prior to saving. So far I can grab an array of the objects, >> although I had >> to cast them into EO's and not simply their entity type (code >> immediately >> following): >> >> NSArray tester = new NSArray(ec.insertedObjects()); >> >> Enumeration enumerator = tester.objectEnumerator(); >> while (enumerator.hasMoreElements()) { >> EOEnterpriseObject myObjectToTest = >> (EOEnterpriseObject)enumerator.nextElement(); >> ...} >> >> ...I'm pretty close, the next thing I'm doing is trying to gain >> access to >> the KeyValues within the EOEnterpriseObject, which I'm trying to >> use the >> following to get at this... >> >> NSArray allPropertyKeys() >> Returns all of the receiver's property keys. >> NSArray attributeKeys() >> Returns the names of the receiver's attributes (not >> relationship >> properties). >> >> ...however, these only seem to return the Property keys and not the >> properties/values. The API isn't the easiest to read. My goal is >> to get at >> the values and then to use ec.deleteObject( myObjectToTest ) when >> needed. >> >> What is the right method to access the Keyvalues-properties? >> >> Thanks! >> >> -Bill >> >> >> on 5/2/06 19:07, Ken Anderson at [EMAIL PROTECTED] wrote: >> >>> No, but doing ec.deleteObject(obj) will. If the object is new and >>> has never been saved, it will effectively be nullified. >>> >>> On May 2, 2006, at 10:01 PM, WebObjects wrote: >>> >>>> Art, >>>> >>>> I'm thinking of EOEditingContext.insertedObjects() as the choice in >>>> this >>>> case. I actually thought that may be the answer here (thanks for >>>> your time >>>> on this). >>>> >>>> If I were to remove an element of the NSArray returned by this >>>> method, would >>>> then calling .saveChanges() on the ec now exclude objects removed >>>> from the >>>> array? If so is this because of the magic of WO keeping track of >>>> things? >>>> (it seems to easy, like I'm missing something) >>>> >>>> Thanks for your wisdom, >>>> >>>> -Bill >>>> >>>> >>>> on 5/2/06 18:53, Art Isbell at [EMAIL PROTECTED] wrote: >>>> >>>>> On May 2, 2006, at 2:48 PM, WebObjects wrote: >>>>> >>>>>> I've found an error in my coding style - too late in this project >>>>>> though. I >>>>>> use EOUtilities.createAndInsertInstance in a constructor for a >>>>>> page, and as >>>>>> a result 'refresh' and 'back' have become my enemies. >>>>>> >>>>>> How can I iterated over the unsaved objects in an EditingContext >>>>>> (ec), test >>>>>> their validity (ie. if ItemAt(0).getSomeValue() == null, etc) and >>>>>> delete >>>>>> them from the ec prior to .saveChanges() ? >>>>> >>>>> It would seem that if you can modify your code to iterate over >>>>> unsaved objects, that you could also modify your constructor to fix >>>>> this problem. But maybe not... >>>>> >>>>> EOEditingContext.insertedObjects() returns an array of inserted >>>>> objects. >>>>> >>>>> Or probably better, assuming that you can modify your constructor, >>>>> would be to create a new editing context assigned to an instance >>>>> variable of this component, lock it, and insert your new objects >>>>> into >>>>> this new editing context. Then if the user backtracks or >>>>> refreshes, >>>>> only objects inserted into the editing context of the current >>>>> instance of this component would be saved. Objects inserted into >>>>> other instances of the same component would be freed when the >>>>> component drops out of the page cache without being saved to the >>>>> DB. >>>>> >>>>> Aloha, >>>>> Art >>>>> >>>>> _______________________________________________ >>>>> Do not post admin requests to the list. They will be ignored. >>>>> Webobjects-dev mailing list ([email protected]) >>>>> Help/Unsubscribe/Update your Subscription: >>>>> http://lists.apple.com/mailman/options/webobjects-dev/webobjects% >>>>> 40concyse.com >>>>> >>>>> This email sent to [EMAIL PROTECTED] >>>> >>>> >>>> _______________________________________________ >>>> Do not post admin requests to the list. They will be ignored. >>>> Webobjects-dev mailing list ([email protected]) >>>> Help/Unsubscribe/Update your Subscription: >>>> http://lists.apple.com/mailman/options/webobjects-dev/lists% >>>> 40anderhome.com >>>> >>>> This email sent to [EMAIL PROTECTED] >>> >> >> >> _______________________________________________ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list ([email protected]) >> Help/Unsubscribe/Update your Subscription: >> http://lists.apple.com/mailman/options/webobjects-dev/lists% >> 40anderhome.com >> >> This email sent to [EMAIL PROTECTED] > _______________________________________________ Do not post admin requests to the list. They will be ignored. Help/Unsubscribe/Update your Subscription:
|