Use the samskivert Predicate.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@39 ed5b42cb-e716-0410-a449-f6a68f950b19
This commit is contained in:
@@ -33,11 +33,9 @@ import java.util.Iterator;
|
|||||||
|
|
||||||
import com.samskivert.util.HashIntMap;
|
import com.samskivert.util.HashIntMap;
|
||||||
import com.samskivert.util.IntIntMap;
|
import com.samskivert.util.IntIntMap;
|
||||||
|
import com.samskivert.util.Predicate;
|
||||||
import com.samskivert.util.Tuple;
|
import com.samskivert.util.Tuple;
|
||||||
|
|
||||||
import org.apache.commons.collections.iterators.FilterIterator;
|
|
||||||
import org.apache.commons.collections.Predicate;
|
|
||||||
|
|
||||||
import com.threerings.resource.ResourceBundle;
|
import com.threerings.resource.ResourceBundle;
|
||||||
import com.threerings.resource.ResourceManager;
|
import com.threerings.resource.ResourceManager;
|
||||||
|
|
||||||
@@ -219,14 +217,14 @@ public class BundledComponentRepository
|
|||||||
// documentation inherited
|
// documentation inherited
|
||||||
public Iterator enumerateComponentIds (final ComponentClass compClass)
|
public Iterator enumerateComponentIds (final ComponentClass compClass)
|
||||||
{
|
{
|
||||||
Predicate classP = new Predicate() {
|
Predicate<Integer> pred = new Predicate<Integer>() {
|
||||||
public boolean evaluate (Object input) {
|
public boolean isMatch (Integer input) {
|
||||||
CharacterComponent comp = (CharacterComponent)
|
CharacterComponent comp = (CharacterComponent)
|
||||||
_components.get(input);
|
_components.get(input);
|
||||||
return comp.componentClass.equals(compClass);
|
return comp.componentClass.equals(compClass);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return new FilterIterator(_components.keySet().iterator(), classP);
|
return pred.filter(_components.keySet().iterator());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import com.samskivert.util.Predicate;
|
||||||
|
|
||||||
import com.threerings.media.AbstractMediaManager;
|
import com.threerings.media.AbstractMediaManager;
|
||||||
import com.threerings.media.MediaPanel;
|
import com.threerings.media.MediaPanel;
|
||||||
|
|
||||||
@@ -36,14 +38,6 @@ import com.threerings.media.MediaPanel;
|
|||||||
*/
|
*/
|
||||||
public class SpriteManager extends AbstractMediaManager
|
public class SpriteManager extends AbstractMediaManager
|
||||||
{
|
{
|
||||||
/** A predicate used to operate on sprites (see {@link #removeSprites}. */
|
|
||||||
public static interface Predicate
|
|
||||||
{
|
|
||||||
/** Returns true if this sprite is to be included by the predicate,
|
|
||||||
* false if it should be excluded. */
|
|
||||||
public boolean evaluate (Sprite sprite);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct and initialize the sprite manager.
|
* Construct and initialize the sprite manager.
|
||||||
*/
|
*/
|
||||||
@@ -162,12 +156,12 @@ public class SpriteManager extends AbstractMediaManager
|
|||||||
/**
|
/**
|
||||||
* Removes all sprites that match the supplied predicate.
|
* Removes all sprites that match the supplied predicate.
|
||||||
*/
|
*/
|
||||||
public void removeSprites (Predicate pred)
|
public void removeSprites (Predicate<Sprite> pred)
|
||||||
{
|
{
|
||||||
int idxoff = 0;
|
int idxoff = 0;
|
||||||
for (int ii = 0, ll = _media.size(); ii < ll; ii++) {
|
for (int ii = 0, ll = _media.size(); ii < ll; ii++) {
|
||||||
Sprite sprite = (Sprite)_media.get(ii-idxoff);
|
Sprite sprite = (Sprite)_media.get(ii-idxoff);
|
||||||
if (pred.evaluate(sprite)) {
|
if (pred.isMatch(sprite)) {
|
||||||
_media.remove(sprite);
|
_media.remove(sprite);
|
||||||
sprite.invalidate();
|
sprite.invalidate();
|
||||||
sprite.shutdown();
|
sprite.shutdown();
|
||||||
|
|||||||
Reference in New Issue
Block a user