Comments inline. Thanks,
/dev/mrg On Sun, Mar 2, 2008 at 12:18 PM, Andrus Adamchik <[EMAIL PROTECTED]> wrote: > > Hi Michael, > > I have a few suggestions/comments/nitpicks. > > * Placing ExtendedEnumeration class in > "org.apache.cayenne.access.types" will make it inaccessible on the ROP > client (access.* packages are excluded from the client). So maybe put > it under 'org.apache.cayenne'? Like I told Ari, I never use ROP and was concerned of issues. Now I know of at least one. I'll move it. > * Since ExtendedEnumeration is a distinct case from just an Enum from > the POV of ExtendedType, maybe instead of handling both via EnumType > (and complicating the algorithm), create a separate ExtendedEnumType, > and place the "instanceof" check in EnumTypeFactory to create an > appropriate *Type. I can look at that. Seems logical and I know I wanted to do more work on it. That won't change the client-usage, though, which is all I was trying to nail down. Obviously, moving the interface will, but no one is using this yet. > * ExtendedEnumeration is missing Apache license header. Oops. > * From the docs: "The preferred method is to implement the Cayenne > ExtendedEnumeration interface and provide the database value for each > enumeration." IMO it is not universally *preferred*, it depends on the > situation at hand and user preferences. Both methods work equally fine > from Cayenne POV. I think we should just describe how both methods > work and what is the difference. It seems logical to start with > vanilla Enums and go to ExtendedEnumeration next. > > [Hmm... the more I think of it, enums mapping doesn't even belong in > the chapter on ExtendedTypes customization anymore, as this is all > built in Cayenne and transparent. Maybe extract it to the "Modeling > Object Layer" chapter in the modeler guide?] > > Andrus > The main reason I say preferred is because vanilla enums can have unplanned gotchas with the numeric version. I think it is best to steer them to the extended version, but point out the vanilla version, too. That will allow them to make a better choice (hopefully) I was thinking the same thing about the location of the enum docs being under extended types when I was typing this stuff up, but I just wanted to get something documented for now. It seems a good idea to move it, but I didn't want to think too much about where right now (and it seems there should be something in the Modeler Guide and the Cayenne Guide, but I wasn't sure where in CG).
