I admit that I don't quite understand everything that's going on here
since I haven't had the opportunity to use java 1.5 enumerations yet,
but I can certainly see how being able to define database enumerations
in the data model and then generating java constants or enumerations
for them would be a useful feature.
I'd make use of such a feature if it were available in the modeler.
I have a large number of "*_TYPE" tables that contain data that's
essentially enumerations, and under Java 1.4, I manually add constants
to my non-generated DataObject classes to represent this.
On 8/12/07, Andrus Adamchik <andru..bjectstyle.org> wrote:
> I am reluctant to add a standard option for persisting of what can be
> considered a custom class. But I am not sure why this is even needed?
> You can code your enums as Java enums with custom properties, and do
> not use Cayenne-provided EnumExtendedType, installing your own
> instead. E.g.:
>
>
> public enum Color {
>
> BLACK("000000"), WHITE("FFFFFF");
>
> private final String dbCode;
>
> private Color(String dbCode) {
> this.dbCode = dbCode;
> }
>
> public String getDbCode() {
> return dbCode;
> }
> }
>
> public class ColorType implements ExtendedType {
>
> public String getClassName() {
> return Color.class.getName();
> }
>
> public void setJdbcObject(
> PreparedStatement statement,
> Object value,
> int pos,
> int type,
> int precision) throws Exception {
>
> if (value instanceof MyEnumType) {
>
> Color e = (Color) value;
> statement.setString(pos, e.getDbCode());
> }
> else {
> statement.setNull(pos, type);
> }
> }
> ....
> }
>
>
>
>
>
> On Aug 9, 2007, at 1:42 PM, Michael Gentry wrote:
>
> > Uhm ... that's why I wanted it in the modeler and supported by Cayenne
> > natively. (Or easier to support, even if not in the modeler.)
> >
> > :-)
> >
> > I'm positive this feature would be useful to others. My current
> > approach is complicated to set up and easy to miss registering one of
> > your types (although you blow up quickly enough) or an actual
> > enumerated value (which is harder to catch). If it could be
> > simplified, it could be much more useful to everyone.
> >
> > Thanks,
> >
> > /dev/mrg
> >
> >
> > On 8/9/07, Andrus Adamchik <andru..bjectstyle.org> wrote:
> >> I see what you are saying. I guess for your case you can keep using
> >> custom ExtendedType (only based on JDK 1.5 enums).
> >>
> >> Andrus
> >
>
>
This archive was generated by hypermail 2.0.0 : Mon Aug 13 2007 - 10:55:08 EDT