]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/StringQuery.java
Fixed multiple issues causing dangling references to discarded queries
[simantics/platform.git] / bundles / org.simantics.db.impl / src / org / simantics / db / impl / query / StringQuery.java
index 36d6acc5ae377e5c55e7f5019af705c48085cfe9..3498b1ac2763167d3834d1abefa964ec9f8fdc90 100644 (file)
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * Copyright (c) 2007, 2018 Association for Decentralized Information Management
  * in Industry THTH ry.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  *******************************************************************************/
 package org.simantics.db.impl.query;
 
-import org.simantics.db.impl.graph.ReadGraphImpl;
 import org.simantics.db.request.RequestFlags;
 
-abstract public class StringQuery<Procedure> extends CacheEntryBase implements Query {
+public abstract class StringQuery<Procedure> extends CacheEntryBase<Procedure> implements Query {
 
-    final public String id;
-    final public int hash;
+    public final String id;
+    protected final int hash;
 
     public StringQuery(String id) {
         assert(id != null);
-       this.id = id;
-       hash = id.hashCode();
+        this.id = id;
+        hash = id.hashCode();
     }
-    
+
     @Override
     int makeHash() {
-       return id.hashCode();
+        return id.hashCode();
     }
-    
-    final protected static int hash(String id) {
+
+    protected static final int hash(String id) {
         return id.hashCode();
     }
-    
+
     @Override
     public int type() {
         return RequestFlags.INVALIDATE;
     }
-    
+
     @Override
     final public boolean equals(Object object) {
         if (this == object)
@@ -47,30 +46,15 @@ abstract public class StringQuery<Procedure> extends CacheEntryBase implements Q
             return false;
         else if (getClass() != object.getClass())
             return false;
-        StringQuery other = (StringQuery)object;
+        StringQuery<?> other = (StringQuery<?>) object;
         return id == other.id;
     }
-    
+
     @Override
     final public Query getQuery() {
         return this;
     }
-    
-    @Override
-    public void recompute(ReadGraphImpl graph, Object provider, CacheEntry entry) {
-        throw new Error("Recompute of primitive queries is not supported.");
-    }
-    
-    @Override
-    public void performFromCache(ReadGraphImpl graph, Object provider, Object procedure) {
-       throw new Error("Not possible.");
-    }
-    
-    abstract public void recompute(ReadGraphImpl graph, QueryProcessor provider);
-    abstract public void computeForEach(ReadGraphImpl graph, QueryProcessor provider, Procedure procedure);
-    abstract public void performFromCache(ReadGraphImpl graph, QueryProcessor provider, Procedure procedure);
-    abstract public void putEntry(QueryProcessor provider);
+
     abstract public void removeEntry(QueryProcessor provider);
-    abstract public StringQuery<Procedure> getEntry(QueryProcessor provider);
-       
+
 }