From 5c3e0ed82512679ac6f765834f535b533b186e5c Mon Sep 17 00:00:00 2001 From: Tom Conkling Date: Mon, 10 Jan 2011 22:47:09 +0000 Subject: [PATCH] Make OidList Iterable git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6426 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../com/threerings/presents/dobj/OidList.java | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/threerings/presents/dobj/OidList.java b/src/main/java/com/threerings/presents/dobj/OidList.java index c74b09c6e..e59fcbf07 100644 --- a/src/main/java/com/threerings/presents/dobj/OidList.java +++ b/src/main/java/com/threerings/presents/dobj/OidList.java @@ -21,6 +21,9 @@ package com.threerings.presents.dobj; +import java.util.Iterator; +import java.util.NoSuchElementException; + import com.threerings.io.Streamable; /** @@ -35,7 +38,8 @@ import com.threerings.io.Streamable; *
  • When an object is destroyed, its oid is automagically removed from any OidLists. * */ -public class OidList implements Streamable +public class OidList + implements Streamable, Iterable { /** * Creates an empty oid list. @@ -148,6 +152,11 @@ public class OidList implements Streamable return buf.toString(); } + public Iterator iterator () + { + return new OidIterator(); + } + private void expand () { int[] oids = new int[_oids.length*2]; @@ -155,6 +164,30 @@ public class OidList implements Streamable _oids = oids; } + protected class OidIterator + implements Iterator + { + public boolean hasNext () + { + return _index < size(); + } + + public Integer next () + { + if (!hasNext()) { + throw new NoSuchElementException(); + } + return get(_index++); + } + + public void remove () + { + throw new UnsupportedOperationException(); + } + + protected int _index = 0; + } + private int[] _oids; private int _size;