On 24/07/07, James Rutherford <[EMAIL PROTECTED]> wrote: > On Tue, Jul 24, 2007 at 10:12:52AM -0400, Robert Tansley wrote: > > >But, I think we are getting a little tied up around the idea that it may > > >only be a single implementation that has all these possibilities > > >available as configuration options - and that need not be the case at > > >all. > > > > +1 - I doubt we could come up with one uber-flexible implementation > > which an exhaustive set of options that takes care of the lot. It's > > probably better to providing an interface which lets people drop in > > different implementations that implement any complex policy they > > choose. > > OK, this is starting to sound like a more reasonable attack. I'm still > not 100% sure I understand how this approach will help, but I could just > be misunderstanding what you're getting at. In my opinion, the class > that understands (eg) Handles shouldn't be in charge of deciding where > it attaches itself to objects. Or do you mean implementations of the > ExternalIdentifierManager?
I've been round this question myself a number of times! The problem is I'm not sure how easy it is to disentangle the logic of assigning IDs (what gets an ID of what form) and minting IDs. If the 'Handle' piece of the implementation could be as simple as a 'mint' method (i.e. if all identifiers were context-free) it would be easy to abstract out. However, IDs may depend both on the object type and related objects -- e.g. bitstream IDs may include the item ID as a path component, or the version number etc -- and the ID scheme itself. So maybe the 'assignment' interface is as simple as an Event listener/consumer, that decides based on the event and examination of the object whether and what identifier should be assigned Then it just needs to register somewhere else (maybe even just adding it to object metadata) that the new ID is assigned to that object and the rest of the DSpace system is happy. You could create a flexible Handle system class that could sit behind a couple of different implementations of the above (e.g. a context-free one, and one that assigns contextual bitstream IDs, for example) but I find it hard to believe that a single interface would be sufficient for all different ID schemes (Handle, info:, PURL, UUID, ...) Rob ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ DSpace-tech mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/dspace-tech

