Mamta Satoor wrote:
If we decide to provide static interface on DataValueFactory, then the Locale field and the RuleBasedCollator will need to be static too since we the static interfaces will need access to RuleBasedCollator. Because of this I am leaning more towards have non-static interface on DVF to get the correct DVD. I wonder if store in it's boot method can get the DataValueFactory with something like following DataValueFactory dvf = (DataValueFactory) Monitor.bootServiceModule(create, this, org.apache.derby.iapi.reference.ClassName.DataValueFactory, startParams);
And then use this dvf to construct the DVD template row.
As for the DTSClassInfo, the earlier discussion on this topic (http://www.nabble.com/Collation-implementation-WAS-Re%3A-Should-COLLATION-attribute-related-code-go-in-BasicDatabase--p9496608.html <http://www.nabble.com/Collation-implementation-WAS-Re%3A-Should-COLLATION-attribute-related-code-go-in-BasicDatabase--p9496608.html>) was to first just get the DVD based on the format id and then check if dvd is instance of StringDataValue and if so, then call getValue on that dvd to get collation sensitive implementations of character DVD classes. I copied following from http://www.nabble.com/Collation-implementation-WAS-Re%3A-Should-COLLATION-attribute-related-code-go-in-BasicDatabase--p9496608.html <http://www.nabble.com/Collation-implementation-WAS-Re%3A-Should-COLLATION-attribute-related-code-go-in-BasicDatabase--p9496608.html>
if (dvd instanceof StringDataValue)
             dvd = dvd.getValue(dvf.getCharacterCollator(type));
I was working off the assumption from the following thread that datavalue factory would provide the high level interface to get a dvd based on format id and collate id. And if the work you describe above is necessary it would be hidden behind the interface:
http://www.nabble.com/Should-COLLATION-attribute-related-code-go-in-BasicDatabase--tf3397113.html#a9583739

I'll look at building/using DataFactory interface. It will be some additional overhead for straight path through store, but should be
minimal.  Will need help in actual implementation of interface to
get right values - but I can submit an initial implementation that
just works for default collations first.

BTW, I will add getCharacterCollator method on DVF when I am in there to add RuleBasedCollator field. Mamta

On 4/11/07, *Mike Matrigali* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:



    Mamta Satoor wrote:
     > Hi Mike,
     >
     > I think the code should go in iapi.types.DataValueFactory . DVF has
    currently DataValueFactory is an interface.  Do you have opinions
    about providing a static interface as is currently provided by
    the Monitor?

     > Locale of the database initialized on it by BasicDatabase using
     > setLocale method. I will go ahead and change that method to also
     > initialize a RuleBasedCollator field using the Locale field. This
     > RuleBasedCollator will be used to construct CollatorSQLChar and
    other
     > kinds of CollatorSQL... classes if the collation associated with
    format
     > id is not 0.
     >
     > Let me look at how actual objects are created using DTSClassInfo
    to see
     > how it might fit into the puzzle.
    the class is very straight forward, just take a look.  just a straight
    mapping of format ids to classes.
     >
     > thanks,
     > Mamta
     >
     > On 4/11/07, *Mike Matrigali* < [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
     > <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>> wrote:
     >
     >     o The suggestion has been made to move the object creation
     >       stuff from montior to data type code.  Currently the monitor
     >       routines are called as static's off of a public class.  Should
     >       I create a similar "datatype" owned class or just move the
     >       code into the datatype factory and make store tote and pass
     >       around a datatypefactory reference where it needs it.
     >
     >     o In looking at implementation I see that actual objects get
     >       allocated by DTSClassInfo.getNewInstance() which is just
     >       based off of the format id.  I am wondering if the proposal
     >       is to change this behavior to something like
     >       DTSClassInfo.getNewInstance (collation_id)?
     >
     >



Reply via email to