You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2007/04/09 11:01:55 UTC

svn commit: r526677 - in /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene: AbstractWeight.java MatchAllWeight.java RangeQuery.java WildcardQuery.java

Author: jukka
Date: Mon Apr  9 02:01:54 2007
New Revision: 526677

URL: http://svn.apache.org/viewvc?view=rev&rev=526677
Log:
JCR-835: Replaced the factory interface with an abstract factory method to avoid the troublesome anonymous inner instances.

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/AbstractWeight.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/MatchAllWeight.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/RangeQuery.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/WildcardQuery.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/AbstractWeight.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/AbstractWeight.java?view=diff&rev=526677&r1=526676&r2=526677
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/AbstractWeight.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/AbstractWeight.java Mon Apr  9 02:01:54 2007
@@ -35,11 +35,6 @@
     protected final Searcher searcher;
 
     /**
-     * The factory, which creates the scorer instances for this weight.
-     */
-    private final ScorerFactory factory;
-
-    /**
      * Creates a new <code>AbstractWeight</code> for the given
      * <code>searcher</code>. Specific scorer instances are created using the
      * provided scorer <code>factory</code>.
@@ -47,12 +42,22 @@
      * @param searcher the searcher instance for this weight.
      * @param factory the scorer factory.
      */
-    public AbstractWeight(Searcher searcher, ScorerFactory factory) {
+    public AbstractWeight(Searcher searcher) {
         this.searcher = searcher;
-        this.factory = factory;
     }
 
     /**
+     * Abstract factory method for crating a scorer instance for the
+     * specified reader.
+     *
+     * @param reader the index reader the created scorer instance should use
+     * @return the scorer instance
+     * @throws IOException if an error occurs while reading from the index
+     */
+    protected abstract Scorer createScorer(IndexReader reader)
+            throws IOException;
+
+    /**
      * {@inheritDoc}
      * <p/>
      * Returns a {@link MultiScorer} if the passed <code>reader</code> is of
@@ -76,23 +81,8 @@
 
             return new MultiScorer(searcher.getSimilarity(), scorers, starts);
         } else {
-            return factory.createScorer(reader);
+            return createScorer(reader);
         }
     }
 
-    /**
-     * Simple factory for creating scorer instances.
-     */
-    public interface ScorerFactory {
-
-        /**
-         * Creates a Scorer instance for the specified reader.
-         *
-         * @param reader the index reader the created scorer instance should
-         *               use.
-         * @return the scorer instance.
-         * @throws IOException if an error occurs while reading from the index.
-         */
-        public Scorer createScorer(IndexReader reader) throws IOException;
-    }
 }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/MatchAllWeight.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/MatchAllWeight.java?view=diff&rev=526677&r1=526676&r2=526677
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/MatchAllWeight.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/MatchAllWeight.java Mon Apr  9 02:01:54 2007
@@ -31,6 +31,11 @@
 class MatchAllWeight extends AbstractWeight {
 
     /**
+     * Name of the field to match.
+     */
+    private final String field;
+
+    /**
      * the MatchAllQuery
      */
     private final Query query;
@@ -53,14 +58,22 @@
     /**
      * @param query
      * @param searcher
+     * @param field name of the field to match 
      */
-    MatchAllWeight(Query query, Searcher searcher, final String field) {
-        super(searcher, new ScorerFactory() {
-            public Scorer createScorer(IndexReader reader) throws IOException {
-                return new MatchAllScorer(reader, field);
-            }
-        });
+    MatchAllWeight(Query query, Searcher searcher, String field) {
+        super(searcher);
         this.query = query;
+        this.field = field;
+    }
+
+    /**
+     * Creates a {@link MatchAllScorer} instance.
+     *
+     * @param reader index reader
+     * @return a {@link MatchAllScorer} instance
+     */
+    protected Scorer createScorer(IndexReader reader) throws IOException {
+        return new MatchAllScorer(reader, field);
     }
 
     /**

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/RangeQuery.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/RangeQuery.java?view=diff&rev=526677&r1=526676&r2=526677
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/RangeQuery.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/RangeQuery.java Mon Apr  9 02:01:54 2007
@@ -183,13 +183,19 @@
          *
          * @param searcher a <code>Searcher</code> instance.
          */
-        RangeQueryWeight(final Searcher searcher) {
-            super(searcher, new ScorerFactory() {
-                public Scorer createScorer(IndexReader reader) {
-                    return new RangeQueryScorer(searcher.getSimilarity(), reader);
-                }
-            });
+        RangeQueryWeight(Searcher searcher) {
+            super(searcher);
         }
+
+        /**
+         * Creates a {@link RangeQueryScorer} instance.
+         *
+         * @param reader index reader
+         * @return a {@link RangeQueryScorer} instance
+         */
+        protected Scorer createScorer(IndexReader reader) {
+            return new RangeQueryScorer(searcher.getSimilarity(), reader);
+        };
 
         /**
          * Returns this <code>RangeQuery</code>.

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/WildcardQuery.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/WildcardQuery.java?view=diff&rev=526677&r1=526676&r2=526677
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/WildcardQuery.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/WildcardQuery.java Mon Apr  9 02:01:54 2007
@@ -157,12 +157,18 @@
          *
          * @param searcher a <code>Searcher</code> instance.
          */
-        public WildcardQueryWeight(final Searcher searcher) {
-            super(searcher, new ScorerFactory() {
-                public Scorer createScorer(IndexReader reader) {
-                    return new WildcardQueryScorer(searcher.getSimilarity(), reader);
-                }
-            });
+        public WildcardQueryWeight(Searcher searcher) {
+            super(searcher);
+        }
+
+        /**
+         * Creates a {@link WildcardQueryScorer} instance.
+         *
+         * @param reader index reader
+         * @return a {@link WildcardQueryScorer} instance
+         */
+        protected Scorer createScorer(IndexReader reader) {
+            return new WildcardQueryScorer(searcher.getSimilarity(), reader);
         }
 
         /**