Author: mickw
Date: 2006-04-03 08:56:26 +0200 (Mon, 03 Apr 2006)
New Revision: 2693

Modified:
   
trunk/src/java/no/schibstedsok/front/searchportal/command/NewsSearchCommand.java
   trunk/src/java/no/schibstedsok/front/searchportal/query/Query.java
   
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/AbstractQuery.java
   
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/PhraseClauseImpl.java
   
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/WordClauseImpl.java
   
trunk/src/java/no/schibstedsok/front/searchportal/query/token/RegExpEvaluatorFactory.java
   
trunk/src/java/no/schibstedsok/front/searchportal/query/token/TokenPredicate.java
   
trunk/src/java/no/schibstedsok/front/searchportal/query/transform/PrefixRemoverTransformer.java
Log:
compile errors fixed from last commit regarding SEARCH-390 & SEARCH-489.


Modified: 
trunk/src/java/no/schibstedsok/front/searchportal/command/NewsSearchCommand.java
===================================================================
--- 
trunk/src/java/no/schibstedsok/front/searchportal/command/NewsSearchCommand.java
    2006-04-03 06:17:39 UTC (rev 2692)
+++ 
trunk/src/java/no/schibstedsok/front/searchportal/command/NewsSearchCommand.java
    2006-04-03 06:56:26 UTC (rev 2693)
@@ -103,9 +103,12 @@
     }
     
     private boolean containsJustThePrefix() {
-        return context.getQuery().getRootClause() == 
context.getQuery().getFirstLeafClause() 
-          && 
(context.getQuery().getFirstLeafClause().getKnownPredicates().contains(TokenPredicate.NEWSPREFIX)
 
-              || 
context.getQuery().getFirstLeafClause().getPossiblePredicates().contains(TokenPredicate.NEWSPREFIX));
+
+        final LeafClause firstLeaf = context.getQuery().getFirstLeafClause();
+
+        return context.getQuery().getRootClause() == firstLeaf
+          && 
(firstLeaf.getKnownPredicates().contains(TokenPredicate.NEWS_MAGIC)
+              || 
firstLeaf.getPossiblePredicates().contains(TokenPredicate.NEWS_MAGIC));
     }
     
     

Modified: trunk/src/java/no/schibstedsok/front/searchportal/query/Query.java
===================================================================
--- trunk/src/java/no/schibstedsok/front/searchportal/query/Query.java  
2006-04-03 06:17:39 UTC (rev 2692)
+++ trunk/src/java/no/schibstedsok/front/searchportal/query/Query.java  
2006-04-03 06:56:26 UTC (rev 2693)
@@ -31,7 +31,7 @@
      *
      * @return the first leaf clause.
      */
-    Clause getFirstLeafClause();
+    LeafClause getFirstLeafClause();
 
     /** Return the number of terms in this query.
      * Terms are represented by LeafClauses.

Modified: 
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/AbstractQuery.java
===================================================================
--- 
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/AbstractQuery.java
   2006-04-03 06:17:39 UTC (rev 2692)
+++ 
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/AbstractQuery.java
   2006-04-03 06:56:26 UTC (rev 2693)
@@ -50,7 +50,7 @@
     /**
      * [EMAIL PROTECTED]
      */
