lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From eks dev <>
Subject Re: Fieldable, AbstractField, Field
Date Wed, 19 Mar 2008 10:45:55 GMT
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 
 3) put an instanceof check for ByteArrayReuseFieldable in 
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

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message