If you encapsulate the transformation in a `Function<JoyentObject, StorageMetadata>`, you can remove the loop and take advantage of the Guava's lazy iterators and lazy transformations, to transform only the elements that are actually read.
```java
return new PageSetImpl<StorageMetadata>(Iterables.transform(form, transformationFunction), null);
```