diff --git a/src/java/com/threerings/io/Streamer.java b/src/java/com/threerings/io/Streamer.java index c6e151ccc..286754842 100644 --- a/src/java/com/threerings/io/Streamer.java +++ b/src/java/com/threerings/io/Streamer.java @@ -36,10 +36,11 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import com.google.common.base.Predicate; +import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.samskivert.util.ClassUtil; -import com.samskivert.util.Predicate; import static com.threerings.NaryaLog.log; @@ -461,10 +462,9 @@ public class Streamer } // reflect on all the object's fields and remove all marked with NotStreamable - List fieldList = Lists.newArrayList(); - ClassUtil.getFields(target, fieldList); - _isStreamableFieldPred.filter(fieldList); - _fields = fieldList.toArray(new Field[fieldList.size()]); + List fields = Lists.newArrayList(); + ClassUtil.getFields(target, fields); + _fields = Iterables.newArray(Iterables.filter(fields, _isStreamableFieldPred), Field.class); int fcount = _fields.length; // obtain field marshallers for all of our fields @@ -521,7 +521,7 @@ public class Streamer /** A simple predicate to filter "NotStreamable" members from a Streamable object's fields. */ protected static final Predicate _isStreamableFieldPred = new Predicate() { - @Override public boolean isMatch (Field obj) { + @Override public boolean apply (Field obj) { return (obj.getAnnotation(NotStreamable.class) == null); } };