Fat fingers.. rather than proliferate constructors, WDYT about a builder pattern?
On Sun, Sep 9, 2018, 10:27 Namgyu Kim (JIRA) <j...@apache.org> wrote: > > [ > https://issues.apache.org/jira/browse/LUCENE-8489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel > ] > > Namgyu Kim updated LUCENE-8489: > ------------------------------- > Attachment: LUCENE-8489.patch > > > Provide List type constructors for BaseCompositeReader based Readers > > -------------------------------------------------------------------- > > > > Key: LUCENE-8489 > > URL: https://issues.apache.org/jira/browse/LUCENE-8489 > > Project: Lucene - Core > > Issue Type: Improvement > > Components: core/index > > Reporter: Namgyu Kim > > Priority: Major > > Labels: usability > > Attachments: LUCENE-8489.patch > > > > > > Currently, Reader based on BaseCompositeReader(MultiReader, > ParallelCompositeReader, DirectoryReader) does not support List type > constructor. > > In fact, this does not make a big difference in performance, but users > will think positively if the API supports more variants. > > I will add the following to support this. > > 1) MultiReader > > {code:java} > > public MultiReader(List<IndexReader> subReaders) throws IOException { > > this(subReaders, true); > > } > > public MultiReader(List<IndexReader> subReaders, boolean > closeSubReaders) throws IOException { > > this(subReaders.toArray(new IndexReader[0]), closeSubReaders); > > } > > {code} > > 2) ParallelCompositeReader > > {code:java} > > public ParallelCompositeReader(List<CompositeReader> readers) throws > IOException { > > this(true, readers); > > } > > public ParallelCompositeReader(boolean closeSubReaders, > List<CompositeReader> readers) throws IOException { > > this(closeSubReaders, readers, readers); > > } > > public ParallelCompositeReader(boolean closeSubReaders, > List<CompositeReader> readers, List<CompositeReader> storedFieldReaders) > throws IOException { > > this(closeSubReaders, readers.toArray(new CompositeReader[0]), > storedFieldReaders.toArray(new CompositeReader[0])); > > } > > {code} > > 3) DirectoryReader > > {code:java} > > protected DirectoryReader(Directory directory, List<LeafReader> > segmentReaders) throws IOException { > > super(segmentReaders); > > this.directory = directory; > > } > > {code} > > 4) BaseCompositeReader > > {code:java} > > @SuppressWarnings("unchecked") > > protected BaseCompositeReader(List<R> subReaders) throws IOException { > > this(subReaders.toArray((R[]) new IndexReader[subReaders.size()])); > > } > > {code} > > 5) Test > > I wrote a test case in "TestParallelCompositeReader". > > If you have any questions or requests, please left any comments :D > > > > -- > This message was sent by Atlassian JIRA > (v7.6.3#76005) > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org > For additional commands, e-mail: dev-h...@lucene.apache.org > >