lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler" <...@thetaphi.de>
Subject RE: lucene-solr:master: Move non-inner classes to separate files: This breaks IDEs and update checks by javac
Date Mon, 16 May 2016 21:20:58 GMT
Hi,

I changed this because the non-inner classes in the same file made huge problems with Eclipse
which prevented me from editing the source code at all (it complained about duplicate definitions).
In general it is also not good to have those, because it leads to compile failures, because
ant and javac cannot correctly track the update dates of the files, because it cannot correlate
the class files of the along-the-way classes with the source file (for inner classes it can
do this). Those non-inner classes are really Java 1.0 like, since 1.1 they are discouraged,
also by OpenJDK.

I found out that there are more of those in the facets module. Can we change those to be real
*inner* classes or put them in separate files?

Uwe

-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: uwe@thetaphi.de

> -----Original Message-----
> From: uschindler@apache.org [mailto:uschindler@apache.org]
> Sent: Monday, May 16, 2016 7:54 PM
> To: commits@lucene.apache.org
> Subject: lucene-solr:master: Move non-inner classes to separate files: This
> breaks IDEs and update checks by javac
> 
> Repository: lucene-solr
> Updated Branches:
>   refs/heads/master 6620fd142 -> ae93f4e7a
> 
> 
> Move non-inner classes to separate files: This breaks IDEs and update checks
> by javac
> 
> 
> Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
> Commit: http://git-wip-us.apache.org/repos/asf/lucene-
> solr/commit/ae93f4e7
> Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/ae93f4e7
> Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/ae93f4e7
> 
> Branch: refs/heads/master
> Commit: ae93f4e7ac6a3908046391de35d4f50a0d3c59ca
> Parents: 6620fd1
> Author: Uwe Schindler <uschindler@apache.org>
> Authored: Mon May 16 19:54:10 2016 +0200
> Committer: Uwe Schindler <uschindler@apache.org>
> Committed: Mon May 16 19:54:10 2016 +0200
> 
> ----------------------------------------------------------------------
>  .../solr/search/facet/UniqueMultiDvSlotAcc.java |  86 ++++++++++
>  .../search/facet/UniqueMultivaluedSlotAcc.java  |  69 ++++++++
>  .../search/facet/UniqueSinglevaluedSlotAcc.java |  81 +++++++++
>  .../apache/solr/search/facet/UniqueSlotAcc.java | 165 -------------------
>  4 files changed, 236 insertions(+), 165 deletions(-)
> ----------------------------------------------------------------------
> 
> 
> http://git-wip-us.apache.org/repos/asf/lucene-
> solr/blob/ae93f4e7/solr/core/src/java/org/apache/solr/search/facet/Unique
> MultiDvSlotAcc.java
> ----------------------------------------------------------------------
> diff --git
> a/solr/core/src/java/org/apache/solr/search/facet/UniqueMultiDvSlotAcc.ja
> va
> b/solr/core/src/java/org/apache/solr/search/facet/UniqueMultiDvSlotAcc.ja
> va
> new file mode 100644
> index 0000000..4c29753
> --- /dev/null
> +++
> b/solr/core/src/java/org/apache/solr/search/facet/UniqueMultiDvSlotAcc.ja
> va
> @@ -0,0 +1,86 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one or more
> + * contributor license agreements.  See the NOTICE file distributed with
> + * this work for additional information regarding copyright ownership.
> + * The ASF licenses this file to You under the Apache License, Version 2.0
> + * (the "License"); you may not use this file except in compliance with
> + * the License.  You may obtain a copy of the License at
> + *
> + *     http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +
> +package org.apache.solr.search.facet;
> +
> +import java.io.IOException;
> +
> +import org.apache.lucene.index.LeafReaderContext;
> +import org.apache.lucene.index.MultiDocValues;
> +import org.apache.lucene.index.SortedSetDocValues;
> +import org.apache.lucene.util.BytesRef;
> +import org.apache.lucene.util.FixedBitSet;
> +import org.apache.lucene.util.LongValues;
> +import org.apache.solr.search.SolrIndexSearcher;
> +
> +class UniqueMultiDvSlotAcc extends UniqueSlotAcc {
> +  final SortedSetDocValues topLevel;
> +  final SortedSetDocValues[] subDvs;
> +  final MultiDocValues.OrdinalMap ordMap;
> +  LongValues toGlobal;
> +  SortedSetDocValues subDv;
> +
> +  public UniqueMultiDvSlotAcc(FacetContext fcontext, String field, int
> numSlots, HLLAgg.HLLFactory factory) throws IOException {
> +    super(fcontext, field, numSlots, factory);
> +    SolrIndexSearcher searcher = fcontext.qcontext.searcher();
> +    topLevel = FieldUtil.getSortedSetDocValues(fcontext.qcontext,
> searcher.getSchema().getField(field), null);
> +    nTerms = (int) topLevel.getValueCount();
> +    if (topLevel instanceof MultiDocValues.MultiSortedSetDocValues) {
> +      ordMap = ((MultiDocValues.MultiSortedSetDocValues)
> topLevel).mapping;
> +      subDvs = ((MultiDocValues.MultiSortedSetDocValues) topLevel).values;
> +    } else {
> +      ordMap = null;
> +      subDvs = null;
> +    }
> +  }
> +
> +  @Override
> +  protected BytesRef lookupOrd(int ord) {
> +    return topLevel.lookupOrd(ord);
> +  }
> +
> +  @Override
> +  public void setNextReader(LeafReaderContext readerContext) throws
> IOException {
> +    super.setNextReader(readerContext);
> +    if (subDvs != null) {
> +      subDv = subDvs[readerContext.ord];
> +      toGlobal = ordMap.getGlobalOrds(readerContext.ord);
> +    } else {
> +      assert readerContext.ord==0 || topLevel.getValueCount() == 0;
> +      subDv = topLevel;
> +    }
> +  }
> +
> +  @Override
> +  public void collect(int doc, int slotNum) {
> +    subDv.setDocument(doc);
> +    int segOrd = (int) subDv.nextOrd();
> +    if (segOrd < 0) return;
> +
> +    FixedBitSet bits = arr[slotNum];
> +    if (bits == null) {
> +      bits = new FixedBitSet(nTerms);
> +      arr[slotNum] = bits;
> +    }
> +
> +    do {
> +      int ord = toGlobal == null ? segOrd : (int) toGlobal.get(segOrd);
> +      bits.set(ord);
> +      segOrd = (int) subDv.nextOrd();
> +    } while (segOrd >= 0);
> +  }
> +}
> \ No newline at end of file
> 
> http://git-wip-us.apache.org/repos/asf/lucene-
> solr/blob/ae93f4e7/solr/core/src/java/org/apache/solr/search/facet/Unique
> MultivaluedSlotAcc.java
> ----------------------------------------------------------------------
> diff --git
> a/solr/core/src/java/org/apache/solr/search/facet/UniqueMultivaluedSlotA
> cc.java
> b/solr/core/src/java/org/apache/solr/search/facet/UniqueMultivaluedSlotA
> cc.java
> new file mode 100644
> index 0000000..56a498e
> --- /dev/null
> +++
> b/solr/core/src/java/org/apache/solr/search/facet/UniqueMultivaluedSlotA
> cc.java
> @@ -0,0 +1,69 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one or more
> + * contributor license agreements.  See the NOTICE file distributed with
> + * this work for additional information regarding copyright ownership.
> + * The ASF licenses this file to You under the Apache License, Version 2.0
> + * (the "License"); you may not use this file except in compliance with
> + * the License.  You may obtain a copy of the License at
> + *
> + *     http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +
> +package org.apache.solr.search.facet;
> +
> +import java.io.IOException;
> +
> +import org.apache.lucene.util.BytesRef;
> +import org.apache.lucene.util.FixedBitSet;
> +import org.apache.solr.search.SolrIndexSearcher;
> +
> +class UniqueMultivaluedSlotAcc extends UniqueSlotAcc implements
> UnInvertedField.Callback {
> +  private UnInvertedField uif;
> +  private UnInvertedField.DocToTerm docToTerm;
> +
> +  public UniqueMultivaluedSlotAcc(FacetContext fcontext, String field, int
> numSlots, HLLAgg.HLLFactory factory) throws IOException {
> +    super(fcontext, field, numSlots, factory);
> +    SolrIndexSearcher searcher = fcontext.qcontext.searcher();
> +    uif = UnInvertedField.getUnInvertedField(field, searcher);
> +    docToTerm = uif.new DocToTerm();
> +    fcontext.qcontext.addCloseHook(this);  // TODO: find way to close
> accumulators instead of using close hook?
> +    nTerms = uif.numTerms();
> +  }
> +
> +  @Override
> +  protected BytesRef lookupOrd(int ord) throws IOException {
> +    return docToTerm.lookupOrd(ord);
> +  }
> +
> +  private FixedBitSet bits;  // bits for the current slot, only set for the callback
> +
> +  @Override
> +  public void call(int termNum) {
> +    bits.set(termNum);
> +  }
> +
> +  @Override
> +  public void collect(int doc, int slotNum) throws IOException {
> +    bits = arr[slotNum];
> +    if (bits == null) {
> +      bits = new FixedBitSet(nTerms);
> +      arr[slotNum] = bits;
> +    }
> +    docToTerm.getBigTerms(doc + currentDocBase, this);  // this will call back
> to our Callback.call(int termNum)
> +    docToTerm.getSmallTerms(doc + currentDocBase, this);
> +  }
> +
> +  @Override
> +  public void close() throws IOException {
> +    if (docToTerm != null) {
> +      docToTerm.close();
> +      docToTerm = null;
> +    }
> +  }
> +}
> \ No newline at end of file
> 
> http://git-wip-us.apache.org/repos/asf/lucene-
> solr/blob/ae93f4e7/solr/core/src/java/org/apache/solr/search/facet/Unique
> SinglevaluedSlotAcc.java
> ----------------------------------------------------------------------
> diff --git
> a/solr/core/src/java/org/apache/solr/search/facet/UniqueSinglevaluedSlotA
> cc.java
> b/solr/core/src/java/org/apache/solr/search/facet/UniqueSinglevaluedSlotA
> cc.java
> new file mode 100644
> index 0000000..c67fd47
> --- /dev/null
> +++
> b/solr/core/src/java/org/apache/solr/search/facet/UniqueSinglevaluedSlotA
> cc.java
> @@ -0,0 +1,81 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one or more
> + * contributor license agreements.  See the NOTICE file distributed with
> + * this work for additional information regarding copyright ownership.
> + * The ASF licenses this file to You under the Apache License, Version 2.0
> + * (the "License"); you may not use this file except in compliance with
> + * the License.  You may obtain a copy of the License at
> + *
> + *     http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +
> +package org.apache.solr.search.facet;
> +
> +import java.io.IOException;
> +
> +import org.apache.lucene.index.LeafReaderContext;
> +import org.apache.lucene.index.MultiDocValues;
> +import org.apache.lucene.index.SortedDocValues;
> +import org.apache.lucene.util.BytesRef;
> +import org.apache.lucene.util.FixedBitSet;
> +import org.apache.lucene.util.LongValues;
> +import org.apache.solr.search.SolrIndexSearcher;
> +
> +class UniqueSinglevaluedSlotAcc extends UniqueSlotAcc {
> +  final SortedDocValues topLevel;
> +  final SortedDocValues[] subDvs;
> +  final MultiDocValues.OrdinalMap ordMap;
> +  LongValues toGlobal;
> +  SortedDocValues subDv;
> +
> +  public UniqueSinglevaluedSlotAcc(FacetContext fcontext, String field, int
> numSlots, HLLAgg.HLLFactory factory) throws IOException {
> +    super(fcontext, field, numSlots, factory);
> +    SolrIndexSearcher searcher = fcontext.qcontext.searcher();
> +    topLevel = FieldUtil.getSortedDocValues(fcontext.qcontext,
> searcher.getSchema().getField(field), null);
> +    nTerms = topLevel.getValueCount();
> +    if (topLevel instanceof MultiDocValues.MultiSortedDocValues) {
> +      ordMap = ((MultiDocValues.MultiSortedDocValues)topLevel).mapping;
> +      subDvs = ((MultiDocValues.MultiSortedDocValues)topLevel).values;
> +    } else {
> +      ordMap = null;
> +      subDvs = null;
> +    }
> +  }
> +
> +  @Override
> +  protected BytesRef lookupOrd(int ord) {
> +    return topLevel.lookupOrd(ord);
> +  }
> +
> +  @Override
> +  public void setNextReader(LeafReaderContext readerContext) throws
> IOException {
> +    super.setNextReader(readerContext);
> +    if (subDvs != null) {
> +      subDv = subDvs[readerContext.ord];
> +      toGlobal = ordMap.getGlobalOrds(readerContext.ord);
> +    } else {
> +      assert readerContext.ord==0 || topLevel.getValueCount() == 0;
> +      subDv = topLevel;
> +    }
> +  }
> +
> +  @Override
> +  public void collect(int doc, int slotNum) {
> +    int segOrd = subDv.getOrd(doc);
> +    if (segOrd < 0) return;  // -1 means missing
> +    int ord = toGlobal==null ? segOrd : (int)toGlobal.get(segOrd);
> +
> +    FixedBitSet bits = arr[slotNum];
> +    if (bits == null) {
> +      bits = new FixedBitSet(nTerms);
> +      arr[slotNum] = bits;
> +    }
> +    bits.set(ord);
> +  }
> +}
> \ No newline at end of file
> 
> http://git-wip-us.apache.org/repos/asf/lucene-
> solr/blob/ae93f4e7/solr/core/src/java/org/apache/solr/search/facet/Unique
> SlotAcc.java
> ----------------------------------------------------------------------
> diff --git
> a/solr/core/src/java/org/apache/solr/search/facet/UniqueSlotAcc.java
> b/solr/core/src/java/org/apache/solr/search/facet/UniqueSlotAcc.java
> index 94532f7..9f9e9b1 100644
> --- a/solr/core/src/java/org/apache/solr/search/facet/UniqueSlotAcc.java
> +++ b/solr/core/src/java/org/apache/solr/search/facet/UniqueSlotAcc.java
> @@ -22,17 +22,12 @@ import java.util.List;
> 
>  import org.apache.solr.util.hll.HLL;
>  import org.apache.lucene.index.LeafReaderContext;
> -import org.apache.lucene.index.MultiDocValues;
> -import org.apache.lucene.index.SortedDocValues;
> -import org.apache.lucene.index.SortedSetDocValues;
>  import org.apache.lucene.search.DocIdSetIterator;
>  import org.apache.lucene.util.BytesRef;
>  import org.apache.lucene.util.FixedBitSet;
> -import org.apache.lucene.util.LongValues;
>  import org.apache.solr.common.util.Hash;
>  import org.apache.solr.common.util.SimpleOrderedMap;
>  import org.apache.solr.schema.SchemaField;
> -import org.apache.solr.search.SolrIndexSearcher;
> 
>  abstract class UniqueSlotAcc extends SlotAcc {
>    HLLAgg.HLLFactory factory;
> @@ -161,164 +156,4 @@ abstract class UniqueSlotAcc extends SlotAcc {
>    public void resize(Resizer resizer) {
>      arr = resizer.resize(arr, null);
>    }
> -}
> -
> -
> -class UniqueSinglevaluedSlotAcc extends UniqueSlotAcc {
> -  final SortedDocValues topLevel;
> -  final SortedDocValues[] subDvs;
> -  final MultiDocValues.OrdinalMap ordMap;
> -  LongValues toGlobal;
> -  SortedDocValues subDv;
> -
> -  public UniqueSinglevaluedSlotAcc(FacetContext fcontext, String field, int
> numSlots, HLLAgg.HLLFactory factory) throws IOException {
> -    super(fcontext, field, numSlots, factory);
> -    SolrIndexSearcher searcher = fcontext.qcontext.searcher();
> -    topLevel = FieldUtil.getSortedDocValues(fcontext.qcontext,
> searcher.getSchema().getField(field), null);
> -    nTerms = topLevel.getValueCount();
> -    if (topLevel instanceof MultiDocValues.MultiSortedDocValues) {
> -      ordMap = ((MultiDocValues.MultiSortedDocValues)topLevel).mapping;
> -      subDvs = ((MultiDocValues.MultiSortedDocValues)topLevel).values;
> -    } else {
> -      ordMap = null;
> -      subDvs = null;
> -    }
> -  }
> -
> -  @Override
> -  protected BytesRef lookupOrd(int ord) {
> -    return topLevel.lookupOrd(ord);
> -  }
> -
> -  @Override
> -  public void setNextReader(LeafReaderContext readerContext) throws
> IOException {
> -    super.setNextReader(readerContext);
> -    if (subDvs != null) {
> -      subDv = subDvs[readerContext.ord];
> -      toGlobal = ordMap.getGlobalOrds(readerContext.ord);
> -    } else {
> -      assert readerContext.ord==0 || topLevel.getValueCount() == 0;
> -      subDv = topLevel;
> -    }
> -  }
> -
> -  @Override
> -  public void collect(int doc, int slotNum) {
> -    int segOrd = subDv.getOrd(doc);
> -    if (segOrd < 0) return;  // -1 means missing
> -    int ord = toGlobal==null ? segOrd : (int)toGlobal.get(segOrd);
> -
> -    FixedBitSet bits = arr[slotNum];
> -    if (bits == null) {
> -      bits = new FixedBitSet(nTerms);
> -      arr[slotNum] = bits;
> -    }
> -    bits.set(ord);
> -  }
> -}
> -
> -
> -class UniqueMultiDvSlotAcc extends UniqueSlotAcc {
> -  final SortedSetDocValues topLevel;
> -  final SortedSetDocValues[] subDvs;
> -  final MultiDocValues.OrdinalMap ordMap;
> -  LongValues toGlobal;
> -  SortedSetDocValues subDv;
> -
> -  public UniqueMultiDvSlotAcc(FacetContext fcontext, String field, int
> numSlots, HLLAgg.HLLFactory factory) throws IOException {
> -    super(fcontext, field, numSlots, factory);
> -    SolrIndexSearcher searcher = fcontext.qcontext.searcher();
> -    topLevel = FieldUtil.getSortedSetDocValues(fcontext.qcontext,
> searcher.getSchema().getField(field), null);
> -    nTerms = (int) topLevel.getValueCount();
> -    if (topLevel instanceof MultiDocValues.MultiSortedSetDocValues) {
> -      ordMap = ((MultiDocValues.MultiSortedSetDocValues)
> topLevel).mapping;
> -      subDvs = ((MultiDocValues.MultiSortedSetDocValues) topLevel).values;
> -    } else {
> -      ordMap = null;
> -      subDvs = null;
> -    }
> -  }
> -
> -  @Override
> -  protected BytesRef lookupOrd(int ord) {
> -    return topLevel.lookupOrd(ord);
> -  }
> -
> -  @Override
> -  public void setNextReader(LeafReaderContext readerContext) throws
> IOException {
> -    super.setNextReader(readerContext);
> -    if (subDvs != null) {
> -      subDv = subDvs[readerContext.ord];
> -      toGlobal = ordMap.getGlobalOrds(readerContext.ord);
> -    } else {
> -      assert readerContext.ord==0 || topLevel.getValueCount() == 0;
> -      subDv = topLevel;
> -    }
> -  }
> -
> -  @Override
> -  public void collect(int doc, int slotNum) {
> -    subDv.setDocument(doc);
> -    int segOrd = (int) subDv.nextOrd();
> -    if (segOrd < 0) return;
> -
> -    FixedBitSet bits = arr[slotNum];
> -    if (bits == null) {
> -      bits = new FixedBitSet(nTerms);
> -      arr[slotNum] = bits;
> -    }
> -
> -    do {
> -      int ord = toGlobal == null ? segOrd : (int) toGlobal.get(segOrd);
> -      bits.set(ord);
> -      segOrd = (int) subDv.nextOrd();
> -    } while (segOrd >= 0);
> -  }
> -}
> -
> -
> -
> -class UniqueMultivaluedSlotAcc extends UniqueSlotAcc implements
> UnInvertedField.Callback {
> -  private UnInvertedField uif;
> -  private UnInvertedField.DocToTerm docToTerm;
> -
> -  public UniqueMultivaluedSlotAcc(FacetContext fcontext, String field, int
> numSlots, HLLAgg.HLLFactory factory) throws IOException {
> -    super(fcontext, field, numSlots, factory);
> -    SolrIndexSearcher searcher = fcontext.qcontext.searcher();
> -    uif = UnInvertedField.getUnInvertedField(field, searcher);
> -    docToTerm = uif.new DocToTerm();
> -    fcontext.qcontext.addCloseHook(this);  // TODO: find way to close
> accumulators instead of using close hook?
> -    nTerms = uif.numTerms();
> -  }
> -
> -  @Override
> -  protected BytesRef lookupOrd(int ord) throws IOException {
> -    return docToTerm.lookupOrd(ord);
> -  }
> -
> -  private FixedBitSet bits;  // bits for the current slot, only set for the callback
> -
> -  @Override
> -  public void call(int termNum) {
> -    bits.set(termNum);
> -  }
> -
> -  @Override
> -  public void collect(int doc, int slotNum) throws IOException {
> -    bits = arr[slotNum];
> -    if (bits == null) {
> -      bits = new FixedBitSet(nTerms);
> -      arr[slotNum] = bits;
> -    }
> -    docToTerm.getBigTerms(doc + currentDocBase, this);  // this will call back
> to our Callback.call(int termNum)
> -    docToTerm.getSmallTerms(doc + currentDocBase, this);
> -  }
> -
> -  @Override
> -  public void close() throws IOException {
> -    if (docToTerm != null) {
> -      docToTerm.close();
> -      docToTerm = null;
> -    }
> -  }
>  }
> \ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message