Hoss, thanks for kicking-in with your "design purist" hat on :)

about your proposal, 
"The best short term approach I can think of for addressing LUCENE-1219 
in 2.4: 
 1) list the new methods in a new interface that extends Fieldable 
    (ByteArrayReuseFieldable or something)
 2) add the new methods to AbstractField so that it implements 
    ByteArrayReuseFieldable 
 3) put an instanceof check for ByteArrayReuseFieldable in 
    DocumentsWriter. 
It's not pretty, but it's backwards compatible."


For short term, It is not even necessary to add new interface, we can, just 
like allready done in LUCENE-1219 add these methods to AbstractField and check 
instanceof for AbstractField. Keeps "not pretty" level a bit lower. 

But, If I read Mike's proposal well, he wanted to go one step further 
(preserving backwards compatibility, of course!).

Something along the lines:

1. Deprecate Fieldable
2. Fold Field and AbstractField into one class, e.g. Field implements Fieldable
3. replace all usages of Fildable in Lucene core with Field
4. deprecate,  the following methods in Document:
add(Fieldable field)
Fieldable getFieldable(String name)
Fieldable[] getFieldables(String name)
these are the only way for Fieldable to enter/leave Lucene core! 
5. Add equivalents that use Field

imo, this could work smoothly and would be good intermediate step for some real 
refactoring that would later (3.0) separate reading/Iindexing uses. 
 
 







      ___________________________________________________________ 
Rise to the challenge for Sport Relief with Yahoo! For Good  

http://uk.promotions.yahoo.com/forgood/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to