• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: inheritance (EO Subclass) ?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: inheritance (EO Subclass) ?


  • Subject: Re: inheritance (EO Subclass) ?
  • From: Theodore Petrosky <email@hidden>
  • Date: Sat, 19 Nov 2011 08:30:47 -0800 (PST)

i guess i don't see how in your example a contact could be both an employee and a vendor and a media rep

it seems to me that to use a contactType column, limits the contact to one and only one subclass

my method lets a contact belong to many different subclasses. I was questioning if this approach was 'good' or was I boxing myself into a corner that would bite me later.

Ted

--- On Sat, 11/19/11, Paul Yu <email@hidden> wrote:

> From: Paul Yu <email@hidden>
> Subject: Re: inheritance (EO Subclass) ?
> To: "Theodore Petrosky" <email@hidden>
> Cc: email@hidden
> Date: Saturday, November 19, 2011, 9:42 AM
> Ted
>
> I'm no expert on inheritance, but typically the setup
> should be
>
> Contact (Parent class) with a idContactType, marked as
> Abstract
> ContactType (1, Employee; 2, Vendor; 3, Media)
> Employee (Parent = Contact, Qualifier idContactType = 1)
> VendorContact (Parent = Contact, Qualifier idContactType =
> 2)
> MediaContact (Parent = Contact, Qualifier idContactType =
> 3)
>
> Then from your
> Company EO your relationship would be to Employee EO.
>
> Your fetches would be
>
> vendors = VendorContact.fetchVendorContact(ed,
> VendorContact.SOME_INTERESTING.eq(someValue), null);
>
> The type qualifier would be taken care of for you...
>
> Paul
> On Nov 19, 2011, at 9:00 AM, Theodore Petrosky wrote:
>
> > I am learning about subclassing EOs.
> >
> > I have an entity;   Contact
> >
> > and three subclasses Employee, VendorContact,
> MediaContact
> >
> > the qualifiers are:  isEmployee (bool) 
> isVendorContact (bool)  isMediaContact (bool)
> >
> > ie:
> > isEmployee <> 0
> > isVendorContact <> 0
> > isMediaContact <> 0
> >
> > testbed=# select * from t_contact;
> > c_first_name | c_last_name | id | c_is_vendor_contact | c_is_media_contact | c_is_employee
> > --------------+-------------+----+---------------------+--------------------+---------------
> > Ted          | Petrosky    |  1 | t    | t     | f
> > Bill         | Simpson     |  2 | t    | t     | t   
> > Harold       | Wall        |  3 | f    | t     | t
> >
> > so I set up a test page simple with ordered lists
> wrapped in WOReps
> >
> > and queried the backend to populate the NSArrays:
> >
> > theEC  = ERXEC.newEditingContext();
> >
> > vendors = VendorContact.fetchVendorContacts(theEC,
> VendorContact.IS_VENDOR_CONTACT.eq(true), null);
> > employees =
> CompanyEmployee.fetchCompanyEmployees(theEC,
> CompanyEmployee.IS_EMPLOYEE.eq(true), null);
> > mediaContacts = MediaContact.fetchMediaContacts(theEC,
> MediaContact.IS_MEDIA_CONTACT.eq(true), null);
> >
> > System.out.println("Media List " + mediaContacts);
> > System.out.println("Employees List " + employees);
> > System.out.println("Vendor List " + vendors);
> >
> > After I ran my app it barfed at me:
> >
> > Error:    
> java.lang.IllegalArgumentException: While trying to set the
> field "anEmployee" on an object of type
> com.eltek.components.Main we expected a
> com.eltek.model.CompanyEmployee but received a
> com.eltek.model.VendorContact with a value of
> <com.eltek.model.VendorContact pk:"1">. This often
> happens if you forget to use a formatter.
> >
> > Now I understand that I can not fetch these entities
> in a single EC as any contact could be a member of any or
> all subclasses.
> >
> > Did I miss something (a property maybe [since
> everything is a property]) or must I use multiple ECs in
> this case? Obviously, that was my solution, set up a
> different EC for each subclass. Then all is well (but is
> it?).
> >
> > Ted
> >
> > _______________________________________________
> > Do not post admin requests to the list. They will be
> ignored.
> > Webobjects-dev mailing list      (email@hidden)
> > Help/Unsubscribe/Update your Subscription:
> >
> > This email sent to email@hidden
>
>
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: inheritance (EO Subclass) ?
      • From: Chuck Hill <email@hidden>
References: 
 >Re: inheritance (EO Subclass) ? (From: Paul Yu <email@hidden>)

  • Prev by Date: Re: inheritance (EO Subclass) ?
  • Next by Date: Re: Error: table "eof_tmp_table" does not exist.
  • Previous by thread: Re: inheritance (EO Subclass) ?
  • Next by thread: Re: inheritance (EO Subclass) ?
  • Index(es):
    • Date
    • Thread