]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.workbench.search/src/org/simantics/workbench/search/SearchQuery.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.workbench.search / src / org / simantics / workbench / search / SearchQuery.java
index 6cacacbf7567941b2ca955236359ea444194073e..d90a90ee9c8118921ea3e1a6d036140875d70063 100644 (file)
-package org.simantics.workbench.search;\r
-\r
-import java.io.File;\r
-import java.io.IOException;\r
-import java.net.URL;\r
-import java.net.URLDecoder;\r
-import java.net.URLEncoder;\r
-import java.util.Collections;\r
-import java.util.HashMap;\r
-import java.util.HashSet;\r
-import java.util.Map;\r
-import java.util.Set;\r
-\r
-import org.simantics.db.layer0.genericrelation.IndexQueries;\r
-\r
-public class SearchQuery {\r
-       \r
-       private String originalQuery;\r
-       private Map<String,String> searchFlags = new HashMap<String, String>();\r
-       private Set<String> searchParams = new HashSet<String>();\r
-       \r
-       public SearchQuery() {\r
-       }\r
-       \r
-       public SearchQuery(String originalQuery) {\r
-               this.originalQuery = originalQuery;\r
-       }\r
-\r
-       public void setOriginalQuery(String originalQuery) {\r
-               this.originalQuery = originalQuery;\r
-       }\r
-       \r
-       public String getOriginalQuery() {\r
-               return originalQuery;\r
-       }\r
-       \r
-       public String getQuery(Set<String> supportedParams) {\r
-               if (originalQuery.trim().isEmpty())\r
-                       return "";\r
-               String query = "";\r
-               int count = 0;\r
-               for (String key : searchFlags.keySet()) {\r
-                       if (!supportedParams.contains(key))\r
-                               continue;\r
-                       if (!"on".equals(searchFlags.get(key)))\r
-                               continue;\r
-                       if (count > 0)\r
-                               query += " OR ";\r
-//                     String prefix = originalQuery.startsWith("*") ? "" : "*";\r
-//                     String suffix = originalQuery.endsWith("*") ? "" : "*";\r
-//                     query += key+":"+prefix+originalQuery+suffix;\r
-                       query += key+":"+originalQuery;\r
-                       count++;\r
-               }\r
-               return query;\r
-       }\r
-       \r
-       public String getQuery(String... supportedParams) {\r
-               Set<String> set = new HashSet<String>();\r
-               for (String s : supportedParams)\r
-                       set.add(s);\r
-               return getQuery(set);\r
-       }\r
-       \r
-       \r
-       \r
-       public void setSearchFlag(String key, String value) {\r
-               searchFlags.put(key, value);\r
-       }\r
-       \r
-       public void setSearchParam(String key) {\r
-               searchParams.add(key);\r
-       }\r
-       \r
-       public Map<String, String> getSearchFlags() {\r
-               return Collections.unmodifiableMap(searchFlags);\r
-       }\r
-       \r
-       public Set<String> getSearchParams() {\r
-               return Collections.unmodifiableSet(searchParams);\r
-       }\r
-       \r
-       public boolean getBooleanFlag(String key) {\r
-               if ("on".equals(searchFlags.get(key)))\r
-                       return true;\r
-               return false;\r
-       }\r
-       \r
-       public boolean getBooleanParam(String key) {\r
-               if (searchParams.contains(key))\r
-                       return true;\r
-               return false;\r
-       }\r
-       \r
-       @Override\r
-       public String toString() {\r
-               return originalQuery;\r
-       }\r
-\r
-       public SearchQuery withOriginalQuery(String query) {\r
-               SearchQuery ret = new SearchQuery(query);\r
-               ret.searchFlags = new HashMap<String, String>(searchFlags);\r
-               ret.searchParams = new HashSet<String>(searchParams);\r
-               return ret;\r
-       }\r
-\r
-       public SearchQuery escaped(boolean escapeWildcards) {\r
-               return withOriginalQuery( IndexQueries.escape( originalQuery, escapeWildcards ) );\r
-       }\r
-\r
-       public static URL encode(File file, SearchQuery query) throws IOException {\r
-               URL url = file.toURI().toURL();\r
-               String s = url.toString() + "?search=" + URLEncoder.encode(query.getOriginalQuery(), "UTF-8");\r
-               Map<String, String> flags = query.getSearchFlags();\r
-               for (String key : flags.keySet()) {\r
-                       s += "&"+key+"="+flags.get(key);\r
-               }\r
-               \r
-               for (String param : query.getSearchParams()) {\r
-                       s += "&"+param;\r
-               }\r
-                       \r
-               url = new URL(s);\r
-               return url;\r
-       }\r
-           \r
-    public static SearchQuery decode(URL url) throws IOException{\r
-        String query = url.getQuery();\r
-        SearchQuery searchQuery = new SearchQuery();\r
-         if (query != null) {\r
-             for (String arg : query.split("&")) {\r
-                 String[] keyvalue = arg.split("=");\r
-                 if ("search".equals(keyvalue[0])) {\r
-                    if (keyvalue.length == 2)\r
-                         searchQuery.setOriginalQuery(URLDecoder.decode(keyvalue[1], "UTF-8"));\r
-                 } else if (keyvalue.length == 2){\r
-                        searchQuery.setSearchFlag(URLDecoder.decode(keyvalue[0], "UTF-8"), URLDecoder.decode(keyvalue[1], "UTF-8"));\r
-                 } else if (keyvalue.length == 1) {\r
-                        searchQuery.setSearchParam(URLDecoder.decode(keyvalue[0], "UTF-8"));\r
-                 }\r
-             }\r
-         }\r
-         return searchQuery;\r
-    }\r
-    \r
-   \r
-\r
-}\r
+package org.simantics.workbench.search;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.simantics.db.layer0.genericrelation.IndexQueries;
+
+public class SearchQuery {
+       
+       private String originalQuery;
+       private Map<String,String> searchFlags = new HashMap<String, String>();
+       private Set<String> searchParams = new HashSet<String>();
+       
+       public SearchQuery() {
+       }
+       
+       public SearchQuery(String originalQuery) {
+               this.originalQuery = originalQuery;
+       }
+
+       public void setOriginalQuery(String originalQuery) {
+               this.originalQuery = originalQuery;
+       }
+       
+       public String getOriginalQuery() {
+               return originalQuery;
+       }
+       
+       public String getQuery(Set<String> supportedParams) {
+               if (originalQuery.trim().isEmpty())
+                       return "";
+               String query = "";
+               int count = 0;
+               for (String key : searchFlags.keySet()) {
+                       if (!supportedParams.contains(key))
+                               continue;
+                       if (!"on".equals(searchFlags.get(key)))
+                               continue;
+                       if (count > 0)
+                               query += " OR ";
+//                     String prefix = originalQuery.startsWith("*") ? "" : "*";
+//                     String suffix = originalQuery.endsWith("*") ? "" : "*";
+//                     query += key+":"+prefix+originalQuery+suffix;
+                       query += key+":"+originalQuery;
+                       count++;
+               }
+               return query;
+       }
+       
+       public String getQuery(String... supportedParams) {
+               Set<String> set = new HashSet<String>();
+               for (String s : supportedParams)
+                       set.add(s);
+               return getQuery(set);
+       }
+       
+       
+       
+       public void setSearchFlag(String key, String value) {
+               searchFlags.put(key, value);
+       }
+       
+       public void setSearchParam(String key) {
+               searchParams.add(key);
+       }
+       
+       public Map<String, String> getSearchFlags() {
+               return Collections.unmodifiableMap(searchFlags);
+       }
+       
+       public Set<String> getSearchParams() {
+               return Collections.unmodifiableSet(searchParams);
+       }
+       
+       public boolean getBooleanFlag(String key) {
+               if ("on".equals(searchFlags.get(key)))
+                       return true;
+               return false;
+       }
+       
+       public boolean getBooleanParam(String key) {
+               if (searchParams.contains(key))
+                       return true;
+               return false;
+       }
+       
+       @Override
+       public String toString() {
+               return originalQuery;
+       }
+
+       public SearchQuery withOriginalQuery(String query) {
+               SearchQuery ret = new SearchQuery(query);
+               ret.searchFlags = new HashMap<String, String>(searchFlags);
+               ret.searchParams = new HashSet<String>(searchParams);
+               return ret;
+       }
+
+       public SearchQuery escaped(boolean escapeWildcards) {
+               return withOriginalQuery( IndexQueries.escape( originalQuery, escapeWildcards ) );
+       }
+
+       public static URL encode(File file, SearchQuery query) throws IOException {
+               URL url = file.toURI().toURL();
+               String s = url.toString() + "?search=" + URLEncoder.encode(query.getOriginalQuery(), "UTF-8");
+               Map<String, String> flags = query.getSearchFlags();
+               for (String key : flags.keySet()) {
+                       s += "&"+key+"="+flags.get(key);
+               }
+               
+               for (String param : query.getSearchParams()) {
+                       s += "&"+param;
+               }
+                       
+               url = new URL(s);
+               return url;
+       }
+           
+    public static SearchQuery decode(URL url) throws IOException{
+        String query = url.getQuery();
+        SearchQuery searchQuery = new SearchQuery();
+         if (query != null) {
+             for (String arg : query.split("&")) {
+                 String[] keyvalue = arg.split("=");
+                 if ("search".equals(keyvalue[0])) {
+                    if (keyvalue.length == 2)
+                         searchQuery.setOriginalQuery(URLDecoder.decode(keyvalue[1], "UTF-8"));
+                 } else if (keyvalue.length == 2){
+                        searchQuery.setSearchFlag(URLDecoder.decode(keyvalue[0], "UTF-8"), URLDecoder.decode(keyvalue[1], "UTF-8"));
+                 } else if (keyvalue.length == 1) {
+                        searchQuery.setSearchParam(URLDecoder.decode(keyvalue[0], "UTF-8"));
+                 }
+             }
+         }
+         return searchQuery;
+    }
+    
+   
+
+}