X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.impl%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fimpl%2Fquery%2FIntSet.java;h=813677d53265d36079395fd471f160e69237680b;hb=ded784594eb0e1fb318fbb931135288152691cf2;hp=a84f8fc5553aa04c31537ecedad7ec4e182a7666;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/IntSet.java b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/IntSet.java index a84f8fc55..813677d53 100644 --- a/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/IntSet.java +++ b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/IntSet.java @@ -18,9 +18,12 @@ import java.util.Collection; import java.util.Iterator; import java.util.Set; +import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.ResourceSet; +import org.simantics.db.exception.DatabaseException; import org.simantics.db.impl.ResourceImpl; +import org.simantics.db.impl.graph.ReadGraphImpl; import org.simantics.db.impl.support.ResourceSupport; @@ -37,13 +40,15 @@ final public class IntSet implements ResourceSet { protected static final int DEFAULT_CAPACITY = 3; public static final int NO_DATA = -1; + + private static final Object[] EMPTY_ARRAY = new Object[0]; - public IntSet() { - support = null; - data = null; - sizeOrData = NO_DATA; + public static IntSet EMPTY = new IntSet(); + + private IntSet() { + support = null; } - + public IntSet(QuerySupport support) { this.support = support.getSupport(); data = null; @@ -241,7 +246,16 @@ final public class IntSet implements ResourceSet { @Override public Object[] toArray() { - throw new UnsupportedOperationException(); + if(data != null) { + Object[] result = new Object[sizeOrData]; + for(int i=0;i