diff --git a/src/java/com/threerings/presents/dobj/DSet.java b/src/java/com/threerings/presents/dobj/DSet.java index 9cb480932..603250e02 100644 --- a/src/java/com/threerings/presents/dobj/DSet.java +++ b/src/java/com/threerings/presents/dobj/DSet.java @@ -23,9 +23,11 @@ package com.threerings.presents.dobj; import java.io.IOException; +import java.util.AbstractSet; import java.util.Comparator; import java.util.ConcurrentModificationException; import java.util.Iterator; +import java.util.Set; import com.samskivert.util.ArrayUtil; @@ -256,6 +258,31 @@ public class DSet return array; } + /** + * Creates an immutable view of this distributed set as a Java set. + */ + public Set toSet () + { + return new AbstractSet() { + @Override public boolean add (E o) { + throw new UnsupportedOperationException(); + } + @Override public boolean remove (Object o) { + throw new UnsupportedOperationException(); + } + @Override public boolean contains (Object o) { + @SuppressWarnings("unchecked") E elem = (E)o; + return DSet.this.contains(elem); + } + @Override public Iterator iterator () { + return DSet.this.iterator(); + } + @Override public int size () { + return DSet.this.size(); + } + }; + } + /** * @deprecated use {@link #toArray(Entry[])}. */