[ http://issues.apache.org/jira/browse/OJB-24?page=comments#action_63080 ] Martin Taal commented on OJB-24: --------------------------------
Actually I am looking at an emf enumerator (org.eclipse.emf.common.util.AbstractEnumerator) but the approach is very similar to commons-enum (never worked with that one though). You are right that having a specific converter for each enum-subtype solves this issue (at least I think that is what you mean). However, what I think of is a generic field converter which detects what the required enum-type of the field is and then automatically converts the value from the db (and back). In this way I do not need a converter for each enum-subtype but can work with one generic converter (which I automatically add in the field-descriptor when I generate the repository.xml). However for this generic converter it has to know runtime what the fielddescriptor is. Regarding code, what I currently do is to store the class name of the enum-type in the same db-field as the enum value (making the varchar a bit longer). In this way my generic converter reads the contents of the field, gets the class name from it and gets the enum object from the enum-class. > Feature Request: enumerates and field conversions > ------------------------------------------------- > > Key: OJB-24 > URL: http://issues.apache.org/jira/browse/OJB-24 > Project: OJB > Type: New Feature > Components: PB-API > Versions: 1.1 CVS > Reporter: Martin Taal > Priority: Minor > > Hi, > In my model I have enumerates which are represented as a java object in > memory. An enumerate java object has an int and a String value. When the > owner object is persisted I want to convert the enumerate object to either > the int or the string and store it in a field. When the owner object is > retrieved then the primitive type database field should be translated into > the enumerate object. > It seems logical to use fieldconversions to achieve this, however the field > conversion interface only passes the value from the database and from this > database value it can not be determined which Enumerate object should be > created. This is so because different enumeratetypes can have the same value > (with a different meaning). To identify which enumerate object should be > created the fieldconversion interface could be extended so that also the > field descriptor is passed. > This is really just a very-low-priority-nice-to-have because there are many > workarounds, e.g. store the enumerate class in the field also (etc.). But > maybe somebody else also requires it or this has come-up earlier or maybe > field conversions are looked at anyhow for a new larger release. > gr. Martin Taal -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
