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).

Reply via email to