]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/AssertedPredicates.java
Trying to remove synchronization problems
[simantics/platform.git] / bundles / org.simantics.db.impl / src / org / simantics / db / impl / query / AssertedPredicates.java
index 184276412f7a3251690dd62b72be51c67eeceb1f..b4104e965fbc0b56be90fc40a8f0cd07eef5ab3a 100644 (file)
@@ -15,11 +15,9 @@ import org.simantics.db.RelationInfo;
 import org.simantics.db.exception.DatabaseException;
 import org.simantics.db.impl.graph.ReadGraphImpl;
 import org.simantics.db.impl.procedure.IntProcedureAdapter;
-import org.simantics.db.impl.procedure.InternalProcedure;
-import org.simantics.db.procedure.ListenerBase;
 
 
-final public class AssertedPredicates extends CollectionUnaryQuery<IntProcedure> {
+final public class AssertedPredicates extends UnaryQuery<IntProcedure> {
        
     AssertedPredicates(final int r) {
         super(r);
@@ -28,11 +26,21 @@ final public class AssertedPredicates extends CollectionUnaryQuery<IntProcedure>
     public static AssertedPredicates newInstance(final int r) {
         return new AssertedPredicates(r);
     }
-    
-//    final public static void queryEach(ReadGraphImpl graph, final int r, final QueryProcessor provider, final CacheEntry parent, final ListenerBase listener, final IntProcedure procedure) throws DatabaseException {
-//        QueryCache.runnerAssertedPredicates(graph, r, parent, listener, procedure);
-//    }
 
+    @Override
+    final public void clearResult(QuerySupport support) {
+        setResult(new IntArray());
+    }
+    
+    @Override
+    final public void setReady() {
+        super.setReady();
+        IntArray v = (IntArray)getResult();
+        int size = v.size();
+        if(size == 0) setResult(IntArray.EMPTY);
+        else v.trim();
+    }
+    
        @Override
        final public void removeEntry(QueryProcessor provider) {
            provider.cache.remove(this);