Author: gttersen
Date: 2007-05-14 15:38:24 +0200 (Mon, 14 May 2007)
New Revision: 5067

Modified:
   
branches/2.12/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMyNewsQueryTransformer.java
Log:
Cleanup of code.

Modified: 
branches/2.12/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMyNewsQueryTransformer.java
===================================================================
--- 
branches/2.12/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMyNewsQueryTransformer.java
        2007-05-14 11:08:29 UTC (rev 5066)
+++ 
branches/2.12/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMyNewsQueryTransformer.java
        2007-05-14 13:38:24 UTC (rev 5067)
@@ -15,47 +15,45 @@
  * <p/>
  * <b>Note:</b> This queryTransformer ignores all earlier transforms on the 
query. All transforms to the resulting
  * query should be done after this.
- * 
+ *
  * @author geir
  * @version $Id$
  */
 public final class NewsMyNewsQueryTransformer extends AbstractQueryTransformer 
{
-    
+
     private static final Logger LOG = 
Logger.getLogger(NewsMyNewsQueryTransformer.class);
     private static final Pattern queryPattern = 
Pattern.compile("(?:\\A|\\|)([^\\|]+)\\:{2}([^\\|]+)\\|?");
 
     private final NewsMyNewsQueryTransformerConfig config;
 
     /**
-     * 
-     * @param config 
+     * @param config
      */
     public NewsMyNewsQueryTransformer(final QueryTransformerConfig config) {
         this.config = (NewsMyNewsQueryTransformerConfig) config;
     }
 
     /**
-     * 
-     * @param clause 
+     * @param clause
      */
     public void visitImpl(final Clause clause) {
-        
+
         final String myNews = (String) 
getContext().getDataModel().getJunkYard().getValue(config.getQueryParameter());
-        
+
         // FIXME use instead the following
         //final String myNews 
         //        = (String) 
getContext().getDataModel().getParameters().getValue(config.getQueryParameter()).getString();
-        
+
         LOG.debug("Transforming query according to query = " + myNews);
         final String transformedQuery = transformQuery(myNews);
-        
+
         if (transformedQuery != null) {
             LOG.debug("New query is: '" + transformedQuery + '\'');
-            
+
             for (Clause keyClause : 
getContext().getTransformedTerms().keySet()) {
                 getContext().getTransformedTerms().put(keyClause, "");
             }
-            
+
             if (transformedQuery.length() > 0) {
                 
getContext().getTransformedTerms().put(getContext().getQuery().getFirstLeafClause(),
 transformedQuery);
             }
@@ -63,27 +61,27 @@
     }
 
     /**
-     * 
-     * @return 
+     * @return
      */
     protected int getOffset() {
-        
+
         return null != 
getContext().getDataModel().getJunkYard().getValue("offset")
                 ? Integer.parseInt((String) 
getContext().getDataModel().getJunkYard().getValue("offset"))
                 : 0;
     }
 
     private String transformQuery(final String myNews) {
-        
+
         final StringBuilder newQuery = new StringBuilder();
-        
+
         if (myNews != null && myNews.length() > 0) {
-            
+
             final Matcher matcher = queryPattern.matcher(myNews);
+
             if (config.getPosition() == -1) {
-                
+
                 LOG.debug("No position. Appending all matches.");
-                                
+
                 while (matcher.find()) {
                     if (matcher.group(2).equals(config.getType())) {
                         if (newQuery.length() == 0) {
@@ -99,36 +97,32 @@
                 if (newQuery.length() > 0 && config.getFilterField() != null) {
                     newQuery.append("))");
                 }
-                
+
             } else {
-                
                 LOG.debug("Position is: " + config.getPosition());
-
+                boolean foundMatch;
                 int curPos = 0;
                 final int offset = getOffset();
                 final int pos = config.getPosition() + offset;
-                
-                while (matcher.find() && curPos < pos) {
+
+                while ((foundMatch = matcher.find()) && curPos < pos) {
                     // Just searching for the correct match.
                     curPos++;
                 }
-                
-                try{
-                    // YUK! any way to do this and avoid having to wrap in 
try-catch?? XXX
+
+                if (foundMatch) {
                     LOG.debug("Group at pos: " + pos + " is " + 
matcher.group(0) + ", looking for " + config.getType());
-                    
-                }catch(IllegalStateException ise){
-                    LOG.trace(ise.getMessage(), ise);
+                    if (matcher.groupCount() > 0 && 
matcher.group(2).equals(config.getType())) {
+
+                        final String fastCompatibleString = 
matcher.group(1).replace('?', ' ');
+
+                        return null == config.getFilterField()
+                                ? fastCompatibleString
+                                : config.getFilterField() + ":(\"" + 
fastCompatibleString + "\")";
+                    }
+                } else {
+                    LOG.debug("Group at pos: " + pos + " is null, looking for 
" + config.getType());
                 }
-                
-                if (matcher.groupCount() > 0 && 
matcher.group(2).equals(config.getType())) {
-                    
-                    final String fastCompatibleString = 
matcher.group(1).replace('?', ' ');
-                    
-                    return null == config.getFilterField() 
-                            ? fastCompatibleString 
-                            : config.getFilterField() + ":(\"" + 
fastCompatibleString + "\")";                    
-                }
             }
         }
         return newQuery.toString();

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

Reply via email to