// Path: src/main/java/com/codefork/refine/resources/NameType.java
// public class NameType {
// 
//     private String id;
//     private String name;
// 
//     public NameType(String id, String name) {
//         this.id = id;
//         this.name = name;
//     }
// 
//     public String getId() {
//         return id;
//     }
// 
//     public void setId(String id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if(obj instanceof NameType) {
//             NameType obj2 = (NameType) obj;
//             return obj2.getId().equals(getId())
//                     && obj2.getName().equals(getName());
//         }
//         return false;
//     }
// }


import com.codefork.refine.resources.NameType;
import com.fasterxml.jackson.databind.JsonNode;
package com.codefork.refine;


public interface SearchQueryFactory {

    SearchQuery createSearchQuery(JsonNode queryStruct);

// Path: src/main/java/com/codefork/refine/resources/NameType.java
// public class NameType {
// 
//     private String id;
//     private String name;
// 
//     public NameType(String id, String name) {
//         this.id = id;
//         this.name = name;
//     }
// 
//     public String getId() {
//         return id;
//     }
// 
//     public void setId(String id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if(obj instanceof NameType) {
//             NameType obj2 = (NameType) obj;
//             return obj2.getId().equals(getId())
//                     && obj2.getName().equals(getName());
//         }
//         return false;
//     }
// }


// Path: src/main/java/com/codefork/refine/SearchQueryFactory.java
import com.codefork.refine.resources.NameType;
import com.fasterxml.jackson.databind.JsonNode;

package com.codefork.refine;


public interface SearchQueryFactory {

    SearchQuery createSearchQuery(JsonNode queryStruct);

    SearchQuery createSearchQuery(String query, int limit, NameType nameType, String typeStrict);