RE: Cayenne Enumerations

From: Gentry, Michael \(Contractor\) ("Gentry,)
Date: Tue Jun 14 2005 - 11:50:41 EDT

  • Next message: Andrus Adamchik: "RE: Cayenne Enumerations"

    I'm not certain a DB is the place to keep that information. To generate
    the enumerations, you would need to know the superclass (integer or
    string), the enumeration class name, the symbolic names and database
    values (these would be in pairs). You'd also need conditionals around
    the initializers and constructor, depending on if it is integer or
    string based.

    I'm pretty sure I could wing it with a bash script, but that wouldn't be
    too friendly to the Windows users. I'll ponder it a bit more. The data
    source which describes the enumerations could be a flat-type
    configuration file or XML, but I'd hate for people to have to edit XML
    by hand. Of course, creating enumerations by hand could be cumbersome,
    too.

    Is the "fromPropertiesFile" a cgen thing? Maybe I could look into that
    ...

    Thanks,

    /dev/mrg

    -----Original Message-----
    From: Mike Kienenberger [mailto:mkienen..laska.net]
    Sent: Tuesday, June 14, 2005 11:34 AM
    To: cayenne-use..bjectstyle.org
    Cc: cayenne-use..bjectstyle.org
    Subject: Re: Cayenne Enumerations

    Andrus Adamchik <andru..bjectstyle.org> wrote:
    > But even with a template I still don't understand where would you get
    the
    > enum info. E.g. if you have a color enum (RED -> 1, GREEN -> 2, BLUE
    ->
    > 3), there is nothing in the DataMap that would allow you to generate
    such
    > class.

    I probably should have been more clear about the enumeration generation
    tool:

    You'd have it do something along the lines of "select distinct COLUMN
    from
    TABLE" from the datasource. -- those would be your enumerations. At
    least,
    I'm guessing that's what Michael had in mind.

    #foreach ($enumerationValue in
    $enumerationGeneratorTool.fromDistinctColumnValues(DATASOURCEINFO,
    TABLE,
    COLUMN))

    Or from a property file:

    #foreach ($enumerationValue in
    $enumerationGeneratorTool.fromPropertiesFile(FILENAME))

    etc

    -Mike



    This archive was generated by hypermail 2.0.0 : Tue Jun 14 2005 - 11:50:45 EDT