]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/genericrelation/IndexQueries.java
Added new field TypeId to dependency index for exact type searching
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / genericrelation / IndexQueries.java
index 2be6bf5d0e1f270655ed0828acbc07975e075b52..ee6296fdd4ecb7a1fbc02e4934119f456aabf0f1 100644 (file)
@@ -1,5 +1,9 @@
 package org.simantics.db.layer0.genericrelation;
 
+import java.util.Collection;
+
+import org.simantics.datatypes.literal.GUID;
+import org.simantics.db.Resource;
 
 /**
  * This class contains utilities related to queries made into Lucene indexes,
@@ -183,6 +187,22 @@ public class IndexQueries {
                                ).toString();
        }
 
+       public static StringBuilder appendLongTerm(StringBuilder sb, String field, long term) {
+               return sb.append(field).append(':').append(term);
+       }
+
+       public static String longTerm(String field, long term) {
+               return appendLongTerm(new StringBuilder(), field, term).toString();
+       }
+
+       public static StringBuilder appendResourceIdTerm(StringBuilder sb, String field, Resource term) {
+               return appendLongTerm(sb, field, term.getResourceId());
+       }
+
+       public static String resourceIdTerm(String field, Resource term) {
+               return appendLongTerm(new StringBuilder(), field, term.getResourceId()).toString();
+       }
+
        private static String join(String withString, String... exps) {
                if (exps.length == 0)
                        return "";
@@ -210,6 +230,32 @@ public class IndexQueries {
                return join(" OR ", exps);
        }
 
+       public static String idFromGUID(GUID guid) {
+               return guid != null ? guid.indexString() : "";
+       }
+
+       public static String toResourceIdString(Resource r, Collection<Resource> rs) {
+               StringBuilder sb = new StringBuilder();
+               sb.append(r.getResourceId());
+               for (Resource rr : rs)
+                       sb.append(' ').append(rr.getResourceId());
+               return sb.toString();
+       }
+
+       public static String toResourceIdString(Collection<Resource> rs) {
+               if (rs.isEmpty())
+                       return "";
+               StringBuilder sb = new StringBuilder();
+               boolean first = true;
+               for (Resource rr : rs) {
+                       if (!first)
+                               sb.append(' ');
+                       first = false;
+                       sb.append(rr.getResourceId());
+               }
+               return sb.toString();
+       }
+
 //     public static void main(String[] args) {
 //             System.out.println("esc: " + escape("AND01", true, true));
 //             System.out.println("esc: " + escape("AND 01", true, true));