Projects >> sensei >>5b14c3546fcdf0a9f4ff15fa5f2f8fa864a9d7fc

Chunk
Conflicting content
	static{
package com.sensei.search.query;

<<<<<<< HEAD
import org.apache.lucene.index.Term;
import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TermQuery;
import org.json.JSONObject;

        float boost;
        if (obj == null)
public abstract class QueryConstructor
{
  abstract public Query constructQuery(JSONObject params);
  
  public static QueryConstructor getQueryConstructor(String type)
  {
    if ("match_all".equals(type))
    {
      return new MatchAllQueryConstructor();
    }
    else if ("ids".equals(type))
    {
    }
    else if ("query_string".equals(type))
    {
    }
    else if ("text".equals(type))
    {
      return new TextQueryConstructor();
    }
    else if ("term".equals(type))
    {
      return new TermQueryConstructor();
    }
    else if ("bool".equals(type))
    {
    }
    else if ("dis_max".equals(type))
    {
    }
    else if ("prefix".equals(type))
    {
    }
    else if ("wildcard".equals(type))
    {
    }
    else if ("range".equals(type))
    {
    }
    else if ("filtered".equals(type))
    {
    }
    else if ("terms".equals(type))
    {
    }
    else if ("span_term".equals(type))
    {
    }
    else if ("span_or".equals(type))
    {
    }
    else if ("span_not".equals(type))
    {
    }
    else if ("span_near".equals(type))
    {
    }
    else if ("span_first".equals(type))
    {
    }
    else if ("custom".equals(type))
    {
    }

    throw new IllegalArgumentException("query type: " + type);
  }
  
  public static class TermQueryConstructor extends QueryConstructor
  {
    @Override
    public Query constructQuery(JSONObject params)
    {
      if (params == null)
        throw new IllegalArgumentException("no term specified: " + params);

      for (String field : JSONObject.getNames(params))
      {
        Object obj = params.opt(field);
        String txt;
          throw new IllegalArgumentException("no term value specified: " + params);
        else if (obj instanceof JSONObject)
        {
          txt = ((JSONObject)obj).optString("term");
          if (txt == null || txt.length() == 0)
            txt = ((JSONObject)obj).optString("value");
          if (txt == null || txt.length() == 0)
            throw new IllegalArgumentException("no term value specified: " + params);
          boost = (float)((JSONObject)obj).optDouble("boost", 1.0);
        }
        else
        {
          txt   = String.valueOf(obj);
          boost = 1.0f;
        }
        Query q = new TermQuery(new Term(field, txt));
        q.setBoost(boost);
        return q; // Term query have only one field.
      }
=======
import java.util.HashMap;
import java.util.Map;

import org.apache.lucene.search.Query;
import org.json.JSONException;
import org.json.JSONObject;

public abstract class QueryConstructor {
	abstract public Query constructQuery(JSONObject params) throws JSONException;
	
	private static final Map QUERY_CONSTRUCTOR_MAP = new HashMap();
	
	  QUERY_CONSTRUCTOR_MAP.put(DistMaxQueryConstructor.QUERY_TYPE, new DistMaxQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(PrefixQueryConstructor.QUERY_TYPE, new PrefixQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(WildcardQueryConstructor.QUERY_TYPE, new WildcardQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(SpanFirstQueryConstructor.QUERY_TYPE, new SpanFirstQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(SpanNearQueryConstructor.QUERY_TYPE, new SpanNearQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(SpanNotQueryConstructor.QUERY_TYPE, new SpanNotQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(SpanOrQueryConstructor.QUERY_TYPE, new SpanOrQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(SpanTermQueryConstructor.QUERY_TYPE, new SpanTermQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(MatchAllQueryConstructor.QUERY_TYPE, new MatchAllQueryConstructor());
	}
	
	public static QueryConstructor getQueryConstructor(String type){
		return QUERY_CONSTRUCTOR_MAP.get(type);
	}
	
	public class TermQueryConstructor extends QueryConstructor{

		@Override
		public Query constructQuery(JSONObject params) {
			// TODO Auto-generated method stub
			return null;
		}
	}
	
	public static class TextQueryConstructor extends QueryConstructor{
>>>>>>> c434d74be218533f8e4de62cd4b1f5e6d3f34902

      throw new IllegalArgumentException("no term specified: " + params);
    }
Solution content
package com.sensei.search.query;

import java.util.HashMap;
import java.util.Map;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TermQuery;
import org.json.JSONException;
import org.json.JSONObject;

public abstract class QueryConstructor
{
  abstract public Query constructQuery(JSONObject params) throws JSONException;

  private static final Map QUERY_CONSTRUCTOR_MAP = new HashMap();

  static
  {
    QUERY_CONSTRUCTOR_MAP.put(DistMaxQueryConstructor.QUERY_TYPE, new DistMaxQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(PrefixQueryConstructor.QUERY_TYPE, new PrefixQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(WildcardQueryConstructor.QUERY_TYPE, new WildcardQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(SpanFirstQueryConstructor.QUERY_TYPE, new SpanFirstQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(SpanNearQueryConstructor.QUERY_TYPE, new SpanNearQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(SpanNotQueryConstructor.QUERY_TYPE, new SpanNotQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(SpanOrQueryConstructor.QUERY_TYPE, new SpanOrQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(SpanTermQueryConstructor.QUERY_TYPE, new SpanTermQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(MatchAllQueryConstructor.QUERY_TYPE, new MatchAllQueryConstructor());
    QUERY_CONSTRUCTOR_MAP.put(TermQueryConstructor.QUERY_TYPE, new TermQueryConstructor());
  }
  
  public static QueryConstructor getQueryConstructor(String type)
  {
    return QUERY_CONSTRUCTOR_MAP.get(type);
  }

  public static QueryConstructor getQueryConstructor(String type, Analyzer analyzer)
  {
    QueryConstructor queryConstructor = QUERY_CONSTRUCTOR_MAP.get(type);
    if (queryConstructor == null)
    {
      if (TextQueryConstructor.QUERY_TYPE.equals(type))
      {
        queryConstructor = new TextQueryConstructor(analyzer);
      }
    }
    return queryConstructor;
  }
}
File
QueryConstructor.java
Developer's decision
Manual
Kind of conflict
Annotation
Attribute
Class declaration
Class signature
For statement
If statement
Import
Method declaration
Method interface
Method invocation
Method signature
Static initializer