-    public Clause getFirstLeafClause() {
+    public LeafClause getFirstLeafClause() {
         return finder.getFirstLeaf();
     }
 
@@ -60,9 +60,9 @@
 
     private final class FirstLeafFinder extends AbstractReflectionVisitor {
         private boolean searching = true;
-        private Clause firstLeaf;
+        private LeafClause firstLeaf;
 
-        public synchronized Clause getFirstLeaf() {
+        public synchronized LeafClause getFirstLeaf() {
             if( firstLeaf == null ){
                 // hasn't been run yet.
                 visit(getRootClause());

Modified: 
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/PhraseClauseImpl.java
===================================================================
--- 
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/PhraseClauseImpl.java
        2006-04-03 06:17:39 UTC (rev 2692)
+++ 
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/PhraseClauseImpl.java
        2006-04-03 06:56:26 UTC (rev 2693)
@@ -34,14 +34,12 @@
         final Collection<TokenPredicate> predicates = new ArrayList();
         predicates.add(TokenPredicate.ALWAYSTRUE);
         // Predicates from RegExpEvaluators
-        predicates.add(TokenPredicate.PICTUREPREFIX);
-        predicates.add(TokenPredicate.NEWSPREFIX);
-        predicates.add(TokenPredicate.WIKIPEDIAPREFIX);
-        predicates.add(TokenPredicate.TVPREFIX);
-        predicates.add(TokenPredicate.COMPANYSUFFIX);
-        predicates.add(TokenPredicate.WEATHERPREFIX);
-        predicates.add(TokenPredicate.CATALOGUEPREFIX);
+        predicates.addAll(TokenPredicate.getTriggerTokenPredicates());
+
         predicates.add(TokenPredicate.ORGNR);
+        predicates.add(TokenPredicate.COMPANYSUFFIX);
+        predicates.add(TokenPredicate.SITEPREFIX);
+        
         // Add all FastTokenPredicates
         predicates.addAll(TokenPredicate.getFastTokenPredicates());
         PREDICATES_APPLICABLE = Collections.unmodifiableCollection(predicates);

Modified: 
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/WordClauseImpl.java
===================================================================
--- 
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/WordClauseImpl.java
  2006-04-03 06:17:39 UTC (rev 2692)
+++ 
trunk/src/java/no/schibstedsok/front/searchportal/query/parser/WordClauseImpl.java
  2006-04-03 06:56:26 UTC (rev 2693)
@@ -35,14 +35,14 @@
         final Collection<TokenPredicate> predicates = new ArrayList();
         predicates.add(TokenPredicate.ALWAYSTRUE);
         // Predicates from RegExpEvaluators
-        predicates.add(TokenPredicate.PICTUREPREFIX);
-        predicates.add(TokenPredicate.NEWSPREFIX);
-        predicates.add(TokenPredicate.WIKIPEDIAPREFIX);
-        predicates.add(TokenPredicate.TVPREFIX);
+        predicates.addAll(TokenPredicate.getMagicTokenPredicates());
+        predicates.addAll(TokenPredicate.getTriggerTokenPredicates());
+
+
         predicates.add(TokenPredicate.COMPANYSUFFIX);
-        predicates.add(TokenPredicate.WEATHERPREFIX);
-        predicates.add(TokenPredicate.SKIINFOPREFIX);
-        predicates.add(TokenPredicate.ONLYSKIINFOPREFIX);
+        predicates.add(TokenPredicate.ORGNR);
+        predicates.add(TokenPredicate.SITEPREFIX);        
+
         // Add all FastTokenPredicates
         predicates.addAll(TokenPredicate.getFastTokenPredicates());
         PREDICATES_APPLICABLE = Collections.unmodifiableCollection(predicates);

Modified: 
trunk/src/java/no/schibstedsok/front/searchportal/query/token/RegExpEvaluatorFactory.java
===================================================================
--- 
trunk/src/java/no/schibstedsok/front/searchportal/query/token/RegExpEvaluatorFactory.java
   2006-04-03 06:17:39 UTC (rev 2692)
+++ 
trunk/src/java/no/schibstedsok/front/searchportal/query/token/RegExpEvaluatorFactory.java
   2006-04-03 06:56:26 UTC (rev 2693)
@@ -104,37 +104,31 @@
                 final String tokenName = evaluator.getAttribute("token");
                 LOG.debug(" ->[EMAIL PROTECTED]: " + tokenName);
 
-                try  {
-                    final TokenPredicate token = 
TokenPredicate.valueOf(tokenName);
+                final TokenPredicate token = TokenPredicate.valueOf(tokenName);
 
-                    final boolean queryDep = 
Boolean.parseBoolean(evaluator.getAttribute("query-dependant"));
-                    LOG.debug(" ->[EMAIL PROTECTED]: " + queryDep);
+                final boolean queryDep = 
Boolean.parseBoolean(evaluator.getAttribute("query-dependant"));
+                LOG.debug(" ->[EMAIL PROTECTED]: " + queryDep);
 
-                    final Collection compiled = new ArrayList();
+                final Collection compiled = new ArrayList();
 
-                    final NodeList patterns = ((Element) 
evaluator).getElementsByTagName("pattern");
-                    for (int j = 0; j < patterns.getLength(); ++j) {
-                        final Element pattern = (Element) patterns.item(j);
-                        
-                        final String expression = 
pattern.getFirstChild().getNodeValue();
-                        LOG.debug(" --->pattern: " + expression);
-                        
-                        // (^|\s) or ($|\s) is neccessary to avoid matching 
fragments of words.
-                        final String prefix = expression.startsWith("^") ? "" 
: "(^|\\s)";
-                        final String suffix = expression.endsWith("$") ? "" : 
"($|\\s)";
-                        // compile pattern
-                        final Pattern p = Pattern.compile(prefix + expression 
+ suffix, REG_EXP_OPTIONS);
-                        compiled.add(p);
-                    }
+                final NodeList patterns = ((Element) 
evaluator).getElementsByTagName("pattern");
+                for (int j = 0; j < patterns.getLength(); ++j) {
+                    final Element pattern = (Element) patterns.item(j);
 
-                    final RegExpTokenEvaluator regExpTokenEvaluator = new 
RegExpTokenEvaluator(compiled, queryDep);
-                    regExpEvaluators.put(token, regExpTokenEvaluator);
-                    
-                }  catch (NoSuchFieldException ex) {
-                    LOG.error(ERR_COULD_NOT_FIND_TOKEN_PREDICATE, ex);
-                }  catch (IllegalAccessException ex) {
-                    LOG.error(ERR_COULD_NOT_FIND_TOKEN_PREDICATE, ex);
+                    final String expression = 
pattern.getFirstChild().getNodeValue();
+                    LOG.debug(" --->pattern: " + expression);
+
+                    // (^|\s) or ($|\s) is neccessary to avoid matching 
fragments of words.
+                    final String prefix = expression.startsWith("^") ? "" : 
"(^|\\s)";
+                    final String suffix = expression.endsWith("$") ? "" : 
"($|\\s)";
+                    // compile pattern
+                    final Pattern p = Pattern.compile(prefix + expression + 
suffix, REG_EXP_OPTIONS);
+                    compiled.add(p);
                 }
+
+                final RegExpTokenEvaluator regExpTokenEvaluator = new 
RegExpTokenEvaluator(compiled, queryDep);
+                regExpEvaluators.put(token, regExpTokenEvaluator);
+                    
             }
             LOG.debug("Parsing " + SearchConstants.REGEXP_EVALUATOR_XMLFILE + 
" finished");
         }

Modified: 
trunk/src/java/no/schibstedsok/front/searchportal/query/token/TokenPredicate.java
===================================================================
--- 
trunk/src/java/no/schibstedsok/front/searchportal/query/token/TokenPredicate.java
   2006-04-03 06:17:39 UTC (rev 2692)
+++ 
trunk/src/java/no/schibstedsok/front/searchportal/query/token/TokenPredicate.java
   2006-04-03 06:56:26 UTC (rev 2693)
@@ -11,6 +11,7 @@
 import java.util.Set;
 import no.schibstedsok.front.searchportal.query.token.TokenEvaluatorFactory;
 import org.apache.commons.collections.Predicate;
+import org.apache.taglibs.standard.tag.common.core.SetSupport;
 
 /** Implementation of org.apache.commons.collections.Predicate for the terms 
in the Query.
  * Predicates use TokenEvaluators to prove the Predicate's validity to the 
Query.
@@ -78,6 +79,9 @@
     // RegExp TokenPredicates -- prefixes
     SITEPREFIX (Type.REGEX),
 
+    // RegExp TokenPredicates -- suffixes
+    COMPANYSUFFIX (Type.REGEX),
+
     // RegExp TokenPredicates -- general expression
     ORGNR (Type.REGEX),
     PHONENUMBER (Type.REGEX),
@@ -100,6 +104,8 @@
      *      it ensures FAST_TOKENS will not be null.
      **/
     private static final class Sets{
+        public static final Set<TokenPredicate> MAGIC_TOKENS = new 
HashSet<TokenPredicate>();
+        public static final Set<TokenPredicate> TRIGGER_TOKENS = new 
HashSet<TokenPredicate>();
         public static final Set<TokenPredicate> FAST_TOKENS = new 
HashSet<TokenPredicate>();
     }
     
@@ -122,8 +128,15 @@
     TokenPredicate(final Type type) {
         fastListName = null;
         this.type = type;
-        if( type == Type.FAST ){
-            Sets.FAST_TOKENS.add(this);
+
+        if( type == Type.REGEX ){
+
+            if( name().endsWith("_MAGIC")){
+                Sets.MAGIC_TOKENS.add(this);
+
+            }else if( name().endsWith("_TRIGGER")){
+                Sets.TRIGGER_TOKENS.add(this);
+            }
         }
     }
 
@@ -170,6 +183,18 @@
         return Collections.unmodifiableSet(Sets.FAST_TOKENS);
     }
 
+    /** Utility method to use all MagicTokenPredicates in existance.
+     */
+    public static Set<TokenPredicate> getMagicTokenPredicates() {
+        return Collections.unmodifiableSet(Sets.MAGIC_TOKENS);
+    }
+
+    /** Utility method to use all TriggerTokenPredicates in existance.
+     */
+    public static Set<TokenPredicate> getTriggerTokenPredicates() {
+        return Collections.unmodifiableSet(Sets.TRIGGER_TOKENS);
+    }
+
     /**
      * Evaluates to true if fastListName occurs in the query. This method uses 
a
      * TokenEvaluatorFactory to get a TokenEvaluator

Modified: 
trunk/src/java/no/schibstedsok/front/searchportal/query/transform/PrefixRemoverTransformer.java
===================================================================
--- 
trunk/src/java/no/schibstedsok/front/searchportal/query/transform/PrefixRemoverTransformer.java
     2006-04-03 06:17:39 UTC (rev 2692)
+++ 
trunk/src/java/no/schibstedsok/front/searchportal/query/transform/PrefixRemoverTransformer.java
     2006-04-03 06:56:26 UTC (rev 2693)
@@ -23,18 +23,7 @@
  */
 public final class PrefixRemoverTransformer extends AbstractQueryTransformer {
     
-    private static final Collection<TokenPredicate> DEFAULT_PREFIXES = 
Collections.unmodifiableCollection(
-            Arrays.asList( 
-                TokenPredicate.SITEPREFIX,
-                TokenPredicate.CATALOGUEPREFIX,
-                TokenPredicate.PICTUREPREFIX,
-                TokenPredicate.SKIINFOPREFIX,
-                TokenPredicate.NEWSPREFIX,
-                TokenPredicate.NEWSPREFIX,
-                TokenPredicate.WIKIPEDIAPREFIX,
-                TokenPredicate.TVPREFIX,
-                TokenPredicate.WEATHERPREFIX
-            ));
+    private static final Set<TokenPredicate> DEFAULT_PREFIXES = 
TokenPredicate.getMagicTokenPredicates();
 
     private static final String BLANK = "";
     

_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits

Reply via email to